我在R中使用了一个带有多个因变量的广义线性模型

时间:2015-02-25 14:59:28

标签: poisson

我在R .my数据(年轻)中使用了带有多个变量的广义线性模型,如下所示,我有5个DVS(dv1,dv2,dv3,dv4,dv5)和3个IVS(IV1,IV2,IV3)数据框。我一直得到下面的错误,请问有人回答,我做错了。

> head(young)
  IV1 IV2 IV3 DVS
1  18   1   1 dv1
2  20   1   1 dv1
3  21   2   1 dv1
4  21   1   2 dv1
5  22   1   1 dv1
6  22   1   1 dv1
> models <- list()
> dvnames <- paste("DVS", 1:5, sep='')
> ivnames <- paste("IV", 1:3, sep='') ## for some value of 3
> for (y in dvnames){
+ form <- formula(paste(y, "~", ivnames))
+ models[[y]] <- glm(form, data=young, family='poisson') }
**Error in eval(expr, envir, enclos) : object 'DVS1' not found**

1 个答案:

答案 0 :(得分:1)

很容易理解为什么会出现错误。循环第一次迭代时,y取值DVS1。在模型公式中,R将在young中查找名为DVS1的变量。正如您向我们展示的那样,没有带有该名称的变量(列)(也可能是glm()范围内的对象),因此

**Error in eval(expr, envir, enclos) : object 'DVS1' not found**

这是完全正确的。

现在更重要的问题变成了,你想做什么?您似乎适合泊松模型,但您声称响应变量位于单个列DVS中,其中R将作为因子变量处理。您希望在IV1IV2IV3的某个函数中建模的计数数据在哪里?

R期望提供的东西可以解释为公式左侧的数字计数(您放置y)。