2016/11/21
2020/05/04
Rによる条件付きロジスティック回帰分析と自作関数
条件付きロジスティックモデルは、ロジスティックモデルを、対応のある2値データへ拡張したものです。そして、R言語のsurvivalというパッケージには、条件付きロジスティック回帰分析を行うための関数、clogit()が入っています。
ここでは、この関数clogit()の使い方を実例を交えて紹介していきます。また、解析結果をcsvファイルへの出力まで行ってくれる自作関数も作りましたので、そちらも是非お使いください。
Rによる通常のロジスティック回帰分析はこちら→Rによるロジスティック回帰分析と自作関数例
※R言語入門のトップページはこちら
clogit()を使った条件付きロジスティック回帰分析のやり方
clogit()関数は、
として、使います。yには目的変数の列、xには説明変数の列を入れてください。説明変数の数だけ引数の中身も長くなっていきます。datには、解析用のデータが入ったデータフレームを入れてあげましょう。
この関数を使うためには、survivalパッケージの読み込みを必ず行いましょう。
library(survival)
これを行わないと、
関数 “clogit” を見つけることができませんでした
というエラーに見舞われます。
条件付きロジスティック回帰分析の自作関数
library(survival)#ライブラリの読み込み
#datは目的変数列,説明変数列,条件列の順。fileには出力ファイル名
match_logi_fun <- function(dat,file){
x_name <- colnames(dat)[2] #説明変数の列名・後で出力
colnames(dat)[2] <- “x”
y_name <- colnames(dat)[1] #目的変数の列名・後で出力
colnames(dat)[1] <- “y”
match_name <- colnames(dat)[3] #条件の列名。後で出力
colnames(dat)[3] <- “match”
result <- clogit(y ~ x + strata(match), data = dat) #条件付きロジスティック回帰の実行
aic <- AIC(result) #AICを抽出
result_sum <- summary(result) #回帰分析の詳細な結果を得る。
result <-cbind(result_sum$coef,result_sum$conf[3],result_sum$conf[4],aic,result_sum$n) #結果をまとめる
colnames(result)[6] <- “lower .95”
colnames(result)[7] <- “upper .95”
colnames(result)[9] <- “N”
rownames(result)[1] <- x_name #出力結果がわかりやすいように列(行)に名前をつける。
names <- t(c(y_name,x_name,match_name))
names <- rbind(c(“目的変数”,“説明変数”,“条件”),names)
write.table(names,file,append=T,quote=F,sep=“,”,row.names=F,col.names=F,fileEncoding=“CP932”)
write.table(matrix(c(“”,colnames(result)),nrow=1),file,append=T,quote=F,sep=“,”,row.names=F,col.names=F,fileEncoding=“CP932”)
write.table(result,file,append=T,quote=F,sep=“,”,row.names=T,col.names=F,fileEncoding=“CP932”)
}
以上の関数に、解析用のデータを体裁を整えて、引数として入れれば、条件付きロジスティック回帰分析が行われます。この関数では、説明変数は1つにしてあります。もし、多変量で条件付きでロジスティックを重回帰させたい場合は、少々書き直して使っていただければと思います。
以下に関数の使用例を載せます。
dat = na.omit(df[,c(45,9,1)]) #元データの45列目・9列目・1列目が目的変数・説明変数・条件。
match_logi_fun(dat,”条件付きロジスティック回帰分析結果.csv”)
その結果、このように出力されます。↓
条件付きロジスティック回帰分析では、条件付きオッズ比が推定されます。
※R言語入門のトップページはこちら
最新投稿記事
-
AIプロジェクトの企画と失敗しない進め方を解説 2021年1月19日
-
AVILEN人材育成コース受講体験談:山田裕之さん「E資格の”その先”を目指して」 2021年1月8日
-
AI導入とは?RPAとの関係、プロセス、事例、メリット、費用を詳細に解説 2020年12月7日
-
注目のAI開発企業11社!支援領域や提供方法など検証! 2020年10月28日
-
AI人材を育成できる研修プログラムを一挙紹介! 2020年10月20日
-
【2021年版】期待のAI資格11選!就職・転職にも使える! 2020年10月18日
-
JDLAとは?G検定、E資格の認定プログラム、合格者の会など紹介! 2020年10月14日
-
G検定(2020#3)受験申し込み開始、11月7日(土)実施-JDLA 2020年10月1日
-
【独占】コロナ禍で人材登録急増、アノテーション単月売上高は4倍超-パソナJOB HUB 2020年10月1日
-
E資格を転職に活用!評判とデータを徹底調査! 2020年9月29日
週間ランキング
【2021年版】コスパ重視のG検定対策!おすすめの本・講座・教材を一挙紹介! 2020年6月6日
G検定に短期間・独学で合格した勉強法を解説! 2020年8月3日
【2021年版】期待のAI資格11選!就職・転職にも使える! 2020年10月18日
G検定は難しい?難易度・合格ライン・問題を徹底解説! 2020年6月19日
G検定に落ちた人、合格した人。勉強法の違いはどこにある? 2020年6月25日
注目のAI開発企業11社!支援領域や提供方法など検証! 2020年10月28日
最弱オセロを初めて攻略した天才オセロ高校生。負け方を解説! 2020年7月31日
【2021年版】E資格とは?大注目のディープラーニングの資格を解説! 2020年9月29日
E資格の難易度を、合格率と問題から徹底分析! 2020年8月11日
E資格を転職に活用!評判とデータを徹底調査! 2020年9月29日
