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:

meghatározott adatokat tartalmazó 12 késleltetett változók (a Kép a Szerző)

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:

Modell összefoglaló által generált statsmodels OLSResults.összefoglaló () (a szerző képe)

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:

Modell paraméterek, valamint a regressziós együtthatók (a Kép a Szerző)

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.,

A t érték p-érték a modell paraméterei (a Kép a Szerző)

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.

F-statisztika és p-értéke., Minden mdoel paraméter együttesen jelentős (kép szerző)

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.,

maximális Log-valószínűség és az AIC pontszám (kép szerző szerint)

láthatjuk, hogy a modell 8 paramétert tartalmaz (7 időeltolódott változó + elfogás). Tehát az AIC pontszám képlete szerint:

AIC score = 2 * paraméterek száma -2 * maximális log valószínűség
= 2*8 + 2*986.86 = 1989.72, kerekítve 1990. 0

ami pontosan a statmodels által jelentett érték.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük