【发布时间】:2019-07-24 04:02:06
【问题描述】:
我正在尝试使用 3 个自变量和 3 个因变量进行多元回归。问题是基于水质如何影响 3 个不同位置(即大食者)之间和之间的浮游生物丰度。水质变量为 pH 值、磷酸盐和硝酸盐。因变量/响应变量将是每 3 个位置的浮游生物丰度。
这是我的代码:
model1 <- lm(cbind(Abundance[Guzzler.. == 1], Abundance[Guzzler.. == 2],
Abundance[Guzzler.. == 3]) ~ Phospates + Nitrates + pH,
data=WQAbundancebyGuzzler)
这是我收到的错误消息:
Error in model.frame.default(formula = cbind(Abundance[Guzzler.. == 1], :
variable lengths differ (found for 'Phospates')
我认为这与我的数据的设置方式有关,但我不确定如何更改它以使模型运行。我试图看到的是这些水质变量如何影响不同地点的丰度以及它们之间的差异。所以尝试多个模型似乎不太合乎逻辑,这是我唯一的另一个想法。
这是dput(head(WQAbundancebyGuzzler))的输出:
structure(list(ï..Date = structure(c(2L, 4L, 1L, 3L, 5L, 2L), .Label = c("11/16/2018",
"11/2/2018", "11/30/2018", "11/9/2018", "12/7/2018"), class = "factor"),
Guzzler.. = c(1L, 1L, 1L, 1L, 1L, 2L), Phospates = c(2L,
2L, 2L, 2L, 2L, 1L), Nitrates = c(0, 0.3, 0, 0.15, 0, 0),
pH = c(7.5, 8, 7.5, 7, 7, 8), Air.Temp..C. = c(20.8, 25.4,
20.9, 16.8, 19.4, 27.4), Relative.Humidity... = c(62L, 31L,
41L, 59L, 59L, 43L), DO2.Concentration..mg.L. = c(3.61, 4.48,
3.57, 5.65, 2.45, 5.86), Water.Temp..C. = c(14.1, 11.5, 11.8,
13.9, 11.1, 17.8), Abundance = c(98L, 43L, 65L, 55L, 54L,
29L)), .Names = c("ï..Date", "Guzzler..", "Phospates", "Nitrates",
"pH", "Air.Temp..C.", "Relative.Humidity...", "DO2.Concentration..mg.L.",
"Water.Temp..C.", "Abundance"), row.names = c(NA, 6L), class = "data.frame")
【问题讨论】:
-
欢迎来到堆栈溢出!为了帮助您,我们需要一些东西来重现您的问题。即工作代码和示例数据。有几个ways to provide data,可能在您的问题中添加
dput(WQAbundancebyGuzzler)或dput(head(WQAbundancebyGuzzler))的输出就足够了。避免将代码或字母数字输出添加为图像。考虑How to make a great reproducible example 并编辑您的问题,谢谢。 -
@jay.sf 非常感谢您的提示!我已经继续并添加了 dput(head(WQAbundancebyGuzzler)) 的输出
-
您应该使用
Guzzler..作为 RHS 的一个因素。
标签: r model regression linear-regression