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)

相关推荐