1

我想对分析化学校准曲线使用加权因子进行线性回归。x 值是浓度并假定没有错误。y 值是仪器响应,假设变化与浓度成正比。所以,我想对线性回归使用 1/x 加权因子。数据集只是十个浓度,每个浓度只有一次测量。有没有一种简单的方法可以在 R 中做到这一点?.

4

1 回答 1

2

答案可以在Cross Validated上的一个较老的问题上找到。该lm()函数(表示应用线性回归的常用方法)具有指定权重的选项。weights如链接上的答案所示,您可以在参数中使用公式。在您的情况下,公式可能会采用1/data$concentration.

正如 hrbrmstr 所建议的,我正在添加来自 Cross Validated 的 mpiktas 的实际答案

我认为 lm 的 R 帮助页面很好地回答了您的问题。权重的唯一要求是提供的向量必须与数据的长度相同。您甚至可以只提供数据集中变量的名称,R 将负责其余的工作,NA 管理等。您还可以在权重参数中使用公式。这是示例:

x <-c(rnorm(10),NA) df <-
data.frame(y=1+2*x+rnorm(11)/2,x=x,wght1=1:11)

##Fancy weights as numeric vector 
summary(lm(y~x,data=df,weights=(df$wght1)^(3/4))) 

#Fancy weights as formula on column of the data set
summary(lm(y~x,data=df,weights=I(wght1^(3/4))))

#Mundane weights as the column of the data set
summary(lm(y~x,data=df,weights=wght1)

注意权重必须是正数,否则 R 会产生错误。

于 2015-11-11T11:02:12.457 回答