估計參數函數周圍的置信區間
假設我估計以下模型, $$ y = \hat{\beta_0} + \hat{\beta_1} X_1 + \hat{\beta_2} X_2\ , $$ 並且對數量也很感興趣 $$ \gamma = \sqrt{\beta_0^2 - 4\beta_1\beta_2}\ . $$ 以上估計, $ \hat{\gamma} $ ,通過插入估計值清楚地給出 $ \hat\beta_i $ 的在上面的公式中。
但是,如何計算圍繞這種不直接估計的“複合”量的置信區間呢?
我的嘗試。
我的“經驗”方法如下。我生成大小的多元正態分佈 $ n $ 使用估計的手段 $ \hat\beta_i $ 的和擬合的協方差矩陣。因此,我有一個大小分佈 $ n $ 為了 $ \gamma $ . 這個分佈的平均值 $ \bar\gamma $ 自然是那麼接近 $ \hat\gamma $ 上面計算,我現在還有這個分佈的標準偏差 $ \sigma $ .
使用 $ \sigma $ 生成置信區間。
如果我使用標准定義 $ \bar\gamma \pm t(\alpha, n-1) \sigma / \sqrt{n} $ , 在哪裡 $ t $ 是 PPF 的 $ t $ -distribution,我遇到了以下困境:因為我選擇 $ n $ 就我自己而言,我實際上可以將標準誤差設置為我喜歡的盡可能小。這不是我想要的:我正在尋找一個“自然”置信區間,它完全取決於我對 $ \beta $ 的。因此,我的想法如下: $ \sigma $ 保持積極,並且似乎“收斂”到其真正的價值 $ n $ :因此,我的 95% 的值 $ \gamma $ 分佈在區間內 $ \bar\gamma \pm 2\sigma $ .
這種方法有效嗎?
這個問題的兩種常見方法是直接從回歸計算係數的非線性組合或引導它。
前者的方差基於“delta 方法”,這是一種適用於大樣本的近似值。這是在另一個答案中提出的,但是統計軟件可以使計算變得容易得多。
後者的方差來自於對內存中的數據進行帶放回的重採樣,擬合模型,計算係數組合,然後使用採樣分佈得到置信區間。
這是兩者都使用Stata的示例:
. sysuse auto, clear (1978 automobile data) . set seed 11082021 . regress price mpg foreign Source | SS df MS Number of obs = 74 -------------+---------------------------------- F(2, 71) = 14.07 Model | 180261702 2 90130850.8 Prob > F = 0.0000 Residual | 454803695 71 6405685.84 R-squared = 0.2838 -------------+---------------------------------- Adj R-squared = 0.2637 Total | 635065396 73 8699525.97 Root MSE = 2530.9 ------------------------------------------------------------------------------ price | Coefficient Std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- mpg | -294.1955 55.69172 -5.28 0.000 -405.2417 -183.1494 foreign | 1767.292 700.158 2.52 0.014 371.2169 3163.368 _cons | 11905.42 1158.634 10.28 0.000 9595.164 14215.67 ------------------------------------------------------------------------------ . nlcom (gamma_dm:sqrt(_b[_cons] - 4*_b[mpg]*_b[foreign])) gamma_dm: sqrt(_b[_cons] - 4*_b[mpg]*_b[foreign]) ------------------------------------------------------------------------------ price | Coefficient Std. err. z P>|z| [95% conf. interval] -------------+---------------------------------------------------------------- gamma_dm | 1446.245 361.0078 4.01 0.000 738.6823 2153.807 ------------------------------------------------------------------------------
使用 delta 方法的 95% CI 為 [738.6823, 2153.807]。
Boostrapping 產生 [740.5149, 2151.974],非常相似:
. bootstrap (gamma_bs:sqrt(_b[_cons] - 4*_b[mpg]*_b[foreign])), reps(500) nodots: regress price mpg foreign Linear regression Number of obs = 74 Replications = 499 Command: regress price mpg foreign [gamma_bs]_bs_1: sqrt(_b[_cons] - 4*_b[mpg]*_b[foreign]) ------------------------------------------------------------------------------ | Observed Bootstrap Normal-based | coefficient std. err. z P>|z| [95% conf. interval] -------------+---------------------------------------------------------------- gamma_bs | _bs_1 | 1446.245 360.0728 4.02 0.000 740.5149 2151.974 ------------------------------------------------------------------------------ Note: One or more parameters could not be estimated in 1 bootstrap replicate; standard-error estimates include only complete replications.
您的解決方案
如果您有大量數據,您提出的解決方案會起作用,但在這裡它只有 74 個觀察結果並不好:
. quietly regress price mpg foreign . corr2data b_mpg b_foreign b_cons, n(500) means(e(b)) cov(e(V)) clear (obs 500) . gen gamma_sim = sqrt(b_cons - 4*b_mpg*b_foreign) (3 missing values generated) . sum gamma_sim Variable | Obs Mean Std. dev. Min Max -------------+--------------------------------------------------------- gamma_sim | 497 1426.183 366.6408 197.5594 2397.263 . display "[" %-9.4f r(mean) + invttail(r(N)-1,.975)*r(sd) ", " r(mean) + invttail(r(N)-1,.025)*r(sd) "]" [705.8224 , 2146.5434]
這裡的 CI 是 [705.8224 , 2146.5434],與上面的兩個 CI 明顯不同。
我的想法是,如果您要進行模擬,您不妨引導而不依賴僅漸近有效的正態近似。如果您有大量數據,則通過估計係數和方差參數化的 MVN 的自舉和採樣之間的差異應該不明顯。