〜40万の予測変数のそれぞれについて、複数のロジスティック回帰分析を実行しようとしています。各実行の出力を出力テーブルの行/列にキャプチャしたいと思います。
私のデータは 2 つの部分で構成されています。400000 x 189 の double 行列 ( mydatamatrix
) があります。これには、189 人の個人 ( ) で測定された 400000 の予測変数のそれぞれの観測値/データが含まれていますP1
。また、2 つ目の 189 x 20 データ フレーム ( mydataframe
) には、結果変数と別の予測変数 (O1
およびP2
) に加えて、この特定の分析では使用されていない 18 の他の変数が含まれています。
私の回帰モデルはO1~ P1+P2
で、O1
はバイナリです。
次のループが機能するようになりました。
結果の出力ファイルを作成する
output<-data.frame(matrix(nrow=400000, ncol=4))
names(output)=c("Estimate", " Std. Error", " z value", " Pr(>|z|)")
予測子のロジスティック回帰ループを実行i
し、出力を出力ファイルに保存します
for (i in c(1:400000)){
result<-(glm(mydataframe$O1 ~ mydatamatrix[,i] + as.factor(mydataframe$P2),
family=binomial))
row.names(output)<-row.names(mydatamatrix)
output[i,1]<-coef(summary(result))[2,1]
output[i,2]<-coef(summary(result))[2,2]
output[i,3]<-coef(summary(result))[2,3]
output[i,4]<-coef(summary(result))[2,4]
}
ただし、実行時間は膨大です (最初の 20k テストを出力するのに 1 時間以上かかりました)。この分析を実行するためのより効率的な方法はありますか?