r-在具有不同时间粒度的合并数据集上应用optim{stats}



我已经准备好了以下数据。帧:

> head(DF)
time       x        y
33.8351   NA 952.7843
40      1030       NA
40.11   1031       NA
40.22   1039       NA
40.32   1046       NA
40.43   1053       NA

由于NA的值,optim给了我以下错误:

Error in optim(par = c(0, 1), min.RSS, data = DF) : 
function cannot be evaluated at initial parameters

那我在这里该怎么办?创建一个具有四舍五入值的数据集,以获得最小数量的填充行,并删除其余行?我一无所知。

编辑:我正试图将我的数据相对于具有两个参数的线性模型的残差平方和最小化。

  min.RSS <- function(data, par) {
              with(data, sum((par[1] + par[2] * x - y)^2))
  }

想象一下这样的问题:有一个数据集a,它有有限数量的数据点和一条曲线(更大的数据点集B)。目的是重新缩放曲线,使其与数据集A最佳一致。重新缩放是线性模型,我试图优化线性方程的斜率和y截距。

对数据进行插值。在这里,我们使用末尾注释中所示的DF。下面我们使用动物园包中的na.locf。其他插值方案请参见同一软件包中的na.approxna.spline

library(zoo)
lm(y ~ x, na.locf(DF))

给予:

Call:
lm(formula = y ~ x, data = na.locf(DF))
Coefficients:
(Intercept)            x  
      952.8          0.0  

注意:可复制形式的输入DF为:

Lines <- "time       x        y
33.8351   NA 952.7843
40      1030       NA
40.11   1031       NA
40.22   1039       NA
40.32   1046       NA
40.43   1053       NA"
DF <- read.table(text = Lines, header = TRUE)

相关内容

最新更新