加权最小二乘估计的函数

Rya*_*anB 7 r least-squares

R是否具有加权最小二乘函数?具体来说,我正在寻找能够计算拦截和斜率的东西.

数据集

  1. 1 3 5 7 9 11 14 17 19 25 29
  2. 17 31 19 27 31 62 58 35 29 21 18
  3. 102153 104123 96564 125565 132255 115454 114555 132255 129564 126455 124578

因变量是数据集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.

  • 现在我们不遵循.你想要使用什么重量? (3认同)
  • 然后它听起来并不像你想要加权最小二乘法. (3认同)

Cha*_*ase 5

首先,创建数据集.我把它们放在一个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/

  • @RyanB - 我会将您的数据添加到您的问题中,以便它们集中在一个地方.此外,如果这回答了您的问题,单击复选标记以"接受"它将让其他人知道这对您有帮助. (2认同)
  • @RyanB然后请注意@Chase和@Aaron使用的术语 - 除非你提供一些权重,否则你所做的不是权重最小二乘(WLS).@Chase显示的只是普通的最小二乘法.@ Dirk的答案向您展示了如何使用`lm()`函数开始使用WLS. (2认同)