2008-07-03

交差検証法

レポートの解答例

Sub report()

Dim A As Range, B As Range, C As Range, D As Range

Cells(1, 1) = 2
Cells(1, 2) = 4
Cells(1, 3) = 4
Cells(2, 1) = 2
Cells(2, 2) = -1
Cells(2, 3) = -6
Cells(3, 1) = 2
Cells(3, 2) = 3
Cells(3, 3) = -2

Cells(1, 5) = 18
Cells(2, 5) = -2
Cells(3, 5) = -6

Set A = Range(Cells(1, 1), Cells(3, 3))
Set B = Range(Cells(1, 5), Cells(3, 5))
Set C = Range(Cells(5, 1), Cells(7, 3))
Set D = Range(Cells(5, 5), Cells(7, 5))

C = Application.MInverse(A)
D = Application.MMult(C, B)

End Sub

交差検証法

さて前回は

y=β01x12x23x3+誤差

というモデルを考えたのですが(これをモデル0と呼ぶことにします)、これが最適とは限りません。今回は他のモデルも考えてみて、比較しましょう。経度は気温への影響が少ないかも知れないので

y=β01x13x3+誤差

というモデルを考えて(これをモデル1と呼ぶことにします)、これとモデル0のどちらが良いか比較します。

比較の方法として

i=120 {yi-(β01xi12xi23xi3)}2

i=120 {yi-(β01xi13xi3)}2

の最小値が小さい方、という比較は意味がありません。必ず前者の方が等しいか、小さくなります。何故なら前者で β2=0と置けば後者になるので、後者の最小値と同じ値を前者はとることが出来るからです。 注意すべきは、もし仮にx2がyと関係なくても、前者の方が小さくなってしまうので、これらの 小ささを比較していては不要な変数もどんどん採用してしまいます。

ではどのように比較すればよいでしょうか?大事なのは

y=β01x12x23x3+誤差

y=β01x13x3+誤差

が、yの値を知らないときにその予測として役に立つか、ということです。なので例えば β01x112x123x13がy1の推定として役に立っているか確認するなら、β0, β1, β2, β3を推定するためにy1の値を使っては確認になりません。

従って、次の手順でモデル0の推定のよさを調べることになります。

1.
都市番号2,3,...,20のデータを用いてβ0, β1, β2, β3の値を推定し、そのβ0, β1, β2, β3を用いて推定誤差
y1-(β01x112x123x13) を求めます。
2.
都市番号1,3,...,20のデータを用いてβ0, β1, β2, β3の値を推定し、そのβ0, β1, β2, β3を用いて推定誤差
y2-(β01x212x223x23) を求めます。
……
20.
都市番号1,2,...,19のデータを用いてβ0, β1, β2, β3の値を推定し、そのβ0, β1, β2, β3を用いて推定誤差
y20-(β01x20,12x20,23x20,3) を求めます。
これらの推定誤差を2乗して足したものを、モデル0の推定誤差として用います。モデル1についても同様の手順で推定誤差を求め、これらが小さいほうのモデルを採用します

0 件のコメント: