假设我有一些不确定性的数据。例如:
X Y
1 10±4
2 50±3
3 80±7
4 105±1
5 120±9
不确定度的性质可以是重复测量或实验,或例如测量仪器不确定度。
我想使用R拟合曲线,通常我会这样做lm
。但是,当它给我拟合系数的不确定性以及预测间隔的不确定性时,就没有考虑数据的不确定性。查看文档,lm
页面具有以下内容:
权重可以用来表示不同的观察结果具有不同的方差
因此,我认为也许这与它有关。我知道手动执行操作的原理,但是我想知道是否可以使用该lm
功能执行操作。如果没有,是否还有其他功能(或包装)能够做到这一点?
编辑
看到一些评论,这里有一些澄清。举个例子:
x <- 1:10
y <- c(131.4,227.1,245,331.2,386.9,464.9,476.3,512.2,510.8,532.9)
mod <- lm(y ~ x + I(x^2))
summary(mod)
给我:
Residuals:
Min 1Q Median 3Q Max
-32.536 -8.022 0.087 7.666 26.358
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 39.8050 22.3210 1.783 0.11773
x 92.0311 9.3222 9.872 2.33e-05 ***
I(x^2) -4.2625 0.8259 -5.161 0.00131 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 18.98 on 7 degrees of freedom
Multiple R-squared: 0.986, Adjusted R-squared: 0.982
F-statistic: 246.7 on 2 and 7 DF, p-value: 3.237e-07
所以基本上我的系数是a = 39.8±22.3,b = 92.0±9.3,c = -4.3±0.8。现在让我们说对于每个数据点,错误是20。我将weights = rep(20,10)
在lm
调用中使用它,而得到的是:
Residual standard error: 84.87 on 7 degrees of freedom
但是系数的标准误差不会改变。
手动地,我知道如何使用矩阵代数计算协方差矩阵并将权重/误差放在其中,并由此得出置信区间,以完成此操作。那么在lm函数本身或任何其他函数中有没有办法做到这一点?
lm
将使用归一化的方差作为权重,然后假设您的模型在统计上有效,可以估计参数不确定性。如果您认为不是这种情况(误差线太小或太大),则不应信任任何不确定性估计。
boot
R中的程序包对其进行引导。之后,可以对自举数据集运行线性回归。