1
たとえば、応答変数が1つ(Y
)、予測子が5つ(X1-X5
)あります。 私は、GLMモデルに合うようにしようと、次のようにモデルに固定X5
との乖離差を計算しています"for"ループ内の固定変数を除外する
ind_var <- names(dat)[substr(names(dat),1,1)=="X"]
results <- data.frame()
for (i in ind_var)
{
glm1 <- glm(as.formula(paste("Y~X5+",i)), family=binomial, data=dat)
dDeviance <- with(glm1,(null.deviance-deviance))
df <- data.frame(ind_var=i, diff=dDeviance)
results <- rbind(results, df)
}
質問:
1)どのようにX5
を除外するためのループがi
2)モデルに固定変数を挿入する方法(ここではX5
です)。上記のようなモデルにX5
を貼り付けると、結果が正しくないことに気付きました。ここでは、モデルをペースト機能でチェックするために手動で行いますが、99 df
の係数が1つしかないことがわかります。私はY~X5+X1
と普通のモデルを信じていますと3係数(迎撃を含む)が必要です。
mod1 <- glm(as.formula(paste("Y~X5+",X1)), family=binomial, data=dat)
mod1
Call: glm(formula = as.formula(paste("Y~X5+", X1)), family = binomial,
data = dat)
Coefficients:
X5
0.02581
Degrees of Freedom: 100 Total (i.e. Null); 99 Residual
Null Deviance: 138.6
Residual Deviance: 138.6 AIC: 140.6
どのような提案も高く評価されます。
これは完全に私には明らかではありません。 'ind_var'は変数名を含む変数ですか?もしそうなら、質問1に答えるために、ベクトルから 'X5'を取り除くことでこれを解決できませんでしたか?質問2については、なぜ間違っているのですか?ここに結果と期待される結果を表示できますか? – Laterow
あなたのコメントのために@Laterowに感謝します。以前の投稿にいくつかの情報を追加しました。 ind_varについて、私は実際に他の変数(固定変数として他のX1/X2/X3/X4)でもこれを繰り返す必要があります。しかし、私が解決策を見つけることができなかったなら、私はそれを手動で削除する必要があります。 – Shima