Nieprawidłowe przedziały ufności

Chcę obliczyć przedział ufności dla moich prognozowanych wartości z modelu OLS w Pythonie. Znalazłem funkcję w statmodel, która pomaga utworzyć ramkę danych każdej prognozowanej wartości, se prognozowanej wartości, górnej i dolnej wartości granicznej CI przy użyciu get_prediction (), a następnie summary_frame ().

Niestety moje górne i dolne CI nie pasują do wyników. Proszę znaleźć załączony zrzut ekranu dla mojego kodu i wyników Zrzut ekranu.

Wiersz 1 na przykład: 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

Ale wyniki na zrzucie ekranu nie pasują do tych liczb. Nie jestem pewien, czy robię coś złego. Każda pomoc jest mile widziana.

0
Sahil 19 listopad 2019, 20:49

1 odpowiedź

Statsmodels domyślnie używa rozkładu t-Studenta do wnioskowania w modelach regresji liniowej, takich jak OLS.

Ze względu na bardzo małą wielkość próby i niskie stopnie swobody krytyczne wartości rozkładu t różnią się od wartości rozkładu normalnego w obserwowalnej wielkości.

Poniższy tekst zastępuje krytyczną wartość 1,96 wartościami krytycznymi z rozkładu t z df = 5. Wartości są zgodne z wynikami modeli statystycznych na zrzucie ekranu dołączonym do pytania.

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
1
Josef 20 listopad 2019, 20:04