2017-10-18 20 views
1

私は、既に回帰されたペアを除いて、私のデータセットの各変数のペアでロジスティック回帰を実行したいと思います。すべての変数は2項である。出力には、テスト済みのペアとテスト統計が含まれている必要があります。私はそれを使用する必要がある別のデータセットを持っているので、私はバイナリである変数のさまざまな数を含む別のデータセットで動作するスクリプトを書こうとしています。ロジスティック回帰ダブルループR

サンプルデータセットには、Var1という6つの変数が含まれています.Var6にはそれぞれ50個の観測値が含まれています。 VAR3にVar6、VAR2:

Var1 = c(rbinom(50,1,0.5)) 
Var2 = c(rbinom(50,1,0.25)) 
Var3 = c(rbinom(50,1,0.6)) 
Var4 = c(rbinom(50,1,0.2)) 
Var5 = c(rbinom(50,1,0.3)) 
Var6 = c(rbinom(50,1,0.8)) 

dt = data.table(Var1, Var2, Var3, Var4, Var5, Var6) 
head(dt) 

    Var1 Var2 Var3 Var4 Var5 Var6 
1 1 0 1 1 0 1 
2 1 0 0 0 0 1 
3 0 0 1 0 0 1 
4 1 0 1 0 1 0 
5 1 0 1 1 0 1 
6 0 1 1 1 0 0 

だから私は、VAR2にVAR1を退行したいVar6など出力テーブルはDependent_var、Independent_var、見積もり、統計、p_valueのを含める必要があります。

私は、出力テーブルを作った:

n = ncol(dt)  
output <- data.table(matrix(nrow=(n*(n+1))/2, ncol=5)) 
names(output) = c("Dependent_var", "Independent_var", "Estimate", "Stat", "P_value") 
head(output) 

Dependent_var Independent_var Estimate Stat P_value 
1:   NA    NA  NA   NA  NA 
2:   NA    NA  NA   NA  NA 
3:   NA    NA  NA   NA  NA 
4:   NA    NA  NA   NA  NA 
5:   NA    NA  NA   NA  NA 
6:   NA    NA  NA   NA  NA 

は今、私はどのようにそれらのすべての上に、すべてのループを持つループの変数をするかわからない...そして正しく出力テーブルを埋めます。 ..どんな助けも大変ありがとう!

my_func <- function(x) { 
    for (i in 1:ncol(x)) { 
    fit <- glm(x[, i] ~ ., data = x, family = binomial(link = "logit")) 
    print(summary(fit)) 
    } 
} 

パラメータxがデータフレームである:

答えて

1

私はそれが助けかどうかを確認し、簡単な手順をスケッチしています。

+0

すぐにお返事ありがとう@jsb! – Panda

+0

私は何か間違ったことをしているようです...だから、私はdtをデータフレームに変換し、ループを実行しようとしました。何のデータも得られないのですが、どうすればそれをくすぐることができますか? p.s.申し訳ありませんが、コメントセクションで適切に書式設定されたコードを取得できないようです。 'dt < - data.frame(dt) my_func Panda

関連する問題