Logisti c прогноз переменной результата регрессии в r - PullRequest
1 голос
/ 05 мая 2020

Я использую логистическую c регрессию для прогнозирования двоичной выходной переменной (группа, 0/1). Итак, я кое-что заметил: у меня есть две переменные, представляющие один и тот же результат, одна кодируется просто как «0» или «1».

> df$Group   
>[1] 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1
> 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 
> [59] 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1
> 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 
>[117] 0 0 0 1 1 1 1
> 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0
> 0 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 
>[175] 1 0 1 
>Levels: 0 1
> is.factor(df$Group)   
> [1] TRUE

Та же история для другого, который представляет то же самое, но имеет метки «имена»:

> df$Group   
>[1] CON CI     CON CI     CI     CON CI    
> CI     CON CI     CI     CI     CON CI      
>[15] CI  ecc.. ecc..    
> Levels: CI CON  
> is.factor(df$Group2)  
> [1] TRUE  
> contrasts(df$Group2)    
> CI        0  
> CON       1

В котором 0 в первой переменной = CON, тогда как 1 = CI. Я создал эту первую числовую переменную, потому что хотел, чтобы CI была моей группой «1», а CON - эталонной группой 0, но когда я преобразовывал из набора данных, каждый раз, когда я пытался сделать «as.factor», происходило то, что CI = уровень 1, CON = уровень 2.

Я думал, что это одно и то же, но когда я попытался изобразить отношение шансов с помощью пакета sjPlot и просто проверил, чтобы быть уверенным, я заметил, что OR были совсем другими , хотя при проверке коэффициентов сводки (модель glm) все казалось одинаковым (кроме -или + оценок, что имеет смысл, поскольку две группы кодируются по-разному). В частности, при использовании числовой переменной ИЛИ на графике определенно больше, тогда как при использовании переменной «имя» ИЛИ меньше.

Я что-то упустил в понимании r (я сам подумал ) или при вычислении логистической c регрессии? Какую из переменных мне следует использовать в логистической c регрессии? И как я могу изменить тот факт, что в переменных «name» r используется «CI» как группа ссылок 0 вместо CON? Спасибо.

1 Ответ

0 голосов
/ 05 мая 2020

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

df$Group <- factor(df$Group, levels=c('CON','CI'))

. Тогда CON будет использоваться в качестве контрольного уровня в логистической c регрессии, и вы должны получить те же результаты, что и при кодировании 0/1.

...