そのため、現在、線形モデルの信頼区間を描画しようとしています。これにはpredict.lm()を使用する必要があることがわかりましたが、関数を実際に理解する上でいくつかの問題があり、何が起こっているのかを知らずに関数を使用するのは好きではありません。このテーマに関するいくつかのハウツーを見つけましたが、対応するRコードのみで、実際の説明はありません。これは関数自体です:
## S3 method for class 'lm'
predict(object, newdata, se.fit = FALSE, scale = NULL, df = Inf,
interval = c("none", "confidence", "prediction"),
level = 0.95, type = c("response", "terms"),
terms = NULL, na.action = na.pass,
pred.var = res.var/weights, weights = 1, ...)
さて、私が理解するのに苦労していること:
1) newdata
An optional data frame in which to look for variables
with which to predict. If omitted, the fitted values are used.
誰もがこれにnewdataを使用しているようですが、その理由はよくわかりません。信頼区間を計算するには、明らかにこの区間のデータ(観測数、xの平均など)が必要なので、それが意味するものにすることはできません。しかし、それでは:それはどういう意味ですか?
2) interval
Type of interval calculation.大丈夫..しかし、「なし」とは何ですか?
3a) type
Type of prediction (response or model term).3b) terms
If type="terms", which terms (default is all terms)3a:それによって、モデル内の1つの特定の変数の信頼区間を取得できますか?もしそうなら、そのための3bは何ですか?3aで用語を指定できれば、3bで再度指定しても意味がないので、もう一度間違っていると思いますが、理由がわかりません。
皆さんの中には、「これを試してみませんか?」と思う人もいるかもしれません。そして、私は(それがここですべてを解決しないかもしれないとしても)そうします、しかし私は今その方法を知りません。newdataの目的がわからないため、使用方法がわかりません。試してみると、適切な信頼区間が得られません。どういうわけか、そのデータをどのように選択するかが非常に重要ですが、私にはわかりません。
編集:私の意図はpredict.lmがどのように機能するかを理解することであると付け加えたいと思います。つまり、私が思っているように機能するかどうかはわかりません。つまり、y-hat(予測値)を計算し、間隔の上限/下限ごとに加算/減算を使用して、いくつかのデータポイントを計算します(信頼線のように見えます)?? 次に、線形モデルと同じ長さをnewdataに含める必要がある理由がわかりません。