web-dev-qa-db-ja.com

ロジスティック回帰-Rで参照レベルを定義する

私はこれを理解しようと気が狂います。 Rで、バイナリロジスティック回帰で使用する参照レベルを定義するにはどうすればよいですか?多項ロジスティック回帰はどうですか?現在、私のコードは次のとおりです。

logistic.train.model3 <- glm(class~ x+y+z,
                         family=binomial(link=logit), data=auth, na.action = na.exclude)

私の応答変数は「YES」と「NO」です。誰かが「はい」と応答する確率を予測したいと思います。

変数を0/1に再コーディングしたくありません。モデルに「YES」を予測するように指示する方法はありますか?

ご協力ありがとうございました。

12
blast00

クラスが因子として保存されていると仮定して、relevel()関数を使用します。

auth$class <- relevel(auth$class, ref = "YES")
16
smrt1119

auth$class <- relevel(auth$class, ref = "YES")を使用する場合、実際には「NO」を予測していることに注意してください。

「YES」を予測するには、参照レベルは「NO」である必要があります。したがって、auth$class <- relevel(auth$class, ref = "NO")を使用する必要があります。

ほとんどの場合、結果変数は01のベクトルであり、人々は1を予測したいので、これはよくある間違いです。

しかし、そのようなベクトルを因子変数と見なす場合、参照レベルは0(以下を参照)であるため、人々は1を効果的に予測できます。同様に、「はい」を予測できるように、参照レベルは「いいえ」である必要があります。

set.seed(1234)
x1 <- sample(c(0, 1), 50, replace = TRUE)
x2 <- factor(x1)
str(x2)
#Factor w/ 2 levels "0","1": 1 2 2 2 2 2 1 1 2 2 ...You can see that reference level is 0
8
nghauran