現在、十分な情報がありません。フィットした曲線の信頼区間を計算するには、3つの係数の完全分散分散共分散行列が必要ですが、現在はその行列の対角成分のみがあります。
直交多項式を当てはめた場合、分散共分散行列は対角であり、対角要素は同じです。これは確かにあなたの場合ではありません:
- あなたが表示される標準エラーは、それぞれ異なります。
- 明示的に生の多項式の表記を使用している:
x + I(x^2)
が、私はそれはモデルを適合するために使用される「生データ」ではありません生データ
を必要と見られる方法を。それは信頼帯を作りたい "新しいデータ"です。しかし、残りの自由度を導き出すために必要な、例えばn
というモデルのフィッティングに使用されるデータの数を知る必要があります。 3つの係数を持つあなたの場合、この自由度はn - 3
です。
あなたが持ってたら:
- フル分散共分散行列は、のは
V
をしましょう。
n
、モデルフィッティングに使用されるデータの数。あなたのフィット多項式から、あなたが平均予測を取得する方法を知っている X <- cbind(1, x, x^2) ## prediction matrix
e <- sqrt(rowSums(X * (X %*% V))) ## prediction standard error
:あなたは最初から予測標準誤差を取得することができます
- 信頼バンドを生成するために与える点のベクトル
x
、
、 右? 、それは完全な理論がHow does predict.lm() compute confidence interval and prediction interval?
でご提供共分散行列に基づいて更新
ある
## residual degree of freedom: n - 3
mu + e * qt(0.025, n - 3) ## lower bound
mu - e * qt(0.025, n - 3) ## upper bound
を使用し、平均値は95%〜CIのために今、mu
であると仮定いくつかの結果と数字を生成することが可能になりました。
V <- structure(c(0.000894073, -0.003622614, 0.002874075, -0.003622614,
0.068245163, -0.065114661, 0.002874075, -0.065114661, 0.065294027
), .Dim = c(3L, 3L), .Dimnames = list(c("a0", "a1", "a2"), c("a0",
"a1", "a2")))
我々はx = seq(-5, 5, by = 0.2)
でCIを作成するとします:
beta <- c(0.2135187, 1.1343072, -1.0000000)
x <- seq(-5, 5, by = 0.2)
X <- cbind(1, x, x^2)
mu <- X %*% beta
e <- sqrt(rowSums(X * (X %*% V)))
n <- 279
lo <- mu + e * qt(0.025, n - 3)
up <- mu - e * qt(0.025, n - 3)
matplot(x, cbind(mu, lo, up), type = "l", col = 1, lty = c(1,2,2))
私はより多くのあなたに感謝する方法がわからない、あなたの助けを非常に高く評価されました – trantsyx