implementacja strategii regresji przy użyciu Pythona, pand i statsmodeli

importuje wszystkie wymagane pakiety.

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

odczyt zestawu danych do ramki danych pandy.

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

zestaw danych zawiera średnie dzienne temperatury. Chcemy średnich miesięcznych. Zwińmy dane do poziomu miesiąca. Okazuje się to być prostą rzeczą do zrobienia przy użyciu pand.

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

za chwilę dodamy do zbioru danych kolumny zmiennych opóźnionych., Stwórzmy kopię zbioru danych tak, aby nie zakłócać oryginalnego zbioru danych.

df_lagged = df_resampled.copy()

Dodaj 12 kolumn, z których każda zawiera opóźnioną wersję tavg.

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

wypisuje pierwsze 15 wierszy zbioru danych zmiennych opóźnionych.,

print(df_lagged.head(15))

wyświetla następujące wyjście:

zestaw danych zawierający 12 zmiennych opóźnionych (obraz według autora)

pierwsze 12 wierszy zawiera Nan wprowadzone przez funkcję Shift. Usuńmy te 12 rzędów.

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

wypisuje kilka pierwszych wierszy, aby potwierdzić, że Nan zostały usunięte.,

print(df_lagged.head())

zanim jeszcze zajrzymy do danych, odłożymy na bok 20% zestawu danych do przetestowania optymalnego modelu.

teraz stwórzmy wszystkie możliwe kombinacje opóźnionych wartości. W tym celu utworzymy słownik, w którym klucze zawierają różne kombinacje liczb opóźnienia od 1 do 12.

następnie powtórzymy Wszystkie wygenerowane kombinacje. Dla każdej kombinacji lag zbudujemy wyrażenie modelu używając składni patsy., Następnie zbudujemy model regresji liniowej dla tej kombinacji zmiennych lag, wytrenujemy model na zestawie danych treningowych, poprosimy modele statsmodels o podanie wyniku AIC dla modelu, a my zanotujemy wynik AIC i aktualny „najlepszy model”, Jeśli bieżący wynik jest mniejszy niż minimalna wartość widziana do tej pory. Zrobimy to w poniższym fragmencie kodu:

na koniec wydrukujmy podsumowanie najlepszego modelu OLSR zgodnie z naszym kryterium oceny. Jest to model z najniższym wynikiem AIC.

print(best_olsr_model_results.summary())

wyświetla następujące wyjście., Wyróżniłem kilka interesujących obszarów na wyjściu:

podsumowanie modelu generowane przez statsmodels olsresults.summary () (Image by Author)

przejrzyjmy podświetlone sekcje.,

wybór parametrów modelu

nasza strategia oceny modelu oparta na wynikach AIC zidentyfikowała model z następującymi parametrami:

parametry modelu i ich współczynniki regresji (obraz według autora)

Pozostałe LGD, 3, 4, 7, 8, 9 ustalono, że nie są wystarczająco znaczące, aby wspólnie wyjaśnić wariancję zmiennej zależnej TAVG., Na przykład widzimy, że TAVG_LAG_7 nie występuje w modelu optymalnym, mimo że z Wykresów punktowych, które widzieliśmy wcześniej, wydawało się, że istnieje dobra korelacja między zmienną odpowiedzi TAVG i TAVG_LAG_7. Powodem pominięcia może być to, że większość informacji w TAVG_LAG_7 mogła zostać przechwycona przez TAVG_LAG_6 i widzimy, że TAVG_LAG_6 jest uwzględniona w modelu optymalnym.,

statystyczna istotność parametrów modelu (t-test)

drugą rzeczą, na którą należy zwrócić uwagę, jest to, że wszystkie parametry modelu optymalnego, z wyjątkiem TAVG_LAG_10, są indywidualnie istotne statystycznie przy 95% poziomie ufności w dwugłowicowym teście T. Zgłaszana wartość p dla ich wyniku ” t ” jest mniejsza niż 0,025, co jest wartością progową p przy 95% poziomie ufności w teście 2-tailed.,

wartość t i wartość p parametrów modelu (zdjęcie autora)

wspólne znaczenie parametrów modelu (Test F)

trzecią rzeczą, którą należy zauważyć, jest to, że wszystkie parametry modelu są wspólnie istotne w wyjaśnianiu wariancji w zmiennej odpowiedzi tavg.

To widać z F-1458. Jego wartość p wynosi 1,15 e-272 przy 95% poziomie ufności., Ta wartość prawdopodobieństwa jest tak niewiarygodnie mała, że nie trzeba nawet sprawdzać tabeli rozkładu F, aby sprawdzić, czy statystyka F jest znacząca. Model zdecydowanie lepiej wyjaśnia wariancję w TAVG niż model tylko przechwytywania.

f-statystyka i jej wartość p., Wszystkie parametry mdoel są łącznie znaczące (obraz według autora)

aby dowiedzieć się więcej o interpretacji statystyk F, zapoznaj się z moim artykułem na temat testu F.

wynik AIC i zmaksymalizowane prawdopodobieństwo logowania dopasowanego modelu

na koniec spójrzmy na wynik AIC 1990.0 zgłaszany przez statsmodels i zmaksymalizowane prawdopodobieństwo logowania wynoszące -986.86.,

utor)

widzimy, że model zawiera 8 parametrów (7 zmiennych opóźnionych w czasie + przechwycenie). Tak więc zgodnie ze wzorem dla wyniku AIC:

wynik AIC = 2*Liczba parametrów -2* maksymalne prawdopodobieństwo logowania
= 2*8 + 2*986.86 = 1989.72, zaokrąglony do 1990 roku. 0

która jest dokładnie wartością zgłaszaną przez statmodels.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *