implementarea Strategiei de regresie folosind Python, panda și statsmodels

importați toate pachetele necesare.

import pandas as pdfrom patsy import dmatricesfrom collections import OrderedDictimport itertoolsimport statsmodels.formula.api as smfimport sysimport matplotlib.pyplot as plt

citiți setul de date într-un cadru de date Panda.

df = pd.read_csv('boston_daily_temps_1978_2019.csv', header=0, infer_datetime_format=True, parse_dates=, index_col=)

setul de date conține temperaturi medii zilnice. Vrem medii lunare. Deci, să rulăm datele la un nivel de lună. Acest lucru se dovedește a fi un lucru simplu de făcut folosind Panda.

df_resampled = df.resample('M').mean()

suntem pe cale să adăugăm coloane variabile rămase în setul de date., Să creăm o copie a setului de date, astfel încât să nu deranjăm setul de date original.

df_lagged = df_resampled.copy()

Adauga 12 coloane, fiecare conținând un decalaj versiune de TAVG.

for i in range(1, 13, 1):
df_lagged = df_lagged.shift(i)

imprimați primele 15 rânduri ale setului de date variabile rămase.,

print(df_lagged.head(15))

Acest imprimă următorul rezultat:

setul De date conține 12 variabile decalate (Imagine de Autor)

primele 12 rânduri conțin NaNs introdus prin funcția shift. Să eliminăm aceste 12 rânduri.

for i in range(0, 12, 1):
df_lagged = df_lagged.drop(df_lagged.index)

imprimați primele rânduri doar pentru a confirma că Nan-urile au fost eliminate.,

print(df_lagged.head())

înainte de a face mai trage cu ochiul și poking în datele, vom pune deoparte 20% din setul de date pentru testarea modelului optim.acum, să creăm toate combinațiile posibile de valori rămase. Pentru aceasta, vom crea un dicționar în care tastele conțin diferite combinații ale numerelor de întârziere de la 1 la 12.

apoi, vom itera peste toate combinațiile generate. Pentru fiecare combinație de lag, vom construi expresia modelului folosind sintaxa patsy., Apoi, vom construi modelul de regresie liniară pentru care gal combinație de variabile, vom instrui model pe formarea set de date, vom cere statsmodels să ne dea AIC scorul de model, și vom face o notă de AIC înscrie și actualul cel mai bun model’ dacă scorul este mai mică decât valoarea minimă văzut până acum. Vom face toate acestea în următoarea bucată de cod:

în cele din Urmă, să imprimați rezumat din cele mai bune OLSR model ca pe criteriu de evaluare. Acesta este modelul cu cel mai mic scor AIC.

print(best_olsr_model_results.summary())

Aceasta afișează următoarea ieșire., Am subliniat câteva zone interesante în ieșire:

Model de sinteză, generate de statsmodels OLSResults.rezumat () (imagine după autor)

să inspectăm secțiunile evidențiate.,

Alegerea parametrilor modelului

AIC scor model bazat pe strategii de evaluare a identificat un model cu următorii parametri:

Model de parametri și coeficienți de regresie (Imagine de Autor)

alte gal-uri, 3, 4, 7, 8, 9 au fost determinate să nu fie suficient de semnificative pentru a explica în comun varianța variabilei dependente TAVG., De exemplu, vom vedea că TAVG_LAG_7 nu este prezent în modelul optim chiar dacă din parcele scatter-am văzut mai devreme, nu părea să fie o sumă bună de corelație între variabila de răspuns TAVG și TAVG_LAG_7. Motivul pentru omisiune ar putea fi faptul că cele mai multe informații în TAVG_LAG_7 ar fi fost capturat de TAVG_LAG_6, și putem vedea că TAVG_LAG_6 este inclus în modelul optim.,

semnificația statistică a parametrilor modelului (testul t)

al doilea lucru de reținut este că toți parametrii modelului optim, cu excepția TAVG_LAG_10, sunt semnificativ statistic individual la un nivel de încredere de 95% pe testul T cu două cozi. Valoarea p raportată pentru scorul lor ” t ” este mai mică decât 0.025, care este valoarea prag p la un nivel de încredere de 95% la testul cu 2 cozi.,

valoarea t și p-valoarea parametrilor modelului (Imagine de Autor)

Comun semnificația parametrilor modelului (F-test)

Al treilea lucru de remarcat este faptul că toți parametrii de model sunt în comun semnificative în explicarea varianței în variabila de răspuns TAVG.

Acest lucru poate fi văzut din F-statistica 1458. Valoarea p este 1.15 e-272 la un nivel de încredere de 95%., Această valoare de probabilitate este atât de incredibil de mică încât nici măcar nu trebuie să căutați tabelul de distribuție F pentru a verifica dacă statistica F este semnificativă. Modelul este cu siguranță mult mai bun în a explica variația în TAVG decât un model numai pentru interceptare.

F-statistic și p-value., Toate mdoel parametri sunt în comun semnificative (Imagine de Autor)

Pentru a ști mai multe despre cum să interpreteze F-statistic, vă rugăm să consultați articolul meu de pe F-test.

AIC scor și Maximizate Log-Probabilitatea de model echipat

în cele din Urmă, să aruncăm o privire la AIC scorul de 1990.0 raportate de către statsmodels, și maximizate log-probabilitatea de -986.86.,

Maximizată Log-probabilitatea și AIC scor (Imagine de Autor)

putem vedea că modelul conține 8 parametri (7 variabile decalate în timp + interceptare). Asa ca pe formula pentru AIC scor:

AIC scor = 2*număr de parametri -2* maximizată log likelihood
= 2*8 + 2*986.86 = 1989.72, rotunjit la 1990. 0

care este exact valoarea raportată de statmodels.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *