[PYTHON] Leistungsfähigkeit von Vorhersagemethoden in der Zeitreihendatenanalyse Halboptimierung (SARIMA) [Memo]

Überblick

Bei der Analyse bestimmter Leistungsdaten wurde ich gebeten, "den Strombedarf mithilfe von AR-, MA-, ARIMA- und SARIMA-Modellen vorherzusagen". Da es zum ersten Mal die erste Vorhersagemethode in Python war, habe ich mich entschlossen, nach Parametern durch Runden zu suchen.

Die Parameter sind order = (p, d, q) und saisonale_order = (p, d, q), und wir haben uns entschieden, den Parameter mit dem kleinsten aic zu übernehmen.

Quelle

Ich habe das, was ich im Stackoverflow gefunden habe, manipuliert und eingebaut. Als ich die Quelle aufnahm, war s 12. Waren es monatliche Daten? Dieses Mal ist s 24, was der kleinste aic ist, da die Leistungsdaten für eine Woche aus den Trainingsdaten für einen Monat vorhergesagt werden. Warum···


import numpy as np
import pandas as pd
import statsmodels.api as sm
import statsmodels
import time

p = d = q = range(0,3)

import itertools

pdq = list(itertools.product(p, d, q))

seasonal_pdq = [(x[0], x[1], x[2], 12) for x in list(itertools.product(p, d, q))]

y=TargetData

minaic = 999999
minparam = 0

starttime = time.time()
for param in pdq:
    for param_seasonal in seasonal_pdq:
        try:
            print('Beginnen Sie mit der Montage')
            mod = sm.tsa.statespace.SARIMAX(y,
                                            order=param,
                                            seasonal_order=param_seasonal,
                                            enforce_stationarity=False,
                                            enforce_invertibility=False)

            results = mod.fit()
        
            print('ARIMA{}x{}12 - AIC:{}'.format(param, param_seasonal, results.aic))

            if minaic > results.aic: 
                minaic = results.aic
                minparam = param
                minparams = param_seasonal
            print('aic Mindestwert{} - aic Mindestwertのp,d,q{} - aic Mindestwertのp,d,q,s{}'.format(minaic, minparam,minparams))
            
        except:
            continue
        
duration = time.time() -starttime
print('p,d,Ende der Schätzung von q\n Messzeit:{}'.format(duration))

f = open('results_param(SARIMA).txt','w')
f.write('aic Mindestwert{} - aic Mindestwertのp,d,q{} - aic Mindestwertのp,d,q,s{}'.format(minaic, minparam,minparams))
f.close()

Aufgabe

――Ich weiß nicht, ob ich mit Gewalt optimieren konnte

Recommended Posts

Leistungsfähigkeit von Vorhersagemethoden in der Zeitreihendatenanalyse Halboptimierung (SARIMA) [Memo]
Zeitreihenanalyse 3 Vorverarbeitung von Zeitreihendaten
Zeitreihenanalyse 4 Konstruktion des SARIMA-Modells
Glättung von Zeitreihen und Wellenformdaten 3 Methoden (Glättung)
Python: Zeitreihenanalyse: Vorverarbeitung von Zeitreihendaten
Was Sie bei der Zeitreihendatenanalyse (einschließlich Reflexion) nicht tun sollten
Differenzierung von Zeitreihendaten (diskret)
Vergleich der Vorhersage von Zeitreihendaten zwischen dem SARIMA-Modell und dem Prophet-Modell
Vorhersage von Zeitreihendaten durch Simplex-Projektion
Konvertierung von Zeitdaten in 25-Uhr-Notation
Veranschaulichen Sie sofort die vorherrschende Periode in Zeitreihendaten mithilfe der Spektralanalyse
Zeichnen Sie die CSV von Zeitreihendaten mit einem Unixtime-Wert in Python (matplotlib).
Python: Zeitreihenanalyse: Erstellen eines SARIMA-Modells
Holen Sie sich mit Python Zeitreihendaten von k-db.com
Erfassung von Zeitreihendaten (täglich) von Aktienkursen
Zeigen Sie Details zu Zeitreihendaten mit Remotte an
Lesen von Zeitreihendaten in PyTorch
Aufgezeichnete Umgebung für die Datenanalyse mit Python
Zusammenfassung der statistischen Datenanalysemethoden mit Python, die im Geschäftsleben verwendet werden können
[Einführung in die Elementzerlegung] Lassen Sie uns Zeitreihenanalysemethoden in R und Python arrange anordnen
Abnormalitätserkennung von Zeitreihendaten durch LSTM (Keras)
Liste des Python-Codes, der bei der Big-Data-Analyse verwendet wird
Python: Zeitreihenanalyse
RNN_LSTM1 Zeitreihenanalyse
Zeitreihenanalyse 1 Grundlagen
"Zeitreihenanalyse von Wirtschafts- und Finanzdaten messen" Das Problem am Ende des Kapitels mit Python lösen
So berechnen Sie die Summe oder den Durchschnitt von Zeitreihen-CSV-Daten in einem Augenblick
[In kürzester Zeit verstehen] Python-Grundlagen für die Datenanalyse
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
Eine Geschichte über das Clustering von Zeitreihendaten des Austauschs
Zeitreihenanalyse Teil 4 VAR
Zeitreihenanalyse Teil 3 Prognose
[Python] Zeichnen Sie Zeitreihendaten
Zeitreihenanalyse Teil 1 Autokorrelation
So extrahieren Sie Funktionen von Zeitreihendaten mit PySpark Basics
Eine einfache Datenanalyse von Bitcoin, die von CoinMetrics in Python bereitgestellt wird
<Pandas> Umgang mit Zeitreihendaten in der Pivot-Tabelle