数据具有不确定性的线性模型,使用R


9

假设我有一些不确定性的数据。例如:

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函数本身或任何其他函数中有没有办法做到这一点?


如果您知道数据的分布,则可以使用bootR中的程序包对其进行引导。之后,可以对自举数据集运行线性回归。
费迪

lm将使用归一化的方差作为权重,然后假设您的模型在统计上有效,可以估计参数不确定性。如果您认为不是这种情况(误差线太小或太大),则不应信任任何不确定性估计。
帕斯卡

Answers:


14

实际上,与“正常”线性回归相比,这种类型的模型在科学(例如物理学)和工程学的某些分支中更为常见。因此,在这类物理工具中ROOT,进行这种拟合是微不足道的,而线性回归并不是本地实现的!物理学家倾向于将其称为“拟合”或卡方最小化拟合。

正常的线性回归模型假设每个度量值都有一个整体方差。然后,它最大化似然性 或等效地以对数 因此,最小二乘这个名字(使可能性最大化)是相同最小平方之和,和是一个不重要的常数,只要它恒定的。使用已知不确定性不同的测量,您将需要最大化 σ

大号一世Ë-1个2ÿ一世-一个X一世+bσ2
日志大号=CØñsŤ一个ñŤ-1个2σ2一世ÿ一世-一个X一世+b2
σ
大号Ë-1个2ÿ-一个X+bσ一世2
或等效其对数 所以,您实际上想通过反方差而不是方差来加权测量。这是有道理的-更精确的测量具有较小的不确定性,应给予更大的权重。请注意,如果此权重是恒定的,它仍然会超出总和。所以,它不会影响的估计值,但它应该影响标准误差,从所述第二导数取。
日志大号=CØñsŤ一个ñŤ-1个2ÿ一世-一个X一世+bσ一世2
1个/σ一世2日志大号

但是,在这里,我们得出了物理学/科学与统计学之间的另一个差异。通常,在统计数据中,您希望两个变量之间可能存在相关性,但是很少是精确的。另一方面,在物理学和其他科学中,如果不是因为讨厌的测量误差(例如,而不是),通常会期望相关或关系是精确的。您的问题似乎更多地属于物理/工程案例。因此,对于您的测量附带的不确定性和权重的解释与您想要的不完全相同。权衡一下,但它仍然认为总体上存在F=一个F=一个+ϵlmσ2考虑到回归误差,这不是您想要的-您希望测量误差是唯一的误差。(lm的解释的最终结果是仅权重的相对值很重要,这就是为什么您添加为测试的恒定权重无效的原因)。这里的问题和答案有更多详细信息:

lm重量和标准误差

答案中提供了两种可能的解决方案。特别是,那里的匿名答案建议使用

vcov(mod)/summary(mod)$sigma^2

基本上,lm根据估计的缩放协方差矩阵,并且您要撤消此操作。然后,您可以从校正后的协方差矩阵中获取所需的信息。尝试一下,但是如果可以使用手动线性代数,请尝试仔细检查。请记住,权重应为反方差。σ

编辑

如果你正在做这样的事情很多,你可能会考虑使用ROOT(这似乎同时,要做到这一点本身lmglm没有)。这是在中执行此操作的简短示例ROOT。首先,ROOT可以通过C ++或Python使用它,并且其下载和安装庞大。您可以使用Jupiter笔记本在浏览器中进行尝试,单击此处的链接,在右侧选择“ Binder”,在左侧选择“ Python”。

import ROOT
from array import array
import math
x = range(1,11)
xerrs = [0]*10
y = [131.4,227.1,245,331.2,386.9,464.9,476.3,512.2,510.8,532.9]
yerrs = [math.sqrt(i) for i in y]
graph = ROOT.TGraphErrors(len(x),array('d',x),array('d',y),array('d',xerrs),array('d',yerrs))
graph.Fit("pol2","S")
c = ROOT.TCanvas("test","test",800,600)
graph.Draw("AP")
c.Draw()

我将平方根作为值的不确定性。拟合的输出是ÿ

Welcome to JupyROOT 6.07/03

****************************************
Minimizer is Linear
Chi2                      =       8.2817
NDf                       =            7
p0                        =      46.6629   +/-   16.0838     
p1                        =       88.194   +/-   8.09565     
p2                        =     -3.91398   +/-   0.78028    

并产生一个不错的情节:

四合一

ROOT钳工还可以处理值中的不确定性,这可能需要对进行更多的修改。如果有人知道在R中执行此操作的本机方法,我将有兴趣学习它。Xlm

第二编辑

@Wolfgang的相同问题的另一个答案给出了一个更好的解决方案:程序包中的rma工具metafor(我最初解释该答案中的文本是指它没有计算截距,但事实并非如此)。将测量值y的方差简单地设为y:

> rma(y~x+I(x^2),y,method="FE")

Fixed-Effects with Moderators Model (k = 10)

Test for Residual Heterogeneity: 
QE(df = 7) = 8.2817, p-val = 0.3084

Test of Moderators (coefficient(s) 2,3): 
QM(df = 2) = 659.4641, p-val < .0001

Model Results:

         estimate       se     zval    pval    ci.lb     ci.ub     
intrcpt   46.6629  16.0838   2.9012  0.0037  15.1393   78.1866   **
x         88.1940   8.0956  10.8940  <.0001  72.3268  104.0612  ***
I(x^2)    -3.9140   0.7803  -5.0161  <.0001  -5.4433   -2.3847  ***

---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

对于我发现的这种类型的回归,这绝对是最好的纯R工具。


我认为取消的缩放比例基本上是错误的lm。如果执行此操作,验证统计信息(例如卡方)将关闭。如果残差的散布与误差线不匹配,则说明统计模型出了点问题(模型选择或误差线或正常假设...)。无论哪种情况,参数不确定性都是不可靠的!
帕斯卡

@PascalPERNOT我还没有这个;我会考虑您的意见。老实说,我从一般意义上同意,我认为最好的解决方案是使用保证正确解决此问题的物理或工程软件,而不是破解lm以获取正确的输出。(如果有人好奇,我将在中展示如何做到这一点ROOT)。
jwimberley

1
统计人员解决该问题的方法的一个潜在优势是,它允许汇总不同级别的观察值之间的方差估计值。如果基础方差是恒定的或与Poisson过程中的测量具有某种定义的关系,则相对于从(通常是不现实的)假设(每个数据点的测量方差是正确的,因此不公平地加权)得出的分析结果,分析通常会得到改善一些数据点。在OP的数据中,我猜想恒定方差假设可能会更好。
EdM

1
σσ2

1
这些问题在Andreon,S.和Weaver,B.(2015)物理科学的贝叶斯方法的第8章中进行了很好的讨论。施普林格。springer.com/us/book/9783319152868
Tony Ladson
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.