Study Log

とある大学院生の勉強記録。

『Rによる統計的学習入門』解答(2.4 演習問題)

『Rによる統計的学習入門』の解答例・解答上のポイントを載せます。

 

解答の目次、他の方の解答は以下の記事にまとめてあります。 

intrinsic-motivation.hatenablog.com

 

2.4 演習問題

(1)(a)〜(d)…上記記事の他の方の解答参照

 

(補足)

英語版では"extremely large"という表現がなされている事に注目。

日本語版の「極めて」よりも英語版の"extremely"の方が、より母集団のデータに近いという響きがします。

f:id:intrinsic_motivation:20190511154247p:plain

 

(2)…上記記事の他の方の解答参照

説明不要・補足なし

 

(3)(a)僕のイメージ

(補足)

ポイントは、グラフを無理にRで描こうとしないこと笑。

日本語版は「グラフに描け」と書かれていて、前のページもRでのグラフの描き方に触れているので、てっきりRで描くと思っていました。

データも明示されていないし、どうしたら良いのか途方に暮れていたのですが、英語版を見ると"sketch"と書かれていて、作問者の要求的に手書きで良いっぽいと判断しました。

f:id:intrinsic_motivation:20190511155627p:plain

 

(b)

※全て2乗された値なので非負


①2乗バイアス
…バイアスとは極めて複雑な実際の現象をより単純なモデルで近似した為に生じる誤差である。柔軟さが増すほど実際の現象を近似する上での制約が少なくなる為、バイアスが小さくなる

 

②分散
…柔軟さが増すほど(訓練)データが𝑓 ̂の推定に与える影響度合いが増す為、分散が増加する

(補足)

個人的にはこの問題が一番難しかったです。 ここで言う分散とは何か、つまり2.7式と2.6式を完璧に理解する事が重要ですが、僕にとっては日本語版p28, p32あたりに書かれた説明が難しく、あまり理解できていなかったので、ゼミでかなり突っ込まれました。

僕なりにポイントは以下だと思いました。

・「データ」が「訓練データ」なのか「テストデータ」なのか明確にする事

・𝑓と𝑓 ̂の関係を言える事(統計をかじった身としては𝑓 ̂が推定対象というのが意外…)

・x0が何なのか、𝑓 ̂(x0)が何なのか、それによってなぜ分散が出るのか言える事

 

③訓練誤差
…柔軟になればなるほど曲線がより正確にデータにフィットするようになるので、訓練誤差は減少する

 

④テスト誤差
…柔軟になるにつれ、最初はデータへのフィットが増すのでテスト誤差は減るが、あるタイミングから真のモデルに含まれない誤差もモデルに組み込もうとする為、テスト誤差が増える(過学習の状態)。その為、U字型の曲線になる

 

ベイズ(削減不能)誤差
…予測精度(テストMSEの下限)を表す為、テストMSEの下限(よりやや下)に直線を描く

(この本ではベイズ誤差が1.0のラインに描かれているが、これはシミュレーションを行う際に誤差を1.0にするよう設定した為であって、1.0に意味は無いと思われる(多分)。大事なのはテストMSEとの位置関係)

 

(4)…上記記事の他の方の解答参照

説明不要・補足なし

 

(5)

良い点…

n数が十分にあれば予測精度の向上が期待できる

 

 悪い点…

・xとyの関係が複雑になり、解釈がしにくくなる

・多くのnが必要

 

→柔軟なモデルは予測の文脈においては有効だが、推論の文脈においては不向き

 

推論は、「あくまで過去のデータからは◯◯が言えます。それを踏まえ今後はこうなる事が考えられます」という話で、将来その通りになるかは必ずしも担保できない。一方で、予測において大事なのは「将来その通りになること」という予測精度。

例えば株価を予測する場合、何が上昇・下降の原因だったのかという理由より、予測が当たる事が重要。しかし例えば新薬の開発においては「この薬は◯◯の成分によって副作用が起こる事がある」という理由が分かっている事が重要。その点を説明できなければ開発時の改善もできないし、仮に承認されたとして処方時の説明責任も果たせない。

 

