我对 R 相当陌生,但在其他语言以及物理科学的数据分析方面经验丰富。我有一个问题,将使用直线拟合来说明lm()
在物理科学中,如果因变量 (y) 具有明确的不确定性(也称为误差)并且这些不确定性都具有相同的值,那么如果我们拟合为一条直线,则斜率和截距的值不变,但不确定性如果数据没有明确的不确定性,斜率和截距将有所不同。我找不到正确的 R 拟合例程。我已经编写了在 C、Mathematica、Maple 和 LabView 中做正确事情的钳工,但希望避免在 R 中这样做。
这是一个例子:
d.f = data.frame( x = c(1, 2, 3, 4), y = c(2, 3.9, 6.1, 7.9), u = c(.1, .1, .1, .1))
变量u是 的值的不确定性y。做一个忽略不确定性的直线拟合:
fit1 <- lm(y ~ x, data = d.f)
这正是我认为正确的拟合,包括斜率和截距中的“标准误差”。
重量是常规的,所以我把它给lm()
fit2 <- lm(y ~ x, data = d.f, weights = 1/u^2)
这 2 种拟合的残差标准误差应该不同,但 Std。拟合参数中的误差不是。
例如,两个拟合的截距是,这是正确的,而标准。fit1 的截距错误是,这也是正确的。但是,对于 fit2,这些值完全相同。fit2 截距不确定性的正确值实际上是.
我已经搜索了相当多的内容,但未能在 R 中找到正确执行此操作的最小二乘回归拟合器。事实上,理想的这种拟合器也将接受x和y坐标中的不确定性,并使用“有效方差”技术进行拟合。或者我只是不明白如何使用lm()或解释它的结果。