我的数据如下所示,绘图为行,不同的Ellenberg值为Year
,林(Skov
)和林类型(Skovtype
)。
我的数据来自4个不同的年份(1993年,1998年,2005年和2016年)。
我的lsmeans函数有一些问题,我的脚本如下所示:
ellenberg_LM <- read.csv2("Gns. Ellenberg1.csv")
将年份从整数转换为因子
levels(ellenberg_LM$Year)
ellenberg_LM$Year <- factor(ellenberg_LM$Year)
Ellenberg L - LM
LLM<-lm(Gennemsnit.af.L_Ellenberg ~ Year + Skov + Skov*Year + Skovtype + Skovtype*Year,
data=ellenberg_LM)
LS-装置
install.packages("lsmeans")
library(lsmeans)
lsmeans(LLM,~ Year, data = ellenberg_LM)
我的输出看起来像这样,在第一个例子中使用NA的1993。但是,如果我忽略了与Skov*Year
和Skovtype*Year
R
的互动,那就像上一个例子那样估算所有年份。
我的问题是;你知道我做错了拿到NA还是错过了什么?因为我希望通过交互计算所有年份的lsmeans。
答案 0 :(得分:2)
lsmip
是因为预测值在三个因子的某些组合中是不可估计的 - 因此在对这些因子中的两个因子的水平进行平均后仍然不可估计。这可能是由于某些因子组合中没有数据(数据中的空单元格)。当您拟合更简单的模型时,这些预测变得可估计,因为不再需要估计某些交互效应。
如果任何交互影响很重要,那么你可能不应该估计那些边际方法(这就是为什么会有警告信息)。查看一些交互图(例如,使用data
与交互模型)来可视化正在发生的事情并查看将预测平均在一起是否合理。如果这些东西让您感到困惑,请咨询统计顾问。
顺便说一下,lsmeans
调用中不需要{{1}}参数。