[英]Confidence interval of polynomial regression
我和R和統計數據有點問題。
我使用最大似然法擬合了一個模型,他給出了以下系數及其各自的標准誤差(以及其他參數估計值):
ParamIndex Estimate SE
1 a0 0.2135187 0.02990105
2 a1 1.1343072 0.26123775
3 a2 -1.0000000 0.25552696
從我可以畫出我的曲線:
y= 0.2135187 + 1.1343072 * x - 1 * I(x^2)
但是從那時起,我現在要計算這條曲線周圍的置信區間,我不清楚如何做到這一點。
顯然,我應該使用傳播或誤差/不確定性,但我發現的方法需要原始數據,或者不僅僅是多項式公式。
當用R知道估計值的SE時,有沒有任何方法可以計算我的曲線的CI?
謝謝您的幫助。
編輯:
所以,現在,我使用函數vcov
獲得協方差表(v):
a0 a1 a2
a0 0.000894073 -0.003622614 0.002874075
a1 -0.003622614 0.068245163 -0.065114661
a2 0.002874075 -0.065114661 0.065294027
並且n = 279
。
您現在沒有足夠的信息。 要計算擬合曲線的置信區間,需要三個系數的完全方差 - 協方差矩陣 ,但是現在您只有該矩陣的對角線條目。
如果已經擬合了正交多項式,則方差 - 協方差矩陣是對角線的,具有相同的對角線元素。 這肯定不是你的情況,因為:
x + I(x ^ 2)
但我發現的方法需要原始數據
它不是用於擬合模型的“原始數據”。 它是您想要產生置信帶的“新數據”。 但是,您確實需要知道用於擬合模型的數據的數量,例如n
,因為這是導出剩余自由度所必需的。 在你的情況下有3個系數,這個自由度是n - 3
。
一旦你有:
V
; n
,用於模型擬合的數據數量; x
的向量給出了產生置信帶的位置, 您可以先從以下方面獲得預測標准誤差:
X <- cbind(1, x, x ^ 2) ## prediction matrix
e <- sqrt( rowSums(X * (X %*% V)) ) ## prediction standard error
你知道如何從擬合的多項式公式得到預測均值嗎? 假設平均值為mu
,現在為95%-CI,使用
## residual degree of freedom: n - 3
mu + e * qt(0.025, n - 3) ## lower bound
mu - e * qt(0.025, n - 3) ## upper bound
一個完整的理論是如何預測.lm()計算置信區間和預測區間?
更新
根據您提供的協方差矩陣,現在可以生成一些結果和數字。
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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.