我正在进行回归,我想添加一年作为因素,但我的年只是一年(2010年),当我运行等式时,我得到一个错误:
contrasts<- (tmp, value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels
我的等式:
Lanu <- lm(YFT ~ PR1*factor(DN1)*factor(NTM1)*factor(AÑO1))
我的所有因素都有相同的长度,YFT
是密度,PR1
是深度,因子DN1
是两种类型的网络,NTM1
是三个位置。我想知道我的因素中是否存在相互作用。
答案 0 :(得分:4)
由于你只有1年,所以年份只是constant。没有识别变异,这是@MrFlick在他的评论中所暗示的。这就是为什么如果您尝试对比或者如果您尝试将其放入lm
等式时出现错误的原因。
实际上,你不应该包括年份,因为你几年没有变化。
从技术上讲,如果您要省略默认常量(通常称为“Beta naught”), 可以 将其包含在回归中,该常量计算为平均响应时所有预测值均为零。这与人工设置你的y截距到2010年是一样的。
很难想象一个有利的情况,即使那样你就不能拥有一个常数的交互项。
以下是您的选择:
Lanu <- lm(YFT ~ 0 + PR1*factor(DN1)*factor(NTM1)*factor(AÑO1), offset=rep(2010, length(YFT))
请注意,在等式中添加0 +
或- 1
会删除正常的截距,offset
会创建人工年截距。