【问题标题】:R numeric and categorical variables in multiple linear regression多元线性回归中的 R 数值和分类变量
【发布时间】:2019-06-03 11:55:07
【问题描述】:

我有一个类似这样的数据框:

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" 执行多元线性回归,但我不知道如何处理分类变量,或者说不同的格式。

我需要如何转换这些变量才能获得有意义的结果?

【问题讨论】:

  • 您好,您可以尝试使用?glm 进行广义线性模型,并在glm 调用中设置您的交互。例如glm(df,BMI~sport+social....)

标签: r integer linear-regression categorical-data dummy-variable


【解决方案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)

【讨论】:

  • 将其他变量也转换为因子是否有意义,以便每个变量具有相同的格式并使用线性回归而不是广义线性回归?
  • 我认为这取决于调查和数据的性质。对于这个数据,考虑到吸烟者是二元的,所有因素似乎都是有意义的。
  • 在我的数据中,吸烟者不是二进制的——数字代表家庭中吸烟者的数量。其他变量类似。所有变量都是至少具有三个级别的类别 - 只有 BMI 是一个连续数字。
  • 老实说,这似乎与统计数据有关。也许看看这个讨论:stats.stackexchange.com/questions/267121/…
猜你喜欢
  • 2019-04-25
  • 2014-06-21
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
  • 2020-05-20
  • 2023-03-25
  • 2021-12-24
  • 2019-01-25
相关资源
最近更新 更多