로지스틱회귀분석
data=read.csv("Downloads/Coding_for_upload.csv",stringsAsFactors = FALSE)
fit=glm(Recalcitrant~Age+AT_PN,family=binomial,data=data)
summary(fit)
Call:
glm(formula = Recalcitrant ~ Age + AT_PN, family = binomial,
data = data)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.6841 -0.4841 -0.3443 -0.3014 2.7659
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.12392 0.34158 -9.145 < 2e-16 ***
Age 0.05467 0.01120 4.882 1.05e-06 ***
AT_PN -1.33523 0.74500 -1.792 0.0731 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 199.26 on 280 degrees of freedom
Residual deviance: 173.00 on 278 degrees of freedom
AIC: 179
Number of Fisher Scoring iterations: 5
회귀계수의 신뢰구간
confint(fit)
Waiting for profiling to be done...
2.5 % 97.5 %
(Intercept) -3.84284465 -2.49633775
Age 0.03342183 0.07768483
AT_PN -2.99254309 -0.01690978
오즈비
confint(fit)
Waiting for profiling to be done...
2.5 % 97.5 %
(Intercept) -3.84284465 -2.49633775
Age 0.03342183 0.07768483
AT_PN -2.99254309 -0.01690978
exp(confint(fit))
Waiting for profiling to be done...
2.5 % 97.5 %
(Intercept) 0.02143255 0.08238617
Age 1.03398662 1.08078198
AT_PN 0.05015971 0.98323239
웹 R의 방법
require(moonBook)
Loading required package: moonBook
extractOR(fit)
OR lcl ucl p
(Intercept) 0.04 0.02 0.08 0.0000
Age 1.06 1.03 1.08 0.0000
AT_PN 0.26 0.05 0.98 0.0731
질문 1
오즈비의 95% 신뢰구간이 1을 포함하지 않으므로 p 값이 0.05 이하여야 하지 않을 까요?
질문 2
여기서 문제는 회귀계수의 신뢰구간이 손으로 계산한것과 다르다는 것입니다. 왜 그럴까요? AT_PN의 경우 회귀계수 -1.33523 이고 표준오차가 0.74500 이므로 다음과 같습니다.
fit$coef[3]+c(-1,1)*qt(0.975,df=278)*summary(fit)$coef[3,2]
[1] -2.801793 0.131329
이 값은 다음과 차이가 많이 나는데 왜 그럴까요?
confint(fit)
Waiting for profiling to be done...
2.5 % 97.5 %
(Intercept) -3.84284465 -2.49633775
Age 0.03342183 0.07768483
AT_PN -2.99254309 -0.01690978
첫댓글 다른 프로그램으로 해보니 R의 신뢰구간이 잘못 계산되었습니다. AT_PN 의 신뢰구간이 약 (0.06, 1.13)이 되어야 할텐데요.
답을 찾았습니다. R의 confint 함수는 가능도비 검정을 바탕으로 신뢰구간을 구하기 때문입니다. 즉 p-value 계산할때는 왈드 검정을 하고, 신뢰구간은 가능도비 검정으로 구한 것입니다. 여기서 차이가 발생합니다. 다음 글을 참조하세요
http://rpubs.com/KOSUNGWOO/308829
한가지 알고 갑니다. 감사합니다.
https://stats.stackexchange.com/questions/144603/why-do-my-p-values-differ-between-logistic-regression-output-chi-squared-test
위 글이 답이 될수 있지 않을까 합니다.
신뢰구간을 구하는 방식과 검정통계량을 어떤것을 선택하느냐에 따라 조금씩 다른 값이 나올수 있고,
카이제곱검정을 사용하는 왈드 통계량은 점근적 방법을 쓰기 때문에
충분히 큰 표본수가 아니면 조금씩은 다른값이 나올수 있다..뭐 이런 내용으로 보이네요..