繁体   English   中英

计算改变 y 值的斜率

[英]Calculating the slope with changing y-values

所以我对如何解决这个任务有一个直觉,但我对如何在 R 中计算它有疑问:我需要 output 的 beta 值 Z20F35E630DAF44DBFA4C3F68F539 和投票(y 增长 = xD)。 诀窍是,我想为每个 y 值一个一个地添加 +1,并制作 16 个模型,以了解这如何影响 beta 值。

我想一个循环可以解决这个问题,但我不确定如何。

我使用这个公式计算斜率:

betaHat <- (sum(((data$growth)-mean(data$growth))*data$vote))/
            (sum(((data$growth)-mean(data$growth))^2)) # vote = y, growth = x
   year growth  vote inc_party_candidate other_candidate
1  1952   2.40 44.60           Stevenson      Eisenhower
2  1956   2.89 57.76          Eisenhower       Stevenson
3  1960   0.85 49.91               Nixon         Kennedy
4  1964   4.21 61.34             Johnson       Goldwater
5  1968   3.02 49.60            Humphrey           Nixon
6  1972   3.62 61.79               Nixon        McGovern
7  1976   1.08 48.95                Ford          Carter
8  1980  -0.39 44.70              Carter          Reagan
9  1984   3.86 59.17              Reagan         Mondale
10 1988   2.27 53.94           Bush, Sr.         Dukakis
11 1992   0.38 46.55           Bush, Sr.         Clinton
12 1996   1.04 54.74             Clinton            Dole
13 2000   2.36 50.27                Gore       Bush, Jr.
14 2004   1.72 51.24           Bush, Jr.           Kerry
15 2008   0.10 46.32              McCain           Obama
16 2012   0.95 52.00               Obama          Romney

您可以将 lm 用于直接线性回归和 beta。

for(ii in 1:16)
{
  x = data$growth
  y = data$vote
  y[ii] = y[ii] + 1

  reg = lm(y ~ x)
  print(reg$coefficients)

  # for without intercept you can do..
  reg = lm(y ~ x - 1)
  print(reg$coefficients)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM