Cgdmm
Cgdmm

Reputation: 63

In cox regression categorical levels not shown in my output

In my data, Hemoglobin_group is a categorical variable with 6 levels. When I run the below code, I can't see Hemoglobin_group levels in the output. How can I solve this problem?

fit <- coxph(Surv(Time,Status)~Hemoglobin_group, data)
fit

My output:

                      coef   exp(coef) se(coef)  z        p
    Hemoglobin_group -0.06585  0.93627  0.01874 -3.514 0.000441

Upvotes: 0

Views: 473

Answers (2)

Cgdmm
Cgdmm

Reputation: 63

str(data)
tibble [2,021 x 21] (S3: tbl_df/tbl/data.frame)
$ status             : num [1:2021] 1 1 1 1 1 1 0 0 0 0 ...
$ id                 : num [1:2021] 1 1 1 1 1 1 2 2 2 2 ...
$ Time               : num [1:2021] 20.3 20.3 20.3 20.3 20.3 ...
$ t1                 : num [1:2021] 0 1 2 3 4 5 0 1 2 3 ...
$ t2                 : num [1:2021] 1 2 3 4 5 ...
$ sex_string         : chr [1:2021] "MALE" "MALE" "MALE" "MALE"...
$ sex                : num [1:2021] 1 1 1 1 1 1 1 1 1 1 ...
$ age                : num [1:2021] 89 89 89 89 89 89 77 77 77 77 ...
$ hemoglobin         : num [1:2021] 9.71 10.22 11.3 11.8 11.2 ...
$ Diabet             : num [1:2021] 1 1 1 1 1 1 2 2 2 2 ...
$ Hemoglobin_group   : num [1:2021] 4 4 4 4 4 4 5 5 5 5 ...
$ Kreatinin          : num [1:2021] 7.19 7.19 7.19 7.19 7.19 ...
$ fosfor             : num [1:2021] 4.14 4.14 4.14 4.14 4.14 ...
$ Kalsiyum           : num [1:2021] 8.5 8.5 8.5 8.5 8.5 ...
$ CRP                : num [1:2021] 1.33 1.33 1.33 1.33 1.33 ...
$ Albumin            : num [1:2021] 4.19 4.19 4.19 4.19 4.19 ...
$ Ferritin           : num [1:2021] 428 428 428 428 428 ...
$ months             : num [1:2021] 1 2 3 4 5 6 1 2 3 4 ...

It looks like when I write str (data). I thought I was transforming into a factor by doing the following codes in my data. I guess I couldn't transform. I did not understand?

The codes I wrote to convert to factor were as follows

sex<-as.factor(sex)
is.factor(sex)

Diabet<-as.factor(Diabet)
is.factor(Diabet)


Status<-as.factor(Status)
is.factor(Status)

months<-as.factor(months)
is.factor(months)

Hemoglobin_group<-as.factor(Hemoglobin_group)
is.factor(Hemoglobin_group)
                         

When ı run this code, R console looks like:

> sex<-as.factor(sex)
> is.factor(sex)
 [1] TRUE
> 
> Diabet<-as.factor(Diabet)
> is.factor(Diabet)
[1] TRUE
> 
> 
> Status<-as.factor(Status)
> is.factor(Status)
[1] TRUE
> 
> months<-as.factor(months)
> is.factor(months)
[1] TRUE
> 
> Hemoglobin_group<-as.factor(Hemoglobin_group)
> is.factor(Hemoglobin_group)
[1] TRUE
                    

In this case, don't the categorical variables in my data turn into factors?

Upvotes: 1

Regis
Regis

Reputation: 148

Your variable Hemoglobin_group is probably considered as a numeric value. Try:

Hemoglobin_groupF <- factor(Hemoglobin_group)
fit <- coxph(Surv(Time,Status) ~ Hemoglobin_groupF, data)
fit

The reference group will the first factor. You can easily change your reference factor with the function relevel

Upvotes: 0

Related Questions