0

lm()基礎となる式 $(X'X)^{-1} X'Y$を使用して、パネル/時系列データセットで単純な多変量回帰を実行しています

2 つの方法から同じ係数値を取得することを期待しています。しかし、私はまったく異なる見積もりを取得します。

Rコードは次のとおりです。

  return = matrix(ret.ff.zoo, ncol = 50)  # y vector
  data = cbind(df$EQ, df$EFF, df$SIZE, df$MOM, df$MSCR, df$SY, df$UMP)   # x vector

  #First method     
  BETA = solve(crossprod(data)) %*% crossprod(data, return)

  #Second method
  OLS <- lm(return ~ data)

2つの方法で推定値が異なる理由はわかりません..

どんな助けでも大歓迎です!ありがとうございました。

4

1 に答える 1

3

あなたの例は再現できませんが、ダミーデータで試してみるとlm、切片を取り出したときに行列式と同じ結果が得られます。

set.seed(1)

x <- matrix(rnorm(1000),ncol=5)
y <- rnorm(200)

solve(t(x) %*% x) %*% t(x) %*% y
              [,1]
[1,] -0.0826496646
[2,] -0.0165735273
[3,] -0.0009412659
[4,]  0.0070475728
[5,] -0.0642452777
> lm(y ~ x + 0)

Call:
lm(formula = y ~ x + 0)

Coefficients:
        x1          x2          x3          x4          x5  
-0.0826497  -0.0165735  -0.0009413   0.0070476  -0.0642453  
于 2013-09-04T18:25:49.540 に答える