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

时间:2013-10-14 15:28:35

标签: r

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

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

`data = read.xlsx("spreadsheet.xlsx",2, as.is = TRUE)`
age = data$age
gender = data$gender
type = data$type

其中每个都是以下形式:

age = [28, 30, 19, 23 etc]
gender = [male, male, female, male etc]
type = [a b b b]

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

model1 = lm(type ~ age + gender)

但我收到此错误消息:

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

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

age = as.numeric(as.character(age))
gender = as.character(gender)
type = as.character(type)

但这不起作用!

1 个答案:

答案 0 :(得分:18)

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

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

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

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