我使用lm()
构建了一些模型。响应变量是每个月在两个地点之一的物种的丰富程度。它以百分比形式给出小数点后6位。必须使用百分比,因为数据是通过公民科学收集的,其中每月记录的实际月度总数不可靠,但两个地点各自的总体比例(%)是。
最佳拟合模型有两个解释变量,即风速和风向,均为数值。我想应用predict()
函数。到目前为止,我已按照帖子here中的说明操作,如下所示。
model <- lm(y~ x1, data=df)
new.df <- data.frame(x1=c(0, 10, 20))
predict(model, new.df)
这似乎适用于只有一个探索性变量的模型,但我在添加第二个时遇到了麻烦,所以它适用于我最合适的模型。
到目前为止,这是我提出的,然而,结果没有意义,因为两个是负数。
model2 <- lm(y ~ x1+x2, data=df)
new.df <- data.frame(x1=c(1, 6, 12), (x2=c(1, 10, 20)))
predict(model2, new.df)
1 2 3
0.4123114 -0.3975497 -1.3014379
如果有人能提出任何建议,我将不胜感激。
答案 0 :(得分:0)
如果你需要x1 + x2并且两者的相互作用(y~x1 + x2 + x1:x2)试试这个:
> df <- data.frame(x1=c(2, 12, 24), x2=c(2, 20, 40), y=c(1,2,3)) # example DF
> model2 <- lm(y ~ x1*x2, data=df)
> new.df <- data.frame(x1=c(1, 6, 12), (x2=c(1, 10, 20)))
> predict(model2, new.df)
1 2 3
1.0 1.5 2.0
答案 1 :(得分:0)
我发现了问题。我的响应变量已经转换,以确保满足假设。因此,android:fontFamily ="sans-serif"
的输出返回其转换状态的值。