Rにおける線形回帰の当てはめと解釈:導入編
ようこそ!この章では、Paper Aで学んだ理論的な数式から一歩進んで、Paper Bで必要となるRを用いた線形回帰の実践的な応用について学んでいきます。回帰分析はアクチュアリーにとって最も強力なツールの1つです。これを使うことで、変数間の関係(例えば、運転者の年齢が保険金請求額にどう影響するかなど)を理解し、将来の予測を立てることが可能になります。
Paper Bにおいて、試験官は単に「正しい数値」を求めているわけではありません。ソフトウェアを使ってモデルを当てはめ、サマリー出力を解釈し、そのモデルがデータに対して本当に適切かどうかを検証できるかどうかがチェックされます。最初はRのコードに戸惑うかもしれませんが、大丈夫です。出力結果を一行ずつ丁寧に解説していきます。
1. モデルの当てはめ:lm() 関数
Rでは、lm() 関数(linear modelの略)を使って線形回帰モデルを構築します。最も重要なのは、以下のフォーマット(記法)を覚えることです:
\(背後にある変数 \sim 説明変数\)
- 目的変数 (\(y\)): 予測したい対象(例:総請求額)。
- 説明変数 (\(x\)): 目的変数に影響を与えていると考えられる要因(例:保険契約者数)。
単回帰と重回帰
説明変数が1つだけのものを単回帰分析と呼びます:
\(model1 <- lm(y \sim x, data = my_data)\)
複数の説明変数があるものを重回帰分析と呼びます:
\(model2 <- lm(y \sim x1 + x2 + x3, data = my_data)\)
ヒント: Rは「最小二乗法」を用いて回帰直線を算出します。これは、実際のデータ点と直線による予測値との差の二乗和を最小にする手法です。
2. サマリー出力の解釈
モデルを当てはめたら(例:\(fit <- lm(y \sim x)\))、summary(fit) というコマンドを使って結果を確認します。Paper Bの設問の多くは、この出力結果に関するものです。
係数表 (Coefficients Table)
この表には、切片と傾きに関する最小二乗推定量が表示されます:
- (Intercept) Estimate (\(\hat{\beta}_0\)): すべての \(x\) 変数がゼロの時の \(y\) の予測値(切片)。
- Variable Estimate (\(\hat{\beta}_1\)): 他の変数を一定としたとき、その説明変数が1ユニット増加した際の目的変数の変化量(傾き)。
傾きに関する統計的推論
出力結果には、各係数に対する p値(通常 Pr(>|t|) と表記されます)も示されます。これを用いて、帰無仮説 \(H_0: \beta_i = 0\) を検定します:
- p値が小さい場合(一般的に \(p < 0.05\)): 帰無仮説 \(H_0\) を棄却します。その説明変数は統計的に有意であり、目的変数との間に意味のある関係があると言えます。
- p値が大きい場合 (\(p > 0.05\)): 帰無仮説 \(H_0\) を棄却できません。他の変数が存在する場合、その変数は予測に役立っていない可能性があります。
ここがポイント: Rの出力にある星印(***)に注目してください。これは有意性を示す素早いガイドになりますが、試験では結論を裏付けるために必ず具体的な p値を引用するようにしましょう。
3. 当てはまりの良さ(適合度)の評価
作成したモデルは、どの程度データをうまく説明できているでしょうか?Rの出力から2つの主要な指標を確認します。
決定係数 (\(R^2\))
\(R^2\) は、目的変数の全変動のうち、説明変数によって説明できる割合を示します。範囲は \(0\) から \(1\) です:
- \(R^2 = 0.85\) は、データの分散の85%がモデルによって説明されていることを意味します。
- \(R^2 = 1.00\) は完全に一致していることを意味します(現実のアクチュアリーデータでは極めて稀です!)。
自由度調整済み決定係数 (Adjusted R-squared)
説明変数を増やすと、たとえ無意味な変数であっても \(R^2\) はほぼ確実に増加してしまいます。自由度調整済み決定係数は、不要な変数を追加することに対して「ペナルティ」を課す指標です。変数の数が異なる2つのモデルを比較する場合、通常はこの値が高い方のモデルが好まれます。
4. 残差を用いたモデルの妥当性チェック
「残差」とは、実際の観測値とモデルによる予測値の差のことです:\(e_i = y_i - \hat{y}_i\)。線形回帰が妥当であるかを確認するために、Rの診断プロット(通常は plot(fit) を使用)で残差をチェックします。
- Residuals vs Fitted プロット: 点がランダムな「雲」のように散らばっているのが理想です。もし曲線や扇形(ファン形状)のような明確なパターンが見られる場合、線形モデルが不適切であるか、分散が一定でない(不均一分散)可能性があります。
- Normal Q-Q プロット: 点がほぼ対角線上に並んでいる必要があります。これにより、残差が正規分布に従っていることが確認でき、p値や信頼区間の妥当性が保証されます。
よくある間違い: 単に「このモデルは良い」と言うだけでなく、残差プロットを用いて「線形性」「等分散性」「正規性」の仮定が満たされていることを根拠とともに説明するようにしてください。
5. 予測と信頼限界
モデルが完成したら、predict() 関数を使って新しいデータの値を推定します。CS1では、以下の2種類の区間を区別する必要があります:
信頼区間 (Confidence Interval - 平均的な応答)
特定の \(x\) の値を持つすべての個体の平均値に対する区間です。
Rコード:\(predict(fit, newdata, interval = "confidence")\)
予測区間 (Prediction Interval - 個別の応答)
将来の特定の1つの観測値に対する区間です。個々の結果は平均よりも変動が大きいため、予測区間は常に信頼区間よりも広くなります。
Rコード:\(predict(fit, newdata, interval = "prediction")\)
例え話: 1,000人の男性の平均身長を予測すること(信頼区間)は、次にドアから入ってくる男性1人の身長を予測すること(予測区間)よりもはるかに簡単で、精度も高くなるのと同じです。
6. まとめとモデル選定
複数の候補となる説明変数がある場合、「最適」なセットを選ぶ必要があります。このプロセスには以下が含まれます:
- 各変数の有意性の確認(p値)。
- 最も高い自由度調整済み決定係数の追求。
- モデルに寄与しない変数の削除(「ステップワイズ法」と呼ばれますが、試験では特定の2つのモデルを比較するよう求められることが多いです)。
豆知識: アクチュアリーはこれらのモデルを「基本料率(base rates)」の設定によく利用します。例えば、線形回帰によって「車両の年数が1年増えるごとに、年間の予想修理費が \(50\)$ 増加する」といったことが分かります。この \(50\)$ こそが、Rの出力に表示される傾きの係数なのです!
クイック復習ボックス
- lm(y ~ x): モデルを当てはめる。
- summary(): 係数、p値、\(R^2\) を表示する。
- p-value < 0.05: 変数が有意であることを示す。
- R-squared: 分散がどの程度説明されているかを示す。
- plot(): 残差を通じてモデルの仮定が正しいかチェックする。
- 予測区間: 信頼区間よりも常に幅が広い。