スズメの生存確率のモデルを当てはめる
この演習では、厳しい冬の嵐でスズメが生き延びる確率を、スズメの身体的特徴に基づいて推定します。データセット sparrow はすでに読み込まれています。予測する目的変数は status("Survived", "Perished")です。考慮する変数は次のとおりです。
total_length: くちばしの先から尾の先までの全長(mm)weight: 重量(グラム)humerus: 上腕骨(翼と胴体をつなぐ「上腕の骨」)の長さ(インチ)
glm()(docs)でロジスティック回帰モデルを作成するときは、必ず family = binomial を明示的に指定します。
glm(formula, data = data, family = binomial)
ロジスティック回帰モデルを確認するために、summary() と broom::glance() を呼び出します。診断指標の一つとして、\(R^2\) の類推である疑似-\(R^2\) を見ていきます。
$$ pseudoR^2 = 1 - \frac{deviance}{null.deviance} $$
逸脱度(deviance)は分散に相当する概念で、カテゴリカルデータにおける変動の大きさを表します。疑似-\(R^2\) は通常の回帰における \(R^2\) に相当し、\(R^2\) が回帰モデルの「分散の説明度」を示すのに対して、疑似-\(R^2\) は「逸脱度の説明度」を示します。
この演習はコースの一部です
R による Supervised Learning:回帰
演習の手順
- 動画で説明したとおり、
TRUEとFALSEの結果を予測します。status == "Survived"のときに TRUE となる新しい列survivedをデータフレームsparrowに作成してください。 - 関心のある変数を説明変数として、
survivedを目的変数にする式fmlaを作成し、表示してください。 - スズメの生存確率を予測するロジスティック回帰モデルを当てはめ、変数
sparrow_modelに代入してください。 summary()を呼び出して、係数、逸脱度(deviance)、ヌル逸脱度(null deviance)を確認してください。- モデルに対して
glance()を呼び出し、逸脱度などの診断情報をデータフレームで確認してください。glance()の出力は変数perfに代入します。 - 疑似-\(R^2\) を計算してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# sparrow is available
summary(sparrow)
# Create the survived column
sparrow$survived <- ___
# Create the formula
(fmla <- _____)
# Fit the logistic regression model
sparrow_model <- ___
# Call summary
___
# Call glance
(perf <- ___)
# Calculate pseudo-R-squared
(pseudoR2 <- ___)