2014-01-26 5 views
1

요인의 수준을 포함하지 콕스 위험 모델 다음과 같이 하나에 :R I과 같은 구조로되어 일부 데이터에 콕스 모델을 피팅하고

> test$RUTH.CLASS <- as.factor(test$RUTH.CLASS) 
> summary(test$RUTH.CLASS) 
3 4 5 6 
48 56 35 8 

위대한.

전 모델에 더 많은 변수를 맞게되면 모델

stent.surv <- Surv(test$Primary) 
> cox.ruthclass <- coxph(stent.surv ~ RUTH.CLASS, data=test) 
> 
> summary(cox.ruthclass) 
Call: 
coxph(formula = stent.surv ~ RUTH.CLASS, data = test) 

    n= 147, number of events= 147 

       coef exp(coef) se(coef)  z Pr(>|z|) 
RUTH.CLASS4 0.1599 1.1734 0.1987 0.804 0.42111 
RUTH.CLASS5 0.5848 1.7947 0.2263 2.585 0.00974 ** 
RUTH.CLASS6 0.3624 1.4368 0.3846 0.942 0.34599 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

      exp(coef) exp(-coef) lower .95 upper .95 
RUTH.CLASS4  1.173  0.8522 0.7948  1.732 
RUTH.CLASS5  1.795  0.5572 1.1518  2.796 
RUTH.CLASS6  1.437  0.6960 0.6762  3.053 

Concordance= 0.574 (se = 0.026) 
Rsquare= 0.045 (max possible= 1) 
Likelihood ratio test= 6.71 on 3 df, p=0.08156 
Wald test   = 7.09 on 3 df, p=0.06902 
Score (logrank) test = 7.23 on 3 df, p=0.06478 

> levels(test$RUTH.CLASS) 
[1] "3" "4" "5" "6" 

피팅 후, 비슷한 일이 일어날 :

cox.fit <- coxph(stent.surv ~ RUTH.CLASS + LESION.INDICATION + LESION.TYPE, data=test) 
> 
> summary(cox.fit) 
Call: 
coxph(formula = stent.surv ~ RUTH.CLASS + LESION.INDICATION + 
    LESION.TYPE, data = test) 

    n= 147, number of events= 147 

              coef exp(coef) se(coef)  z Pr(>|z|) 
RUTH.CLASS4       -0.5854 0.5569 1.1852 -0.494 0.6214 
RUTH.CLASS5       -0.1476 0.8627 1.0182 -0.145 0.8847 
RUTH.CLASS6       -0.4509 0.6370 1.0998 -0.410 0.6818 
LESION.INDICATIONEMBOLIC    -0.4611 0.6306 1.5425 -0.299 0.7650 
LESION.INDICATIONISCHEMIA    1.3794 3.9725 1.1541 1.195 0.2320 
LESION.INDICATIONISCHEMIA/CLAUDICATION 0.2546 1.2899 1.0189 0.250 0.8027 
LESION.INDICATIONREST PAIN    0.5302 1.6993 1.1853 0.447 0.6547 
LESION.INDICATIONTISSUE LOSS   0.7793 2.1800 1.0254 0.760 0.4473 
LESION.TYPEOCCLUSION     -0.5886 0.5551 0.4360 -1.350 0.1770 
LESION.TYPESTEN      -0.7895 0.4541 0.4378 -1.803 0.0714 . 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

             exp(coef) exp(-coef) lower .95 upper .95 
RUTH.CLASS4        0.5569  1.7956 0.05456  5.684 
RUTH.CLASS5        0.8627  1.1591 0.11726  6.348 
RUTH.CLASS6        0.6370  1.5698 0.07379  5.499 
LESION.INDICATIONEMBOLIC     0.6306  1.5858 0.03067 12.964 
LESION.INDICATIONISCHEMIA     3.9725  0.2517 0.41374 38.141 
LESION.INDICATIONISCHEMIA/CLAUDICATION 1.2899  0.7752 0.17510  9.503 
LESION.INDICATIONREST PAIN    1.6993  0.5885 0.16645 17.347 
LESION.INDICATIONTISSUE LOSS    2.1800  0.4587 0.29216 16.266 
LESION.TYPEOCCLUSION      0.5551  1.8015 0.23619  1.305 
LESION.TYPESTEN       0.4541  2.2023 0.19250  1.071 

Concordance= 0.619 (se = 0.028) 
Rsquare= 0.137 (max possible= 1) 
Likelihood ratio test= 21.6 on 10 df, p=0.01726 
Wald test   = 22.23 on 10 df, p=0.01398 
Score (logrank) test = 23.46 on 10 df, p=0.009161 

> levels(test$LESION.INDICATION) 
[1] "CLAUDICATION"   "EMBOLIC"    "ISCHEMIA"    "ISCHEMIA/CLAUDICATION" 
[5] "REST PAIN"    "TISSUE LOSS"   
> levels(test$LESION.TYPE) 
[1] ""   "OCCLUSION" "STEN" 

잘린 출력 아래 model.matrix에서 :

> model.matrix(cox.fit) 
    RUTH.CLASS4 RUTH.CLASS5 RUTH.CLASS6 LESION.INDICATIONEMBOLIC LESION.INDICATIONISCHEMIA 
1    0   0   0      0       0 
2    0   1   0      0       0 

우리가 할 수있는 이들 각각의 첫 번째 레벨이 모델에서 제외된다는 것을 알 수 있습니다. 모든 입력은 크게 감사하겠습니다. 나는 LESION.TYPE 변수에서 공백 수준 ""이 포함되지 않았지만 의도적으로 설계된 것이 아니며 NA 또는 이와 비슷한 값을 가져야 함을 확인했습니다.

저는 혼란스럽고 이에 대한 도움을받을 수 있습니다. 감사.

+0

어떻게 계수 변수에 대한 계수를 해석합니까? 그것들은 참조 레벨 (첫 번째 레벨)과 관련이 있습니까? – user20650

+0

참고 : Cox 모델에는 가로 채기가 없습니다. 이는 계산되지 않은 기준 위험에 해당합니다. – user20650

답변

3

모든 모델의 계수는 기본 수준 (대비)을 기반으로합니다. 귀하의 contrasts은 기본 요소로 기본 설정됩니다. 모든 다른 요인 값이 0 (모든 관찰에 대해 요인은 완전하고 상호 배타적 임) 인 경우, 해당 값이 1 일 때 모델이 예측을 반환하기 때문에 삭제 된 값에 대한 계수를 계산할 필요가 없습니다. options에서 contrasts을 변경하여 기본 대비를 변경할 수 있습니다.

options(contrasts=c(unordered="contr.sum", ordered="contr.poly")) 

당신의 계수 (위 있고 기본 무엇을) 특정 치료에 비해되기 위해서는 :

options(contrasts=c(unordered="contr.treatment", ordered="contr.poly")) 

로 계수를 들어

모든 요소의 평균에 비해 될 수 있습니다 당신은 R에 두 가지 유형의 요소가 있음을 볼 수 있습니다 : 정렬되지 않은 (또는 범주 적, 예를 들어, 빨강, 초록, 파랑) 순서가 매겨진 것 (예 : 크게 동의하지 않음, 동의하지 않음, 의견 없음, 동의 함, 동의하는 것)