次のスクリプトを実行してみましょう。これは のaとbを推定するスクリプトです。
dset <- read.csv("d/sample3.csv", header=TRUE) attach (dset) eq1 <- lm(y ~ x1) summary(eq1)
次のような結果が出るはずです。
> dset <- read.csv("d/sample3.csv", header=TRUE) > attach (dset) > eq1 <- lm(y ~ x1) > summary(eq1) Call: lm(formula = y ~ x1) Residuals: 1 2 3 4 5 6 -1.041 2.061 -1.673 1.378 -2.794 2.070 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -6.0930 2.4456 -2.491 0.06738 . x1 2.6227 0.5694 4.606 0.00999 ** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 2.352 on 4 degrees of freedom Multiple R-Squared: 0.8414, Adjusted R-squared: 0.8017 F-statistic: 21.21 on 1 and 4 DF, p-value: 0.009987 > >
出力結果を解説する前に、ごく簡単に単回帰の理屈を説明しておきましょう。
aとbはをなるべく小さくするように選ばれています。そのための計算は単調なものですが、すっかり公式として整理されています。この公式を短く書くためには行列の意味や計算がわかっていないといけないので、ここでは公式(正規方程式)について説明しないことにします。
なぜをなるべく小さくするaやbを選ぶのでしょう。それは「説明しそこなった部分の大きさを分散で測っている」ことに関係があります。分散は「説明しそこなった部分を2乗して足してゆく」統計量なので、分散がなるべく小さくなるように考えている、ということなのです。
では、実際にどうやって計算するのでしょう。ミクロ経済学で最大化問題を解くとき、「微分してゼロとおく」ことで解を見つけます。関数が極大になったところでは、アーチのてっぺんのように傾きはゼロなはずだ、という理屈です。ここでもコンピュータは似たような計算をやっています。
では、順に解説していきましょう。
aやbはCoefficients(係数)と呼ばれます。そのEstimates(推定値)はこの場合、aが-6.0930、bが2.6227です。
aはIntercepts(切片)とよく呼ばれます。X1=0のときのyの値は、yの軸を推定された直線のグラフが横切る値でもあるからです。ですから、推定された式は です。
コンピュータに与えたデータは、
x1 y 1.5 -3.2 2.3 2.0 3.8 2.2 4.2 6.3 5.6 5.8 6.3 12.5
でしたね。x1が1.5のとき、上の推定式に当てはめると、yは-2.15895になるはずですが、与えたデータは-3.2です。-1.04105だけ推定を「はずした」、あるいは「説明しそこなった」ことになります。これをResidual(残差)といいます。残差はもちろん小さいほうが良いのですが、残差を目で見ることの意味は「残差にパターンが残っていないか」という点にあります。
Std.Errorと書いてあるのはStandard Error(標準誤差)です。これに関する説明は少し長くなるので回帰分析と標準誤差を見てください。
早稲田大学商学部 阿部圭司先生のシラバス http://www.aoni.waseda.jp/abek/comm/index-fall.html