fitted()
函数和函数有区别predict()
吗?我注意到来自 lme4 的混合模型可以使用fitted()
但不能使用predict()
.
问问题
52100 次
2 回答
79
就在这里。如果存在将线性预测变量与响应的预期值相关联的链接函数(例如泊松回归的 log 或逻辑回归的 logit),则在应用链接函数的倒数之前predict
返回拟合值(将数据返回到与响应变量相同的比例),并在应用后显示。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
.
于 2012-08-30T16:32:56.947 回答
33
该fitted
函数返回与用于拟合模型的数据关联的 y-hat 值。该predict
函数返回一组新预测变量的预测。如果您没有指定一组新的预测变量,那么默认情况下它将使用原始数据,给出与fitted
某些模型相同的结果,但如果您想预测一组新的值,那么您需要predict
. 该predict
函数通常还具有返回哪种类型的预测、线性预测变量、转换为响应尺度的预测、最可能的类别、模型中每个项的贡献等选项。
于 2012-08-30T16:55:19.883 回答