R是否具有加权最小二乘函数?具体来说,我正在寻找能够计算拦截和斜率的东西.
数据集
因变量是数据集3,数据集1和2是自变量.
Dir*_*tel 12
是的,当然,有一个weights=选项lm(),基本的线性模型拟合函数.快速举例:
R> df <- data.frame(x=1:10)
R> lm(x ~ 1, data=df) ## i.e. the same as mean(df$x)
Call:
lm(formula = x ~ 1, data = df)
Coefficients:
(Intercept)
5.5
R> lm(x ~ 1, data=df, weights=seq(0.1, 1.0, by=0.1))
Call:
lm(formula = x ~ 1, data = df, weights = seq(0.1, 1, by = 0.1))
Coefficients:
(Intercept)
7
R>
Run Code Online (Sandbox Code Playgroud)
因此,通过更严格地权衡后来的观察,序列1到10的平均值从5.5移动到7.
首先,创建数据集.我把它们放在一个data.frame中,但这不是绝对必要的.
dat <- data.frame(x1 = c(1,3,5,7,9,11,14,17,19,25, 29)
, x2 = c(17, 31, 19, 27, 31, 62, 58, 35, 29, 21, 18)
, y = c(102153, 104123, 96564, 125565, 132255, 115454
, 114555, 132255, 129564, 126455, 124578)
)
Run Code Online (Sandbox Code Playgroud)
二,估计模型:
> lm(y ~ x1 + x2, data = dat)
Call:
lm(formula = y ~ x1 + x2, data = dat)
Coefficients:
(Intercept) x1 x2
104246.37 906.91 85.76
Run Code Online (Sandbox Code Playgroud)
第三,根据@Dirk的建议,根据需要添加权重.
第四,也是最重要的 - 阅读一篇或两篇有关R的回归的教程.Google将其打造成热门话题:http://www.jeremymiles.co.uk/regressionbook/extras/appendix2/R/