★ R で多重ロジスティック ★

1281. R で多重ロジスティック ランス 2003/12/10 (水) 02:53
├1302. Re: R で多重ロジスティック sb812109 2003/12/10 (水) 22:29
├1284. Re: R で多重ロジスティック yy 2003/12/10 (水) 11:36
│└1289. Re^2: R で多重ロジスティック 青木繁伸 2003/12/10 (水) 12:09
├1283. Re: R で多重ロジスティック 青木繁伸 2003/12/10 (水) 11:29
│└1303. Re^2: R で多重ロジスティック ランス 2003/12/10 (水) 22:39
└1282. Re: R で多重ロジスティック detour 2003/12/10 (水) 09:28


1281. R で多重ロジスティック ランス  2003/12/10 (水) 02:53
多重ロジスティック回帰分析をRで行いたいのですが,具体的なプログラムをどうしていいのか,分かりません。

目的変数は1/0で,説明変数は連続尺度と名義尺度が複数存在しています。最終的には変数選択を行い,モデルを選択したいと思っています。

以前のRのバージョンでは,"polymars"というパッケージによって利用できたという過去ログを拝見しましたが,現在のR(1.8.1)には,見つけられませんでした。

Rに関して,かなり初心者ですので,何とぞご容赦下さい。

     [このページのトップへ]


1302. Re: R で多重ロジスティック sb812109  2003/12/10 (水) 22:29
> 多重ロジスティック回帰分析をRで行いたいのですが,具体的なプログラムをどうしていいのか,分かりません。
>

glm=:Generalized Linear Model: 一般線形モデルを使っています。

(1)目的変数が0/1の場合(ロジスティック回帰)
    glm(outcome~age+treatment, binomial(link="logit"))
link関数がlogit変換であり,誤差項は二項分布をする。
    
(2)目的変数が連続量の場合(線形回帰)
glm(outcome~age+treatment, gaussian(link="identity"))
link関数はidentity, つまり変換の必要はない。
    誤差項は,gaussian, つまり正規分布する。
    
(3)目的変数が0,1,2,4.,,,の計数データの場合(対数線形モデル,ポアソンモデル)
glm(outcome~age+treatment, poisson(link="log"))
link関数は,log, つまり対数変換
誤差項は,poisson, つまりポアソン分布


   重回帰==多変量線形回帰
   多重ロジスティック回帰==多変量ロジスティック回帰では?

     [このページのトップへ]


1284. Re: R で多重ロジスティック yy  2003/12/10 (水) 11:36
多重ロジスティック回帰分析 (実は, 正しくは何と呼ぶのか分からないのですが... 目的変数が 1/0 で, 説明変数が複数存在する場合のロジスティック回帰分析.英語では, multiple logistic regression あるいはmultinomial log-linear でしょうか?) を R で実行するには, VR bundle に入っている nnet ライブラリーの multinom 関数を使うと良いそうです.

R に VR bundle がまだインストールされていない場合は,
[Linux/Unix の場合は]
1. (たとえば) 下記サイトから VR bundle のアーカイヴを入手して
http://cran.r-project.org/contrib/main/VR_7.1-13.tar.gz
2. 下記のようなコマンドでインストールします:
R CMD INSTALL (パス)/VR_7.1-13.tar.gz
[Windows の場合は]
1. (たとえば) 下記サイトから VR bundle のアーカイヴを入手して
http://cran.r-project.org/bin/windows/contrib/1.8/VR_7.1-11.zip
2. R の install.packages コマンドを用いてインストールすることができます.

     [このページのトップへ]


1289. Re^2: R で多重ロジスティック 青木繁伸  2003/12/10 (水) 12:09
フォローありがとうございます。


この分析手法の呼び方ですが,英語でも(R help メーリングリスト)かなり混乱しているようです。

外的基準変数が二値変数の場合は,独立変数が複数なら多重ロジスティック回帰と呼ぶべきだと思います。「多重」は「重回帰」との関連でいえばたんに「重」の方がよく,「重ロジスティック回帰」とするのがいいかもしれません。重ロジスティック回帰に対するのは,独立変数が1個の場合の「(単)ロジスティック回帰」で,これも,重回帰の1変量版が「(単)回帰」であるのと対応していると思います。
英語では,multiple linear regression に対応して multiple logistic regression となるべきでしょう。

