Vertrauens- und Vorhersageintervalle mit StatsModels

Ich mache diese lineare Regression mit StatsModels:

import numpy as np import statsmodels.api as sm from statsmodels.sandbox.regression.predstd import wls_prediction_std #measurements genre nmuestra = 100 x = np.linspace(0, 10, nmuestra) e = np.random.normal(size=nmuestra) y = 1 + 0.5*x + 2*e X = sm.add_constant(x) re = sm.OLS(y, X).fit() print re.summary() #print the result type Stata prstd, iv_l, iv_u = wls_prediction_std(re) 

Meine Fragen sind, iv_l und iv_u sind die oberen und unteren Konfidenzintervalle oder Vorhersageintervalle? Wie bekomme ich das andere? (Ich brauche die Vertrauens- und Vorhersageintervalle für alle Punkte, um als Handlung zu tun)

2 Solutions collect form web for “Vertrauens- und Vorhersageintervalle mit StatsModels”

iv_l, iv_u gibt dir die Grenzen des Vorhersageintervalls für jeden Punkt.

Sehen Sie die erste Handlung hier http://statsmodels.sourceforge.net/devel/examples/generated/example_ols.html

Vorhersageintervall ist das Konfidenzintervall für eine Beobachtung und beinhaltet die Schätzung des Fehlers.

Ich denke, Konfidenzintervall für die mittlere Vorhersage ist noch nicht in statsmodels verfügbar. (Eigentlich versteckt sich das Konfidenzintervall für die angepassten Werte innerhalb der Summary_Table von effect_outlier, aber ich muss das überprüfen.)

Richtige Vorhersagemethoden für Statsmodelle befinden sich auf der TODO-Liste.

Zusatz

Konfidenzintervalle gibt es für OLS, aber der Zugang ist ein bisschen ungeschickt.

Um nach dem Ausführen des Skripts aufgenommen zu werden:

 from statsmodels.stats.outliers_influence import summary_table st, data, ss2 = summary_table(re, alpha=0.05) fittedvalues = data[:,2] predict_mean_se = data[:,3] predict_mean_ci_low, predict_mean_ci_upp = data[:,4:6].T predict_ci_low, predict_ci_upp = data[:,6:8].T # check we got the right things print np.max(np.abs(re.fittedvalues - fittedvalues)) print np.max(np.abs(iv_l - predict_ci_low)) print np.max(np.abs(iv_u - predict_ci_upp)) plt.plot(x, y, 'o') plt.plot(x, fittedvalues, '-', lw=2) plt.plot(x, predict_ci_low, 'r--', lw=2) plt.plot(x, predict_ci_upp, 'r--', lw=2) plt.plot(x, predict_mean_ci_low, 'r--', lw=2) plt.plot(x, predict_mean_ci_upp, 'r--', lw=2) plt.show() 

Bildbeschreibung hier eingeben

Dies sollte die gleichen Ergebnisse wie SAS, http://jpktd.blogspot.ca/2012/01/nice-thing-about-seeing-zeros.html geben

Sie können die Vorhersageintervalle erhalten, indem Sie LRPI () Klasse aus dem Ipython Notizbuch in meinem Repo ( https://github.com/shahejokarian/regression-prediction-interval ) verwenden.

Sie müssen den t-Wert setzen, um das gewünschte Konfidenzintervall für die Vorhersagewerte zu erhalten, andernfalls ist der Standardwert 95% conf. Intervall.

Die LRPI-Klasse verwendet sklearn.linear_models LinearRegression, numpy und pandas Bibliotheken.

Es gibt auch ein Beispiel im Notebook.

Python ist die beste Programmiersprache der Welt.