(6)…上記記事の他の方の解答参照

(補足)パラメトリック法のメリットとして、仮説ベースで分析できる点があります(モデル構造そのものを分析者が過程する為)。一方で幅広いモデルの可能性を探索的に分析するのは難しいです。例えば囲碁で「AIの考えた手は、人間だと思いもよらない方法だった」という話を聞きますが、これは探索的な分析を行うがゆえでしょう。

 

(7)

f:id:intrinsic_motivation:20190511164405p:plain

 

(補足)

ポイントは、日本語版の問題が間違っている事です(笑)。

観測値6において、英語版だとX1=1, X2=1, X3=1ですが、日本語版だとX1=1, X2=0, X3=2となっています。このまま計算すると、(c)の答えが出ません。

 

(a)…画像参照

日本語版だと観測値6のユークリッド距離が2.236068となります。

英語版だと1.732050となります。

※画像は日本語版で算出しています。

 

(b)

K=1の時、(X1, X2, X3)=(0, 0, 0)との距離が最も近い点は観測値5(1.414214)

観測値5はGreenである為、Greenと予測されます。

 

(c)

K=3の時、(X1, X2, X3)=(0, 0, 0)との距離が近い順から3つ選ぶと

【日本語版】

①観測値5(1.414214)...Green

②観測値2(2)...Red

③観測値4(2.236068)...Green

と観測値6(2.236068)...Red

→と、Green:Red = 2:2になり選べません。

 

【英語版】

①観測値5(1.414214)...Green

②観測値6(1.732050)...Red

③観測値2(2)...Red

→と、Green:Red = 1:2になり、Redと予測されます。

 

(d)

小さい。Kの値を大きくすると柔軟さが減少し、境界を決定しにくくなる為。 

※K最近傍法はある点の近隣にあるK個のデータによる多数決で分類します。Kの数が多くなると1個のデータが分類に与える影響度が減る為、分類は線形に近づき、柔軟性が減少します。

 

(8)…上記記事の他の方の解答参照

説明不要・補足なし

 

(9)…上記記事の他の方の解答参照

 (補足)

(a)nameが質的変数なのは明らかですが、originは原産国をダミー変数で表しているようなので、これも質的変数と考えられます

 

(f)日本語版と英語版で問われ方が違うので注意。

f:id:intrinsic_motivation:20190511171038p:plain

英語版では質問自体がYes, Noで答えよ→理由を答えよ という問われ方なので、GitHubの解答の仕方に違和感があるかもしれません。

 

以下日本語版の解答例

(e)で図示した内容を元にすると、mpg(燃費)と他の変数の関係性は以下

①displacement(排気量)が小さいほどmpgが大きい

 horsepower(馬力)が小さいほどmpgが大きい

 weight(重量)が小さいほどmpgが大きい

②accelaration(加速)が大きいほどmpgが大きい

③year(年式)が大きいほどmpgが大きい

上記から、予測するのに適していると思われる変数は

①のdisplacement, horsepower, weightから1つ

②のaccelaretion

③のyear

が挙げられる。

※①から1つを選んだのは多重共線性を回避する為。ただし他にもAICを求める時に使うステップワイズ法(等)で回避する方法や、スパース推定を用いる方法もあるようなので、あくまでも一例。

 

(10)

…上記記事の他の方の解答参照

 (補足)

(b)の散布図はパッケージpsychにあるpairs.panelsがオススメ。

install.packages("psych")
library("psych")
pairs.panels(Boston) 

 

(h)その他解答例

(一件あたり平均8部屋以上ある地域について)

・平均部屋数8以上の地域は、平均的に犯罪率が低く、極端に犯罪率が高い地域は存在しない

・また、小売以外の産業の面積が小さく、貧困層の割合が大きい

 

 

以上

長かった…。