问题描述
在最新版本的sommer软件包中,对预测函数进行了一些修改,不幸的是,我在最新版本中遇到了问题。
如果我未指定任何分类变量:
predict.mmer(modelh) strsplit(classify,“:”)中的错误:非字符参数
predict.mmer(modelh,classify =“ GEN”)
[.data.frame
(object $ dataOriginal,,c(colnames(DTX),error,
未定义的列已选择
我的模型如下:
mmer(数据=数据,固定=值〜1, 随机=〜GEN + ROWf + COLf + spl2D(ROW,COL),rcov =〜vs(单位))
进一步的问题:在上面的模型中,我在model $ fitted向量中得到了所有相同的值,它等于截距。据我了解,拟合值还应包括GEN,ROWf,...等随机效应。我在这里误会了吗?
感谢任何建议, 最好的问候,赫尔曼
解决方法
从4.1.1版本开始,预测函数不再用于获取拟合值,而是为特定的分类参数获取调整后的均值。因此,不能跳过分类参数。
如果您现在需要拟合值,则fit()函数应返回您要查找的值。
现在,使用分类的问题必须来自vs()函数之外的spl2D()函数的使用。您可能要从GitHub下载最新版本(版本4.1.2)并尝试:
mix <- mmer(data = data,fixed = value ~ 1,random = ~ GEN + ROWf + COLf + vs(spl2D(ROW,COL)),rcov = ~vs(units))
并使用:
pp=predict.mmer(modelh,classify = "GEN")
针对模型中所有GEN的调整后均值,将模型中的特定术语用于平均集和分类集,并且
ff=fitted.mmer(modelh)
如果要为观测值拟合值。
干杯, 爱德华多
,谢谢Eduardo,与4.1.2。完美兼容。
还有一个问题。我想知道残差的定义。似乎mmer将残差计算为“残差=响应-固定-固定”,而不是“残差=响应-固定-随机”忽略随机效应,无论是从模型框架调用残差还是使用残差函数。我这边有误会吗?
欢呼赫尔曼