안녕하세요,
어떠한 질병의 발생에 대한 risk factor를 연구하고 있는데,
A라는 약물을 사용하면 높은 확률로 발생하고
사용하지 않으면 절대 발생하지 않습니다.
cross table 을 그려보면 아래와 같은데,
질병 (+) | 질병 (-) | |
A약물사용 (+) | 49 | 4 |
A약물사용 (-) | 0 | 10 |
이런 경우에 logstic regression 을 돌려보면 유의하게 나올 것 같은데
한쪽으로 결과가 쏠려있어서인지? p value 도 1에 가깝고 OR 도 이상하게 나옵니다
이를 보정하면서 logistic regression 할 수 있는 방법이 있을까요?
감사합니다.
Comment 4
-
cardiomoon
2022.02.20 23:01
-
papahong
2022.02.21 13:22
교수님 감사합니다. 늘 많은 도움 받고 있습니다.
파일을 첨부드립니다.
Disease =1 에 대한 risk factor 를 logistic regression 하는 것이고
문제가 되는 변수는 Drug 변수입니다 (몇개 결측값이 있습니다)
-
cardiomoon
2022.02.21 15:14
약물을 사용하지 않았을때 질병이 0명이어서 문제가 생기는 것 같습니다. 실제로 첫번쨰 환자를 약을 안먹은 것으로 바꾸었더니 아주 유의하게 나왔습니다. 이런 경우는 로지스틱 회귀 말고 카이제곱 검정 결과을 제시하시면 될 것 같습니다.
> disease1=disease
> disease1[1,3]=0
> table(disease1$Disease,disease1$Drug)
0 1
0 10 4
1 1 48
> fit1=glm(Disease~Drug,data=disease1,family="binomial")
> summary(fit1)
Call:
glm(formula = Disease ~ Drug, family = "binomial", data = disease1)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.2649 0.4001 0.4001 0.4001 2.1899
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.303 1.049 -2.195 0.0281 *
Drug 4.787 1.171 4.089 4.33e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 66.743 on 62 degrees of freedom
Residual deviance: 34.906 on 61 degrees of freedom
(결측으로 인하여 4개의 관측치가 삭제되었습니다.)
AIC: 38.906
Number of Fisher Scoring iterations: 5
-
papahong
2022.02.21 22:22
오 정말 감사드립니다 교수님!!
카이제곱으로 제시하는 방법으로 진행하겠습니다 감사합니다
혹시 한가지 더 여쭙고 싶은데요,
logistic 에서 event 숫자가 너무 적을 경우에는
firth bias correction 이나 penalized logstic 같은 방법을 해 볼 수 있다고 얼핏 들었었는데
이렇게 event 가 아니라 독립변수가 이상하게 편향될 경우에
correction 하며 logistic regression 을 해볼 수 있는 통계적 방법은 혹시 있을까요? ㅠㅠ
감사합니다
당연히 유의하게 나올 것 같습니다. 뭔가 입력을 잘못하시지 않으셨나요? raw data를 올려봐주시면 한번 보겠습니다.