R函数fitt()和predict()之间有区别吗?
功能之间有区别吗 fitted()
和 predict()
?我注意到lme4中的混合模型可以与 fitted()
但不是 predict()
.
就在这里。如果存在一个将线性预测变量与响应的期望值相关联的链接函数(例如,用于Poisson回归的log或用于Logistic回归的logit), predict
返回拟合值 之前 应用link函数的逆函数(以使数据返回与响应变量相同的标度),并且 fitted
显示它 后 它被应用。
例如:
x = rnorm(10) y = rpois(10, exp(x)) m = glm(y ~ x, family='poisson') print(fitted(m)) # 1 2 3 4 5 6 7 8 # 0.3668989 0.6083009 0.4677463 0.8685777 0.8047078 0.6116263 0.5688551 0.4909217 # 9 10 # 0.5583372 0.6540281 print(predict(m)) # 1 2 3 4 5 6 7 # -1.0026690 -0.4970857 -0.7598292 -0.1408982 -0.2172761 -0.4916338 -0.5641295 # 8 9 10 # -0.7114706 -0.5827923 -0.4246050 print(all.equal(log(fitted(m)), predict(m))) # [1] TRUE
这确实意味着对于通过线性回归创建的模型(lm
),两者之间没有区别 fitted
和 predict
.
实际上,这意味着如果您想将拟合值与原始数据进行比较,则应使用 fitted
.
27个好的答案,但您可以使用
predict(m,type='response')
以获得原始(响应)规模的预测,正如@GregSnow在下面指出的那样,predict
有其他选项(视情况而定)。开发版lme4
,在r-forge上, 确实 有一个predict()
方法。
的 fitted
函数返回与用于拟合模型的数据关联的y值。的 predict
函数返回一组新的预测变量的预测。如果您不指定一组新的预测变量,则默认情况下它将使用原始数据,结果与 fitted
对于某些模型,但是如果要预测一组新值,则需要 predict
。的 predict
函数通常还具有返回哪种类型的预测,线性预测器,转换为响应量表的预测,最可能的类别,模型中每个项的贡献等选项。
赞 (0)