R Language
一般化線形モデル
サーチ…
タイタニックデータセットのロジスティック回帰
ロジスティック回帰は、 一般化された線形モデルの特殊なケースであり、二分計算結果をモデル化するために使用されます ( プロビットおよび補完対数ログモデルは密接に関連しています)。
この名前は、使用されているリンク関数 、すなわちlogitまたはlog-odds関数に由来します。 ロジットの逆関数はロジスティック関数と呼ばれ、次のように与えられます。
この関数は、 -Inf; + Inf [の間の値を取り、 0と1の間の値を返します。 ロジスティック関数は線形予測子をとり、確率を返す。
ロジスティック回帰は、オプションfamily = binomial
( family = binomial(link="logit")
ショートカット; logitは二項族のデフォルトリンク関数family = binomial(link="logit")
のglm
関数を使用して実行できます。
この例では、RMS Titanicに搭乗している乗客の運命を予測しようとしています。
データを読む:
url <- "http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt"
titanic <- read.csv(file = url, stringsAsFactors = FALSE)
欠損値を消去する:
この場合、欠損値を近似(平均)で置き換えます。
titanic$age[is.na(titanic$age)] <- mean(titanic$age, na.rm = TRUE)
モデルを訓練する:
titanic.train <- glm(survived ~ pclass + sex + age,
family = binomial, data = titanic)
モデルの概要:
summary(titanic.train)
出力:
Call:
glm(formula = survived ~ pclass + sex + age, family = binomial, data = titanic)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.6452 -0.6641 -0.3679 0.6123 2.5615
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.552261 0.342188 10.381 < 2e-16 ***
pclass2nd -1.170777 0.211559 -5.534 3.13e-08 ***
pclass3rd -2.430672 0.195157 -12.455 < 2e-16 ***
sexmale -2.463377 0.154587 -15.935 < 2e-16 ***
age -0.042235 0.007415 -5.696 1.23e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1686.8 on 1312 degrees of freedom
Residual deviance: 1165.7 on 1308 degrees of freedom
AIC: 1175.7
Number of Fisher Scoring iterations: 5
最初に表示されるのはコールです。これはモデルと指定されたオプションを思い出させるものです。
次に、モデルのフィットの尺度である偏差残差を見る。この出力の部分は、モデルで使用された個々のケースの偏差残差の分布を示します。
出力の次の部分は、係数、標準誤差、z-統計量(時にはWald z-統計量と呼ばれる)、および関連するp値を示しています。
- 定性的変数は「ダミー化」されている。モダリティは参考資料とみなされます。参照モダリティは、式で
I
で変更することができます。 - 4つの予測変数はすべて0.1%レベルで統計的に有意である。
- ロジスティック回帰係数は、予測変数の1単位の増加に対する結果の対数オッズの変化を与える。
- オッズ比 (予測変数の単位増加あたりの生存確率の倍数変化)を見るには、パラメータを累乗します。
- パラメータの信頼区間(CI)を確認するには、
confint
使用しconfint
。
- 定性的変数は「ダミー化」されている。モダリティは参考資料とみなされます。参照モダリティは、式で
係数表の下には、ヌルと偏差の残差を含む適合指標と、モデル性能の比較に使用できる赤池情報基準(AIC)があります。
- 同じデータに最尤法でフィッティングされたモデルを比較すると、AICが小さければ小さいほど適合度が高くなります。
- モデル適合の1つの尺度は、全体モデルの重要性です。このテストでは、予測子を含むモデルが、切片のみを持つモデル(つまり、ヌルモデル)よりもはるかに優れているかどうかを確認します。
オッズ比の例:
exp(coef(titanic.train)[3])
pclass3rd
0.08797765
このモデルでは、第1クラスと比較して、第3クラスの乗客は生存確率の約10分の1を持っています。
パラメータの信頼区間の例:
confint(titanic.train)
Waiting for profiling to be done...
2.5 % 97.5 %
(Intercept) 2.89486872 4.23734280
pclass2nd -1.58986065 -0.75987230
pclass3rd -2.81987935 -2.05419500
sexmale -2.77180962 -2.16528316
age -0.05695894 -0.02786211
全体モデルの意義を計算する例:
テスト統計量は、カレント・モデルとヌル・モデルの間の自由度の差(すなわち、モデル内の予測変数の数)に等しい自由度でカイ二乗分布します。
with(titanic.train, pchisq(null.deviance - deviance, df.null - df.residual
, lower.tail = FALSE))
[1] 1.892539e-111
p値は0に近く、非常に有意なモデルを示しています。