implementando a estratégia de regressão usando Python, pandas e statsmodels

importem todos os pacotes necessários.

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

Leia o conjunto de dados em um quadro de dados pandas.

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

o conjunto de dados contém temperaturas médias diárias. Queremos médias mensais. Então vamos passar os dados para um mês. Isto acaba por ser uma coisa simples de se fazer usando pandas.

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

estamos prestes a adicionar colunas variáveis lagged no conjunto de dados., Vamos criar uma cópia do conjunto de dados para que não perturbemos o conjunto de dados original.

df_lagged = df_resampled.copy()

Add 12 columns, each one containing a time-lagged version of TAVG.

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

Print out the first 15 files of the lagged variables data set.,

print(df_lagged.head(15))

Isso mostra a seguinte saída:

O conjunto de dados contendo 12 variáveis defasadas (Imagem de Autor)

Os primeiros 12 linhas contêm os NaNs introduzidas pela mudança de função. Vamos remover estas 12 filas.

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

Print out the first few rows just to confirms that the NaNs have been removed.,

print(df_lagged.head())

agora vamos criar todas as combinações possíveis de valores desfasados. Para isso, vamos criar um dicionário em que as chaves contêm diferentes combinações dos números de lag 1 a 12.

em seguida, vamos iterar sobre todas as combinações geradas. Para cada combinação de lag, vamos construir a expressão do modelo usando a sintaxe patsy., Em seguida, vamos construir o modelo de regressão linear para essa combinação de lag de variáveis, vamos treinar o modelo no conjunto de dados de treinamento, vamos pedir statsmodels para nos dar a pontuação AIC para o modelo, e vamos fazer uma nota da pontuação AIC eo atual “melhor modelo” se a pontuação atual é menor do que o valor mínimo visto até agora. Vamos fazer tudo isso no seguinte pedaço de código:

finalmente, vamos imprimir o resumo do melhor modelo OLSR de acordo com o nosso critério de avaliação. Este é o modelo com a menor pontuação AIC.

print(best_olsr_model_results.summary())

isto imprime a seguinte saída., Eu tenho destacou algumas áreas interessantes na saída:

Modelo de resumo gerado pelo statsmodels OLSResults.resumo () (Imagem por Autor)

vamos inspeccionar as secções realçadas.,

Escolha de parâmetros de modelo

a Nossa AIC pontuação base de avaliação do modelo de estratégia identificou um modelo com os seguintes parâmetros:

Modelo de parâmetros e os respectivos coeficientes de regressão (Imagem de Autor)

O outro gal, 3, 4, 7, 8, 9 foram determinados a não ser significativo o suficiente para, conjuntamente, explicar a variância da variável dependente TAVG., Por exemplo, vemos que TAVG_LAG_7 não está presente no modelo ideal, apesar de os gráficos de dispersão vimos anteriormente, parecia haver uma boa quantidade de correlação entre a variável de resposta TAVG e TAVG_LAG_7. A razão para a omissão pode ser que a maior parte da informação em TAVG_LAG_7 pode ter sido capturada por TAVG_LAG_6, e podemos ver que TAVG_LAG_6 está incluído no modelo ideal.,

a significância Estatística do modelo de parâmetros (teste-t)

A segunda coisa a notar é que todos os parâmetros do modelo ideal, exceto para TAVG_LAG_10, individualmente são estatisticamente significativos a um nível de confiança 95% no bicaudal, teste-t. O valor de p comunicado para a sua pontuação ” t ” é inferior a 0, 025, que é o valor de P limiar a um nível de confiança de 95% no teste de cauda 2.,

O valor de t e o p-valor para os parâmetros de modelo (Imagem de Autor)

significância Conjunta dos parâmetros de modelo (teste F)

A terceira coisa a se notar é que todos os parâmetros do modelo são conjuntamente significativas para explicar a variação da variável de resposta TAVG.

isto pode ser visto a partir da Estatística F 1458. O valor de p é 1,15 e-272 a um nível de confiança de 95%., Este valor de probabilidade é tão incrivelmente pequeno que você nem precisa procurar a tabela de distribuição de F para verificar se a estatística de F é significativa. O modelo é definitivamente muito melhor em explicar a variância em TAVG do que um modelo intercept-only.

estatística F e o seu p-valor., Todos os mdoel parâmetros são conjuntamente significantes (Imagem de Autor)

Para saber mais sobre como interpretar a estatística F, por favor, consulte meu artigo sobre o F-teste.

the AIC score and the Maximized Log-likely of the fitted model

Finally, let’s take a look at the AIC score of 1990.0 reported by statsmodels, and the maximized log-likely of -986.86.,

Maximizada Log-probabilidade e o AIC de pontuação (Imagem de Autor)

podemos ver que o modelo contém 8 parâmetros (7 de tempo variáveis defasadas + interseção). De acordo com a fórmula para a pontuação AIC:

pontuação AIC = 2 * Número de parâmetros -2 * probabilidade log máxima
= 2*8 + 2*986.86 = 1989.72, arredondado para 1990. 0

Que é exactamente o valor comunicado por statmodels.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *