Pythonで統計解析を行っているのですが、statsmodelsのglmでロジスティック回帰を行い。
結果を確認しています。以下はソースと出力になります。ここでbic(ベイズ情報量基準)の
数値がおかしいのですが、なにか特殊な計算をしていうのか、バグなのかPythonでの統計にくわしい方おしえてください。
ベイズ情報量基準は下記式となり、
bic=-2Ln(L)+kLn(n)
Log-likelihoodは対数尤度でLn(L)の部分ですね。、nは標本数ですからNo. Observations:にあたります。kは説明変数の数ですのでDf Model:がそれです。仮に切片が含まれているとすれば+1するといいとおもいます。
そうすると840.78,840.58くらいになるとおもうのですが?
aic(赤池の情報基準)はあっています。これまでaicとbicがかけ離れている経験がないので
奇異にみえます。
python
1import pandas as pd 2import seaborn as sns 3titanic = sns.load_dataset('titanic') 4titanic.head() 5 6import statsmodels.formula.api as smf 7import statsmodels.api as sm 8model = smf.glm(formula="survived ~ sex +pclass ", data=titanic, family= sm.families.Binomial() ) 9res = model.fit() #学習 10 11print(res.summary2()) 12
出力
Results: Generalized linear model =============================================================== Model: GLM AIC: 833.1956 Link Function: logit BIC: -5204.4062 Dependent Variable: survived Log-Likelihood: -413.60 Date: 2018-08-26 22:19 LL-Null: -593.33 No. Observations: 891 Deviance: 827.20 Df Model: 2 Pearson chi2: 911. Df Residuals: 888 Scale: 1.0000 Method: IRLS --------------------------------------------------------------- Coef. Std.Err. z P>|z| [0.025 0.975] --------------------------------------------------------------- Intercept 3.2946 0.2974 11.0769 0.0000 2.7117 3.8776 sex[T.male] -2.6434 0.1838 -14.3799 0.0000 -3.0037 -2.2831 pclass -0.9606 0.1061 -9.0572 0.0000 -1.1684 -0.7527 ===============================================================
あなたの回答
tips
プレビュー