이것은 사소한 질문 일 수 있지만 답변을 어디서 찾을 수 있는지 모르겠습니다. glm()
R에서 로지스틱 회귀를 사용할 때 반응 변수 Y
에 요인 값이 1 또는 2 인 경우의 결과 glm()
가 logit(P(Y=1))
또는 에 해당 logit(P(Y=2))
합니까? 어떤 경우는 Y
논리 값이 TRUE
또는 FALSE
?
왜 직접 테스트하지 않습니까?
output_bool <- c(rep(c(TRUE, FALSE), c(25, 75)), rep(c(TRUE, FALSE), c(75, 25)))
output_num <- c(rep(c(2, 1), c(25, 75)), rep(c(2, 1), c(75, 25)))
output_fact <- factor(output_num)
var <- rep(c("unlikely", "likely"), each = 100)
glm(output_bool ~ var, binomial)
#>
#> Call: glm(formula = output_bool ~ var, family = binomial)
#>
#> Coefficients:
#> (Intercept) varunlikely
#> 1.099 -2.197
#>
#> Degrees of Freedom: 199 Total (i.e. Null); 198 Residual
#> Null Deviance: 277.3
#> Residual Deviance: 224.9 AIC: 228.9
glm(output_num ~ var, binomial)
#> Error in eval(family$initialize): y values must be 0 <= y <= 1
glm(output_fact ~ var, binomial)
#>
#> Call: glm(formula = output_fact ~ var, family = binomial)
#>
#> Coefficients:
#> (Intercept) varunlikely
#> 1.099 -2.197
#>
#> Degrees of Freedom: 199 Total (i.e. Null); 198 Residual
#> Null Deviance: 277.3
#> Residual Deviance: 224.9 AIC: 228.9
따라서 TRUE와 FALSE를 사용하면 정답을 얻고 1과 2를 숫자로 사용하면 오류가 발생하며 1과 2를 두 수준의 요인으로 사용하면 TRUE 값이 더 높은 요인 수준을 갖는 경우 올바른 결과를 얻습니다. 거짓보다. 그러나 우리는 우리의 요소들이 어떻게 정렬되는지에주의해야합니다. 그렇지 않으면 잘못된 결과를 얻게 될 것입니다.
output_fact <- factor(output_fact, levels = c("2", "1"))
glm(output_fact ~ var, binomial)
#>
#> Call: glm(formula = output_fact ~ var, family = binomial)
#>
#> Coefficients:
#> (Intercept) varunlikely
#> -1.099 2.197
#>
#> Degrees of Freedom: 199 Total (i.e. Null); 198 Residual
#> Null Deviance: 277.3
#> Residual Deviance: 224.9 AIC: 228.9
(절편과 계수의 부호가 뒤집혀 있음에 유의하십시오)
reprex 패키지 (v0.3.0)에 의해 2020-06-21에 생성됨
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다