2012-08-30 63 views

答えて

48

はい、あります。 predictは、線形予測子を応答の期待値(ポアソン回帰またはロジスティック回帰のlogitなど)に関連付ける場合、の適合値を返す前に、のリンク関数の逆数が適用されますデータは応答変数と同じスケールになります)、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を使用する必要があります。

+13

@GregSnowは以下のように指摘しているので、 'predict'はケースに応じて追加のオプションを持っています)。 r-forge上の 'lme4'の開発版は' predict() 'メソッドを持っています。 –

16

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

関連する問題