A regressziós stratégia végrehajtása Python, pandák és statsmodels
importálja az összes szükséges csomagot.
import pandas as pdfrom patsy import dmatricesfrom collections import OrderedDictimport itertoolsimport statsmodels.formula.api as smfimport sysimport matplotlib.pyplot as plt
olvassa el az adatkészletet egy pandas adatkeretbe.
df = pd.read_csv('boston_daily_temps_1978_2019.csv', header=0, infer_datetime_format=True, parse_dates=, index_col=)
az adatkészlet napi átlaghőmérsékletet tartalmaz. Havi átlagokat akarunk. Tehát tegyük fel az adatokat egy hónapos szintre. Ez kiderül, hogy egy egyszerű dolog, hogy a pandák.
df_resampled = df.resample('M').mean()
késleltetett változó oszlopokat fogunk hozzáadni az adatkészlethez., Hozzunk létre egy másolatot az adatkészletről, hogy ne zavarjuk az eredeti adatkészletet.
df_lagged = df_resampled.copy()
adjon hozzá 12 oszlopot, amelyek mindegyike tartalmazza a TAVG időeltolódott verzióját.
for i in range(1, 13, 1):
df_lagged = df_lagged.shift(i)
nyomtassa ki a lemaradt változók adatkészletének első 15 sorát.,
print(df_lagged.head(15))
Ez kiírja a következő kimenet:
Az első 12 sor tartalmazza NaNs által bevezetett, a shift funkciót. Távolítsuk el ezeket a 12 sort.
for i in range(0, 12, 1):
df_lagged = df_lagged.drop(df_lagged.index)
nyomtassa ki az első néhány sort, hogy megerősítse, hogy a NaNs eltávolításra került.,
print(df_lagged.head())
mielőtt még jobban belenéznénk az adatokba, félretesszük az adatkészlet 20% – át az optimális modell teszteléséhez.
most hozzuk létre a késleltetett értékek összes lehetséges kombinációját. Ehhez létrehozunk egy szótárt, amelyben a kulcsok az 1-12 lag-számok különböző kombinációit tartalmazzák.
ezután az összes generált kombinációt megismételjük. Minden lag kombinációhoz a modell kifejezését a patsy szintaxis segítségével építjük fel., Következő építünk a lineáris regressziós modell, hogy a hacs-kombináció a változók, akkor a vonat a modell a képzés meghatározott adatokat, majd megkérdezzük statsmodels, hogy nekünk az AIC pontszám a modell, majd jegyezze fel a AIC gólt, majd a jelenlegi legjobb modell, ha az aktuális pontszám kevesebb, mint a minimális érték láttam eddig. Mindezt a következő kódrészletben fogjuk megtenni:
végül nyomtassuk ki a legjobb OLSR modell összefoglalóját az értékelési kritériumunk szerint. Ez a modell a legalacsonyabb AIC pontszám.
print(best_olsr_model_results.summary())
Ez kiírja a következő kimenetet., Kiemeltem néhány érdekes terület a kimenet:
vizsgáljuk meg a kiemelt szakaszokat.,
Választott modell paraméterek
Az AIC pontszám alapú modell értékelési stratégia azonosította a modell a következő paraméterekkel:
A másik elmarad,, 3, 4, 7, 8, 9 már elhatározta, hogy nem elég jelentős ahhoz, hogy közösen magyarázza meg a variancia a függő változó TÁTLAG., Például azt látjuk, hogy a TAVG_LAG_7 nincs jelen az optimális modellben, annak ellenére, hogy a korábban látott szórási parcellákból úgy tűnt, hogy jó korreláció van a TAVG és a TAVG_LAG_7 válaszváltozó között. A mulasztás oka lehet, hogy a TAVG_LAG_7-ben szereplő információk nagy részét a TAVG_LAG_6 elfogta, és láthatjuk, hogy a TAVG_LAG_6 szerepel az optimális modellben.,
A modellparaméterek statisztikai jelentősége (a T-teszt)
a második dolog, amit meg kell jegyezni, hogy az optimális modell minden paramétere, a TAVG_LAG_10 kivételével, statisztikailag szignifikáns a Kétfarkú T-teszt 95%-os konfidenciaszintjén. A jelentett p-érték ” t ” pontszámuknál kisebb, mint 0,025, ami a 2 farkú teszt 95%-os konfidencia szintjén a P küszöbérték.,
Közös jelentősége a modell paramétereit (F-próba)
A harmadik dolog megjegyezni, hogy az összes paraméter a modell együttesen jelentős elmagyarázza a variancia a válasz változó TÁTLAG.
Ez látható az F-statisztika 1458. P értéke 1,15 e-272, 95% – os megbízhatósági szinten., Ez a valószínűségi érték annyira hihetetlenül kicsi, hogy nem is kell keresnie az F-eloszlási táblázatot, hogy ellenőrizze, hogy az F-statisztika jelentős-e. A modell határozottan sokkal jobban magyarázza a tavg varianciáját, mint egy csak elfogott modell.
Ha többet szeretne tudni az F-statisztika értelmezéséről, kérjük, olvassa el az F-tesztről szóló cikkemet.
az AIC pontszám és a felszerelt modell maximális Log-valószínűsége
végül vessünk egy pillantást a statsmodels által jelentett 1990.0 AIC-pontszámra, valamint a -986.86 maximális log-valószínűségére.,