使用电子表格数据在R中运行线性模型

use*_*211 10 r

我有一个由106个两种类型的人组成的数据集 - a和b有各种变量,例如年龄和性别.我想运行一个线性模型,根据协变量预测每个人是a型还是b型.

我使用以下方法读取每个人的年龄,性别和类型标签的值:

`data = read.xlsx("spreadsheet.xlsx",2, as.is = TRUE)`
age = data$age
gender = data$gender
type = data$type
Run Code Online (Sandbox Code Playgroud)

每个都是以下形式:

age = [28, 30, 19, 23 etc]
gender = [male, male, female, male etc]
type = [a b b b]
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用以下方法设置模型:

model1 = lm(type ~ age + gender)
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

Warning messages:
1: In model.response(mf, "numeric") :
using type="numeric" with a factor response will be ignored
2: In Ops.factor(y, z$residuals) : - not meaningful for factors
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法更改类型,年龄和性别的格式:

age = as.numeric(as.character(age))
gender = as.character(gender)
type = as.character(type)
Run Code Online (Sandbox Code Playgroud)

但这不起作用!

mac*_*mac 18

您不能使用带因子作为响应变量的线性回归模型,这是您在此尝试执行的操作(类型是您的响应变量).回归模型需要数字响应变量.你应该看一下分类模型.

正如Roland指出的那样,您可能希望首先将"类型"变量重新设置为逻辑二项式变量.您可以创建一个名为"is.type.a"的新变量,而不是名为"type"的因子,它包含两个级别"a"和"b",它包含TRUE或FALSE.

然后,您可以尝试基于二项分布的逻辑回归

model <- glm(is.type.a ~ age + gender,data=data,family="binomial")
Run Code Online (Sandbox Code Playgroud)