Logisti c Модель регрессии не отображается на графике () - PullRequest
1 голос
/ 11 февраля 2020

Я пытаюсь создать график, представляющий логистику c регрессии двоичных данных (клинические признаки) по отношению к непрерывному предиктору (номер копии журнала). Я могу сгенерировать модель с помощью glm () без проблем, но у меня возникла проблема с использованием функции lines () для фактического построения представления регрессии. Вот как выглядят мои данные.

    df.min <- structure(list(clinical.signs = structure(c(1L, 1L, 1L, 1L, 1L, 
                                                          2L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 
                                                          1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 
                                                          1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 
                                                          2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 
                                                          1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 
                                                          1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 
                                                          2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("0", "1"), class = "factor"), 
                             log.copy.num = c(0, 5.43372200355424, 0, 0, 0, 0, 0, 4.18965474202643, 
                                              3.42751468997953, 0, 0, 0, 0, 0, 0.824175442966349, 0, 0, 
                                              0, 0, 0, 2.97552956623647, 1.91692261218206, 1.43270073393405, 
                                              0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.13179677201376, 0, 
                                              0, 0, 3.53805656437935, 0, 0, 0, 0, 0, 0, 0, 4.26127043353808, 
                                              2.54160199346455, 1.15057202759882, 4.88280192258637, 0, 
                                              0, 0, 0, 0, 3.62434093297637, 0, 0, 0, 0, 0, 0, 3.45946628978613, 
                                              0, 0, 0, 7.40913644392013, 0, 0, 0, 0, 0, 0, 0, 3.35689712276558, 
                                              0, 0, 0, 0, 4.25518708733893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                                              3.15700042115011, 0, 2.07317192866624, 0, 7.85979918056211, 
                                              3.16124671203156, 0, 2.20386912005489, 5.04985600724954, 
                                              0, 1.45395300959371, 0, 3.28091121578765, 3.83945231259331, 
                                              2.54160199346455, 2.66722820658195, 2.2512917986065, 7.53955882930103, 
                                              6.30261897574491, 6.96696713861398)), class = c("tbl_df", 
                                                                                              "tbl", "data.frame"), row.names = c(NA, -110L)

)

и мой сценарий

#logistic regression using glm 
logimodel <- glm(clinical.signs ~ log.copy.num, data = df.min, family = "binomial")
summary(logimodel)

#plot the logisitc regression above 
xaxis <- seq(min(df.min$log.copy.num), max(df.min$log.copy.num), 0.1)
yaxis <- predict(logimodel, list(log.copy.num=xaxis), type = "response")
plot(xaxis, yaxis)
plot(df.min$log.copy.num, df.min$clinical.signs)
lines(xaxis,yaxis, col = "blue")

Спасибо за любые советы по поводу того, что я уверен, что глупец sh оплошность!

1 Ответ

1 голос
/ 11 февраля 2020

У вас есть клинические признаки как фактор:

class(df.min$clinical.signs)
[1] "factor"

Следовательно, когда вы строите график, они преобразуются в 1 и 2, в то время как ваши yaxis находятся в диапазоне 0-1 (потому что у вас есть вероятность быть " 1" ). Чтобы получить его в том же масштабе, выполните

plot(df.min$log.copy.num, as.numeric(df.min$clinical.signs)-1,
ylab="clinical signs",xlab="log.copy.num")
lines(xaxis,yaxis, col = "blue")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...