No.08134 多項ロジスティック回帰分析  【波音】 2008/11/02(Sun) 18:23

多項ロジットモデルをRでやろうとしているのですが,http://www.ats.ucla.edu/stat/R/dae/mlogit.htmを参考にしてなんとかRでの操作方法は分かったのですが,推定された定数項(Intercept)と係数の自由度がよく分かりません。

とりあえずシラミ潰し的に探そうにも,例題を見つけることさえままならないので正直いって困っています。

なんとかそれらしきもの(http://support.sas.com/techsup/technote/ts722g.pdf)を見つけて,この資料のp472に載っている例データをRで解析してみたのですが,やっぱり自由度が分かりません。

> dat # データは資料p468にあるものを拝借
V1 V2 V3 V4 V5
1 10.0 4.5 10.5 32 Plane
2 5.5 4.0 7.5 13 Auto
3 4.5 6.0 5.5 41 Transit
4 3.5 2.0 5.0 41 Transit
5 1.5 4.5 4.0 47 Auto
(中略)

> Age <- dat[,4]
> Chosen <- dat[,5]
> install.packages("VGAM")
> library(VGAM)
> result <- vglm(Chosen ~ Age, multinomial)
> summary(result)

Call:
vglm(formula = Chosen ~ Age, family = multinomial)

Pearson Residuals:
Min 1Q Median 3Q Max
log(mu[,1]/mu[,3]) -1.3414 -0.46045 -0.37807 1.03520 1.7364
log(mu[,2]/mu[,3]) -1.5309 -0.55057 -0.50957 0.93163 1.2531

Coefficients:
Value Std. Error t value
(Intercept):1 3.044945 2.426404 1.25492
(Intercept):2 2.721207 2.292478 1.18702
Age:1 -0.070967 0.065159 -1.08913
Age:2 -0.050003 0.059568 -0.83943

Number of linear predictors: 2

Names of linear predictors: log(mu[,1]/mu[,3]), log(mu[,2]/mu[,3])

Dispersion Parameter for multinomial family: 1

Residual Deviance: 42.1796 on 38 degrees of freedom

Log-likelihood: -21.0898 on 38 degrees of freedom

Number of Iterations: 4

資料ではSASを使っていて(SASのサポートページだから当たり前ですが),検定統計量にカイ自乗値を用いているので直接の比較にはならないのですが,,,

普 通に考えたらケース数(データ数)から推定したパラメータ数を引いたものが自由度になるわけですが,今回の場合だとケース数は21,推定したパラメータ数 は???と,そもそも推定したパラメータ数がちょっとあやふやです。結局,6個のパラメータを推定したことになるのでしょうか?

資料 p472の出力結果の部分をみると,Intercept1のカイ自乗値が1.57で,それに対するp値が0.2096となっていますが,カイ自乗値が 1.57でp値が0.29とかになる場合の自由度は明らかに21-6=15辺りの値にはならないと思うのですが,,,(こうなるのだとしたら自由度は2と か3とかいう小さい値になるはず)

No.08135 Re: 多項ロジスティック回帰分析  【青木繁伸】 2008/11/02(Sun) 18:43

R の coxph を使っても(SASと同じように)分析できますよ。

ところで,SAS がカイ二乗分布を使っているのは(正確な理由は分かりませんが),パラメータの検定に正規近似を使っているからです(Rのcoxphはzを使っていま す)。カイ二乗値の平方根をとったものが標準正規得点(z値)で,t分布の自由度が無限大になったときに対応するわけですね。実際,カイ二乗値の自由度を 1としてP値を求めれば丸めの誤差の範囲で表示された値になると思います。t統計量は正確な値を与えることはたしかですけど。(自由度が幾つになるのかは ちょっと,今分かりません。答えになっていませんけど。)

No.08138 Re: 多項ロジスティック回帰分析  【波音】 2008/11/03(Mon) 00:25

回答ありがとうございます。

たしかに,Coxの比例ハザードモデルを扱う関数coxph()でも同じように分析できました(形どおりやっただけなので,まだ中身を理解しきっていませんが,,,)。

> カイ二乗値の平方根をとったものが標準正規得点(z値)で,t分布の自由度が無限大になったときに対応するわけですね。

なるほど,そういうことですか。

> カイ二乗値の自由度を1としてP値を求めれば丸めの誤差の範囲で表示された値になると思います。

ご指摘のとおり,自由度を1として計算したらほぼp値が一致しました。しかし,まだ自由度についての問題が解決していないので,もっと資料を探してみます。

と いうか,いろんなモデル(と,それに伴う連結関数)がありすぎて数学的な理屈を理解し,Rの関数の中身を把握したりで,いったい,いつになったら一般化線 形モデルを使いこなせるようになるのか,,,(若干,ブラックボックス化してもいいのかとさえ思えてきてしまいそうです^^;)

● 「統計学関連なんでもあり」の過去ログ--- 042 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る