[英]Robustness issue of statsmodel Linear regression (ols) - Python
[英]Linear Regression (OLS): Confidence Intervals are not being calculated accurately using Statsmodel summary_Frame()
不正確的置信區間
我想從 python 中的 OLS model 計算我的預測值的置信區間。 我在 statmodel 中找到了一個 function,它可以幫助您創建每個預測值的 dataframe,使用 get_prediction() 和 summary_frame() 的預測值、CI 的上限和下限。
不幸的是,我的上下 CI 與結果不匹配。 請找到我的代碼和結果截圖的附加截圖。
第 1 行,例如: Forecasted Value - 11.788462, SE - 0.580693, for 95% CI
Lower Bound should be = 11.788462 - (1.96 * 0.580693) = 10.65030372
Upper Bound should be = 11.788462 + (1.96 * 0.580693) = 12.92662028
但是屏幕截圖中的結果與這些數字不匹配。 我不確定我是否做錯了什么。 任何幫助表示贊賞。
statsmodels 默認使用 t 分布在 OLS 等線性回歸模型中進行推理。
由於樣本量非常小和自由度低,t 分布的臨界值與正態分布的臨界值在可觀察到的量級上有所不同。
下面將 1.96 的臨界值替換為 df=5 的 t 分布的臨界值。 這些值與問題中附加的屏幕截圖中的 statsmodels 結果相匹配。
from scipy import stats
11.788462 + stats.t.ppf(0.025, 5) * 0.580693
Out[12]: 10.295743121550677
11.788462 + stats.t.isf(0.025, 5) * 0.580693
Out[13]: 13.281180878449325
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.