Excelの回帰直線にまつわる問題。

watto.hatenablog.com
で、id:NOV1975

分析ツールとか普通にχ自乗検定とかも楽にできるよ。でもExcelの分析ツールは計算バグありだった(今は知らない)から正式な奴には使えなかったけど。

が言っている事は、おそらくExcel2003あたりでもバグが残ってたという話だと思うが。
結構計算精度が低かったり[0..1]の一様乱数でなんでかマイナスが出たりした事もある。
「site:aoki2.si.gunma-u.ac.jp excel」でググるとよし。
ここらへんのバグが直ったのか、までは確認はしていない。やる気しない。あと、統計関数でも自由度整数じゃないとダメだったりとか(小数点自由度の場合に、分布の近似があったりするんだが、そこら辺を押さえ切るのがExcelでは難しい)色々面倒がある。


まあ、でも、だいたいカイ二乗分布で事が足りる(近年は直接確率計算する事が増えたが)。ビッグデータとかの場合には、もっと雑でも十分。


で、本題というか、意外と誤解されがちなので。
単回帰分析の場合、従属変数Yと説明変数Xの意味が異なる。Yは一定ブレ(残差)が生じるがXはブレを想定していない。
「見た目で何となく引く線」とは異なるのはその為である。
直線に対しての「距離」の最小化、とはならない。ここらへん、XとYを入れ替えても問題ない相関とは異なる。
参考:
www.ab.auone-net.jp



余談だが。

直線回帰の場合、傾きと切片は計算するのはそれほど難しくはない。
定義に近い形で計算すると。

x y
0.75 8.7
0.55 6.8
0.72 7.9
0.61 7.0
0.66 7.1
0.58 6.1

で、これらの平均を求めておく。

mean(x) mean(y)
0.645 7.26666666666667


それぞれの平均との差(偏差)を求める。

x-mean(x)
D(x)
y-mean(y)
D(y)
0.105 1.43333333333333
-0.095 -0.466666666666667
0.075 0.633333333333334
-0.035 -0.266666666666667
0.015 -0.166666666666667
-0.0650000000000001 -1.16666666666667

以下は計算上使うのでやっておく。

D(x)^2 D(x)*D(y)
0.011025 0.1505
0.00902499999999999 0.0443333333333333
0.00562499999999999 0.0475
0.001225 0.00933333333333334
0.000225 -0.00250000000000001
0.00422500000000001 0.0758333333333334
sum{D(x)^2} sum{D(x)*D(y)}
0.03135 0.325

傾き=sum{D(x)*D(y)}/sum{D(x)^2}=10.36682616
切片=mean(y)-傾き*mean(x)=0.580063796