Täytäntöönpanon regressio strategiaa käyttäen Python, pandoja ja statsmodels
Tuo kaikki tarvittavat paketit.
import pandas as pdfrom patsy import dmatricesfrom collections import OrderedDictimport itertoolsimport statsmodels.formula.api as smfimport sysimport matplotlib.pyplot as plt
Lue tietokokonaisuus pandojen tietokehykseen.
df = pd.read_csv('boston_daily_temps_1978_2019.csv', header=0, infer_datetime_format=True, parse_dates=, index_col=)
tietokokonaisuus sisältää päivän keskilämpötilat. Haluamme kuukausikeskiarvot. Siirretäänpä tiedot kuukauden tasolle. Tämä osoittautuu yksinkertaiseksi asiaksi pandojen käytössä.
df_resampled = df.resample('M').mean()
olemme lisäämässä viiveellä muuttuvia sarakkeita tietokokonaisuuteen., Luodaan kopio tietokokonaisuudesta, jotta emme häiritse alkuperäistä tietokokonaisuutta.
df_lagged = df_resampled.copy()
Lisää 12 saraketta, jokainen sisältää aika-jäänyt versio TAVG.
for i in range(1, 13, 1):
df_lagged = df_lagged.shift(i)
Tulostaa ensimmäisen 15 riviä jäljelle jääneet muuttujat data set.,
print(df_lagged.head(15))
Tämä tulostaa seuraavan tulosteen:
ensimmäisen 12 riviä sisältävät NaNs käyttöön shift-toiminto. Poistetaan nämä 12 riviä.
for i in range(0, 12, 1):
df_lagged = df_lagged.drop(df_lagged.index)
Tulostaa muutaman ensimmäisen rivit vain vahvistaa, että NaNs on poistettu.,
print(df_lagged.head())
Ennen kuin teemme mitään muuta kurkistaa ja tönäisi tiedot, meidän on unohdettava 20% data set testattavaksi optimaalinen malli.
nyt luodaan kaikki mahdolliset lagged-arvojen yhdistelmät. Tätä varten luomme sanakirjan, jossa avaimet sisältävät erilaisia yhdistelmiä viive numerot 1-12.
seuraavaksi iteroidaan kaikki syntyvät yhdistelmät. Jokaista lag-yhdistelmää varten rakennamme mallin ilmaisun patsy-syntaksilla., Seuraavaksi rakennamme lineaarisen regressiomallin, että lag-yhdistelmä muuttujia, koulutamme malli koulutuksen data set, pyydämme statsmodels antaa meille AIC-pistemäärä malli, ja me panemme merkille AIC pisteet ja nykyinen paras malli, jos nykyinen pistemäärä on pienempi kuin pienin arvo nähnyt tähän mennessä. Teemme kaiken tämän seuraavassa koodinpätkässä:
lopuksi, tulostetaan Yhteenveto parhaasta OLSR-mallista arviointikriteerimme mukaisesti. Tämä on malli, jolla on pienin AIC-pistemäärä.
print(best_olsr_model_results.summary())
Tämä tulostaa seuraavan tulosteen., Otan esiin muutamia mielenkiintoisia alueita output:
tutkitaan korostetut kohdat.,
Valinta mallin parametrien
– Meidän AIC-pistemäärä perustuu malli, arviointi-strategiassa on määritelty malli, jossa on seuraavat parametrit:
toinen laahaa, 3, 4, 7, 8, 9 on todettu, että ei olla tarpeeksi merkittävä, jotta yhdessä selittää varianssi riippuva muuttuja TAVG., Esimerkiksi, voimme nähdä, että TAVG_LAG_7 ei ole läsnä optimaalinen malli, vaikka alkaen scatter tonttien näimme aiemmin, siellä näytti olevan hyvä määrä korrelaatio vastemuuttujan TAVG ja TAVG_LAG_7. Syynä laiminlyönti saattaa olla, että suurin osa tiedoista TAVG_LAG_7 voi olla vanginneet TAVG_LAG_6, ja voimme nähdä, että TAVG_LAG_6 sisältyy optimaalinen malli.,
Tilastollinen merkitsevyys mallin parametrit (t-testi)
toinen asia huomata on, että kaikki parametrit optimaalinen malli, lukuun ottamatta TAVG_LAG_10, ovat erikseen tilastollisesti merkitsevä 95% luottamustasolla on kaksisuuntainen t-testi. Niiden t-pistemäärän ilmoitettu p-arvo on pienempi kuin 0,025, mikä on kynnysarvo p 2-tailed-testin 95 prosentin luotettavuustasolla.,
Yhteinen merkitys mallin parametrit (F-testi)
kolmas asia huomata on, että kaikki mallin parametrit ovat yhdessä merkittäviä selittää varianssi vastemuuttuja TAVG.
Tämä on nähtävissä F-tilastosta 1458. Sen p-arvo on 1,15 e-272 95 prosentin luottamustasolla., Tämä todennäköisyys arvo on niin uskomattoman pieni, että sinun ei edes tarvitse etsiä F-jakauman taulukosta, varmista, että F-arvo on merkittävä. Malli on ehdottomasti paljon parempi selittämään TAVG: n varianssia kuin intercept-only-malli.
jos Haluat tietää enemmän siitä, miten tulkita F-statistic, katso minun artikkeli F-testi.
AIC pisteet ja Maksimoidaan Log-Todennäköisyys varustettu malli
Lopuksi, katsotaanpa katsomaan AIC-pistemäärä 1990.0 ilmoittamia statsmodels, ja maksimoidaan log-todennäköisyys -986.86.,
– Voimme nähdä, että malli sisältää 8 parametrit (7 aikaa jäänyt muuttujat + intercept). Joten kohti kaava AIC-pisteet:
AIC-pisteet = 2*parametrien määrä -2* maksimoidaan log-todennäköisyys
= 2*8 + 2*986.86 = 1989.72, pyöristetty 1990. 0
joka on täsmälleen statmodelsin ilmoittama arvo.