外的基準が複数の値をとる場合は,多項ロジスティック回帰で,英語では multinomial logistic regressionとなるべきでしょう。さらに,独立変数が複数であることを明示するなら,multinomial multiple logigstic regression となるのではないかと思いますが,さすがに重複感があるので multiple が略されるのではないかと。

いかがでしょう?

     [このページのトップへ]


1283. Re: R で多重ロジスティック 青木繁伸  2003/12/10 (水) 11:29
多項ロジスティック回帰ではなくて,多重ロジスティック回帰ですね。

brlr というパッケージを使えばいいのではないかと思います(よくわかっていない)。

> install.from.file(binary=TRUE)
    package successfully installed
> package.manager()
loading package: brlr 
> data(lizards)
> lizards
   grahami opalinus height diameter light   time
1       20        2   <5ft    <=2in sunny  early
2        8        1   <5ft    <=2in sunny midday
3        4        4   <5ft    <=2in sunny   late
    中略
22      21        5  >=5ft     >2in shady midday
23       4        4  >=5ft     >2in shady   late
> glm(cbind(grahami, opalinus) ~ height+diameter+light+time, family=binomial, data=lizards)

Call:  glm(formula = cbind(grahami, opalinus) ~ height + diameter +
     light + time, family = binomial, data = lizards) 

Coefficients:
 (Intercept)   height>=5ft  diameter>2in    lightshady    timemidday  
      1.9447        1.1300       -0.7626       -0.8473        0.2271  
    timelate  
     -0.7368  

Degrees of Freedom: 22 Total (i.e. Null);  17 Residual
Null Deviance:        70.1 
Residual Deviance: 14.2     AIC: 83.03 
> brlr(cbind(grahami, opalinus)~ height+diameter+light+time, data=lizards)
Call:  brlr(formula = cbind(grahami, opalinus) ~ height + diameter + 
    light + time, data = lizards)

Coefficients:
 (Intercept)  height>=5ft diameter>2in   lightshady   timemidday     timelate 
      1.9017       1.1065      -0.7536      -0.8176       0.2280      -0.7273 

Deviance: 14.2464 
Penalized deviance: -4.0065 
Residual df: 17 

ライブラリのインストールなど(最初の2つのコマンド)は,メニューバーから行っています。
Macintoshでしたら,
http://aoki2.si.gunma-u.ac.jp/R/begin.html
の最後の方に簡単に説明しておきました。

     [このページのトップへ]


1303. Re^2: R で多重ロジスティック ランス  2003/12/10 (水) 22:39
みなさま,ご回答ありがとうございます。

私の場合は厳密にも,多重ロジスティック回帰であるようなので,教えていただいた"brlr"というパッケージをインストールして,解析してみました。
とりあえず,例の"lizards"で回帰させることができたので,自分のデータで試してみました。すると,glm(family=binomial)では計算してくれましたが,brlrでは,なぜか計算せずに,
"Error in names(y) : Object "denom.adj" not found"
と表示されました。なにが違うんでしょうか?変数の型は,上記の通りです。

それと,この方法では,尤度比検定によるモデルの当てはまりぐあいのp値や,それぞれの効果別の尤度比検定がされていないようですが,何か他に方法があるのでしょうか?summary()を使っても,その辺りが表示されませんでした。モデルを選択する上で重要になると思いますので。

余談ですが,brlrの例になっているトカゲのデータは1/0データではないですよね?これは,"cbind"によってどのような変換がされているのでしょうか?

分からないことだらけで,すみません。

> logistic解析や多重logistic解析について特徴など教えて頂ければ幸いです。

これに関しては,詳しい説明が下記にあります。
http://aoki2.si.gunma-u.ac.jp/lecture/Survival/mul-log.html
医療関係において,生存率や死亡率を予測したり,病気の危険因子を検討するときに,頻繁に使われているようです。

     [このページのトップへ]


1282. Re: R で多重ロジスティック detour  2003/12/10 (水) 09:28
> 以前のRのバージョンでは,"polymars"というパッケージによって利用できたという過去ログを拝見しましたが,現在のR(1.8.1)には,見つけられませんでした。

googleでpolymars site:r-project.orgとすると,

http://www.r-project.org/nocvs/mail/r-help/2002/7918.html

というのがでました。すでにご存知かもしれませんが。これによると,archive for old packagesにあるらしいです。

今のCRANにあるpolsplineというのは無関係なのでしょうか。
多重logistic解析について何も分かりませんが何か参考になれば。

logistic解析や多重logistic解析について特徴など教えて頂ければ幸いです。

     [このページのトップへ]


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