線形モデルと二値の目的変数
動画では、二値の目的変数に線形モデルを当てはめる例と、そこからどのような問題がすぐに起こるかを見ました。直線に当てはめると、得られる予測値 \(\hat{y}\) が 0 と 1 の値を取るという問題設定の整合性から外れてしまうことを学びました。
あらかじめ読み込まれている crab データセットを使い、GLM の枠組みで y を x の関数としてモデル化し、この影響を確認します。
GLM のモデル定義は次のとおりです:
glm(formula = 'y ~ X', data = my_data, family = sm.families.____).fit()
ここで指定するのは formula、data、family です。
また、次のことも思い出してください:
- Gaussian ファミリーの GLM は線形モデル(GLM の特殊例)です
- Binomial ファミリーの GLM はロジスティック回帰モデルです。
この演習はコースの一部です
Pythonで学ぶ一般化線形モデル
演習の手順
crabデータセットを使い、yをwidthで予測するようにモデルの formula を定義します。- GLM の式で線形モデルを当てはめるには、family 引数に
Gaussian()を指定します。これは y が連続で概ね正規分布に従うと仮定します。 - GLM の式でロジスティックモデルを当てはめるには、family 引数に
Binomial()を指定します。 - 適切な引数で
glm()によりモデルを当てはめ、print()とsummary()を使って当てはめたモデルのサマリーを確認します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Define model formula
formula = '____ ~ ____'
# Define probability distribution for the response variable for
# the linear (LM) and logistic (GLM) model
family_LM = sm.families.____
family_GLM = sm.families.____
# Define and fit a linear regression model
model_LM = glm(formula = ____, data = ____, family = ____).fit()
print(____.____)
# Define and fit a logistic regression model
model_GLM = glm(formula = ____, data = ____, family = ____).fit()
print(____.____)