R中的加权线性回归

时间:2015-11-11 10:55:07

标签: r regression linear weighting

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

1 个答案:

答案 0 :(得分:2)

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

的形式

根据hrbrmstr的建议,我正在添加mpiktas's actual answer from Cross Validated

  

我认为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将产生错误。