Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

 
Добавить ответ в эту темуОткрыть тему
> Очень большие Odds ratio в логистической регрессии
Felix77
сообщение 23.02.2020 - 09:34
Сообщение #1





Группа: Пользователи
Сообщений: 10
Регистрация: 30.04.2018
Пользователь №: 31313



Доброго времени суток!
Модель вроде бы адекватная (зависимая переменная - КИН), 3 предиктора - объем контраста, возраст, анемия (есть или нет). Но вот отношения шансов получаются какие-то очень высокие.
Intercept) Анемия1 возраст Объем.контраста
4.991232e-15 4.267894e+03 1.167138e+00 2.609896e+03
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Felix77
сообщение 23.02.2020 - 09:37
Сообщение #2





Группа: Пользователи
Сообщений: 10
Регистрация: 30.04.2018
Пользователь №: 31313



Прикрепленный файл  Регрессия.xlsx ( 14,25 килобайт ) Кол-во скачиваний: 250

Данные здесь
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 23.02.2020 - 10:09
Сообщение #3





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(Felix77 @ 23.02.2020 - 09:37) *
Прикрепленный файл  Регрессия.xlsx ( 14,25 килобайт ) Кол-во скачиваний: 250

Данные здесь


Внимательнее данные готовьте, тут шутников и так хоть ртом ешь.


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Felix77
сообщение 23.02.2020 - 10:15
Сообщение #4





Группа: Пользователи
Сообщений: 10
Регистрация: 30.04.2018
Пользователь №: 31313



А что не так то?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Felix77
сообщение 23.02.2020 - 10:37
Сообщение #5





Группа: Пользователи
Сообщений: 10
Регистрация: 30.04.2018
Пользователь №: 31313



Прикрепленный файл  regression.txt ( 4,58 килобайт ) Кол-во скачиваний: 332

Вот в текстовом варианте
Если я делаю что-то не так, так Вы скажите пожалуйста. Во всяком случае в R я данные загружал и вычисления проводил. Получилось вот такое

Call:
glm(formula = КИН ~ Объем.контраста + Анемия + возраст, family = "binomial",
data = reg)

Deviance Residuals:
Min 1Q Median 3Q Max
-1.68285 -0.00979 -0.00186 -0.00029 2.18472

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -32.93109 10.07242 -3.269 0.001078 **
Объем.контраста 7.86707 2.18889 3.594 0.000326 ***
Анемия 8.35888 2.77845 3.008 0.002626 **
возраст 0.15455 0.07788 1.984 0.047210 *
---
Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 220.410 on 300 degrees of freedom
Residual deviance: 20.614 on 297 degrees of freedom
AIC: 28.614

Number of Fisher Scoring iterations: 10

> exp(coef(logit))
(Intercept) Объем.контраста Анемия возраст
4.991232e-15 2.609896e+03 4.267894e+03 1.167138e+00
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 23.02.2020 - 10:39
Сообщение #6





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(Felix77 @ 23.02.2020 - 09:34) *
Доброго времени суток!
Модель вроде бы адекватная (зависимая переменная - КИН), 3 предиктора - объем контраста, возраст, анемия (есть или нет). Но вот отношения шансов получаются какие-то очень высокие.
Intercept) Анемия1 возраст Объем.контраста
4.991232e-15 4.267894e+03 1.167138e+00 2.609896e+03



1. У вас разделены данные по КИН без всяких моделей и сомнений. "Просто глазами" разделяемы.

2. Предикторы мультиколлинеарны более чем допустимо, значит значения коэффициентов модели содержательно интерпретировать нельзя. Но судя по п.1 сильно не уменьшиться.

Цитата(Felix77 @ 23.02.2020 - 10:15) *
А что не так то?



Ага


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Felix77
сообщение 23.02.2020 - 11:36
Сообщение #7





Группа: Пользователи
Сообщений: 10
Регистрация: 30.04.2018
Пользователь №: 31313



Коэффициенты корреляций между предикторами слабые - 0.14-0.36. И с чего вдруг мультиколлинеарность больше чем допустимо.
Не понимаю!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 23.02.2020 - 13:03
Сообщение #8





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(Felix77 @ 23.02.2020 - 11:36) *
Коэффициенты корреляций между предикторами слабые - 0.14-0.36. И с чего вдруг мультиколлинеарность больше чем допустимо.
Не понимаю!



Код
> car::vif(modkim)
         Анемия Объем.контраста         возраст
       5.584514        5.157870        1.400406


Generally, VIF for an X variable should be less than 4 in order to be accepted as not causing multi-collinearity. The cutoff is kept as low as 2, if you want to be strict about your X variables.


ЗЫ

Код
> glm(КИН ~ Объем.контраста + возраст , kinm, family=binomial(link="logit"))

Call:  glm(formula = КИН ~ Объем.контраста + возраст,
    family = binomial(link = "logit"), data = kinm)

Coefficients:
    (Intercept)  Объем.контраста          возраст  
      -16.17699          4.67647          0.07174  

Degrees of Freedom: 300 Total (i.e. Null);  298 Residual
Null Deviance:        220.4
Residual Deviance: 60.04     AIC: 66.04
> car::vif(glm(КИН ~ Объем.контраста + возраст , kinm, family=binomial(link="logit")))
Объем.контраста         возраст
       1.014424        1.014424


Сообщение отредактировал p2004r - 23.02.2020 - 13:07


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Felix77
сообщение 23.02.2020 - 19:50
Сообщение #9





Группа: Пользователи
Сообщений: 10
Регистрация: 30.04.2018
Пользователь №: 31313



Цитата(p2004r @ 23.02.2020 - 17:03) *
Код
> car::vif(modkim)
         Анемия Объем.контраста         возраст
       5.584514        5.157870        1.400406


Generally, VIF for an X variable should be less than 4 in order to be accepted as not causing multi-collinearity. The cutoff is kept as low as 2, if you want to be strict about your X variables.


ЗЫ

Код
> glm(КИН ~ Объем.контраста + возраст , kinm, family=binomial(link="logit"))

Call:  glm(formula = КИН ~ Объем.контраста + возраст,
    family = binomial(link = "logit"), data = kinm)

Coefficients:
    (Intercept)  Объем.контраста          возраст  
      -16.17699          4.67647          0.07174  

Degrees of Freedom: 300 Total (i.e. Null);  298 Residual
Null Deviance:        220.4
Residual Deviance: 60.04     AIC: 66.04
> car::vif(glm(КИН ~ Объем.контраста + возраст , kinm, family=binomial(link="logit")))
Объем.контраста         возраст
       1.014424        1.014424

А почему получается такой логит при подстановке значений?
> x<-data.frame(возраст=60,Объем.контраста=3)
> p<-predict(logit,x)
> p
1
2.157031

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

Добавить ответ в эту темуОткрыть тему