最小二乘意味着R

时间:2017-01-20 13:19:19

标签: r lsmeans

我的数据如下所示,绘图为行,不同的Ellenberg值为Year,林(Skov)和林类型(Skovtype)。

我的数据来自4个不同的年份(1993年,1998年,2005年和2016年)。

enter image description here

我的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*YearSkovtype*Year R的互动,那就像上一个例子那样估算所有年份。

enter image description here

我的问题是;你知道我做错了拿到NA还是错过了什么?因为我希望通过交互计算所有年份的lsmeans。

1 个答案:

答案 0 :(得分:2)

lsmip是因为预测值在三个因子的某些组合中是不可估计的 - 因此在对这些因子中的两个因子的水平进行平均后仍然不可估计。这可能是由于某些因子组合中没有数据(数据中的空单元格)。当您拟合更简单的模型时,这些预测变得可估计,因为不再需要估计某些交互效应。

如果任何交互影响很重要,那么你可能不应该估计那些边际方法(这就是为什么会有警告信息)。查看一些交互图(例如,使用data与交互模型)来可视化正在发生的事情并查看将预测平均在一起是否合理。如果这些东西让您感到困惑,请咨询统计顾问。

顺便说一下,lsmeans调用中不需要{{1}}参数。