Числовые и категориальные переменные R в множественной линейной регрессии

У меня есть фрейм данных, который выглядит примерно так:

BMI<-c(13.4,14,15.6,16,13.4,12.9,17.7,18.3,17,16.5)
sport<-c(1,2,2,3,2,1,1,3,1,2)
social<-c("low","middle","middle","low","high","low","middle","middle","high","middle")
smoker<-c(1,0,0,1,2,3,2,2,2,1)

status<-c("low","high","low","middle","low","middle","middle","middle","high","low")
social<-as.factor(social)
status<-as.factor(status)
sport<-as.integer(sport)
smoker<-as.integer(smoker)

df<-data.frame(BMI,sport,social,status,smoker)

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

Как мне нужно преобразовать эти переменные, чтобы получить значимый результат?


person Lutz    schedule 08.01.2019    source источник
comment
Привет, вы можете попробовать создать обобщенную линейную модель, используя ?glm, и установить взаимодействия в вызове glm. Например glm(df,BMI~sport+social....)   -  person NelsonGon    schedule 08.01.2019


Ответы (1)


Вам необходимо использовать обобщенную линейную модель и задать категориальные переменные, используя factor, например:

glm(data=iris,formula=Sepal.Width~Sepal.Length+Petal.Length+factor(Species))

Используя ваши данные:

glm(data=df,BMI~sport+social+status+smoker,family="gaussian")

Если вам нужна линейная модель:

library(tidyverse)
df1<-df %>% 
  mutate_if(is.character,as.factor)
lm(BMI~sport+social+status+smoker,data=df1)
person NelsonGon    schedule 08.01.2019
comment
Информация о семьях: stats.stackexchange.com/questions/94852/ - person NelsonGon; 08.01.2019
comment
имеет ли смысл преобразовывать и другие переменные в факторы, чтобы каждая переменная имела одинаковый формат и использовала линейную регрессию вместо обобщенной линейной регрессии? - person Lutz; 09.01.2019
comment
Я думаю, это зависит от характера расследования и данных. Для этих данных имеет смысл использовать все факторы, которые говорят, что курильщик является бинарным. - person NelsonGon; 09.01.2019
comment
По моим данным, число курильщиков не является двоичным - числа обозначают количество курильщиков в семье. Остальные переменные похожи. Все переменные представляют собой категории как минимум с тремя уровнями - только ИМТ является непрерывным числом. - person Lutz; 09.01.2019
comment
Если честно, это больше связано со статистикой. Возможно, взгляните на это обсуждение: stats.stackexchange.com/questions/267121/ - person NelsonGon; 09.01.2019