54

fitted()関数との間に違いはありpredict()ますか? lme4 の混合モデルは では動作しますfitted()が、 では動作しないことに気付きましたpredict()

4

2 に答える 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違いがないことを意味します。fittedpredict

実際には、これは、元のデータとの近似を比較する場合は、を使用する必要があることを意味しますfitted

于 2012-08-30T16:32:56.947 に答える
33

このfitted関数は、モデルの適合に使用されたデータに関連付けられた y ハット値を返します。このpredict関数は、予測子変数の新しいセットの予測を返します。予測変数の新しいセットを指定しない場合、デフォルトで元のデータが使用されfitted、一部のモデルと同じ結果が得られますが、新しい値のセットを予測する場合は が必要predictです。多くの場合、predict関数には、返す予測のタイプ、線形予測子、応答スケールに変換された予測、最も可能性の高いカテゴリ、モデル内の各項の寄与などのオプションもあります。

于 2012-08-30T16:55:19.883 に答える