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.
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
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.