Zusammenfassung zu Prognosemethoden

Dieser Text ist eine Fortsetzung einer Reihe von Artikeln, die einer kurzen Beschreibung der wichtigsten Methoden der Datenanalyse gewidmet sind. Das letzte Mal, als wir Klassifizierungsmethoden behandelt haben, werden wir jetzt Prognosemethoden in Betracht ziehen. Unter Prognose verstehen wir die Suche nach einer bestimmten Zahl, die voraussichtlich fĂŒr eine neue Beobachtung oder fĂŒr zukĂŒnftige ZeitrĂ€ume erhalten wird. Der Artikel listet die Namen der Methoden, ihre kurze Beschreibung und ein Python-Skript auf. Ein Abstract kann vor einem Interview, in einem Wettbewerb oder beim Starten eines neuen Projekts nĂŒtzlich sein. Es wird davon ausgegangen, dass das Publikum diese Methoden kennt, sie jedoch schnell im Speicher aktualisieren muss.


Regression der kleinsten Quadrate . Es wird versucht, die AbhÀngigkeit eines Faktors von einem anderen in Form einer Gleichung darzustellen. Die Koeffizienten werden durch Minimieren der Verlustfunktion (Fehler) geschÀtzt.

∑i=1n(yi−(axi+b))2→min


Wenn Sie diese Gleichung lösen, können Sie die geschÀtzten Parameter finden:

a=n∑i=0nxiyi−∑i=0nxi∑i=0nyin∑i=0nxi2−(∑i=0nxi)2


b=∑i=0nyi−a∑i=0nxin


Grafische Darstellung:



Wenn die Daten Gauß-Markov-Eigenschaften haben:

  • E(Δi)=0- Die mathematische Erwartung eines Fehlers ist 0
  • σ2(Δi)=const- HomoskedastizitĂ€t
  • cov(Δi,Δj)=0,i≠j- Mangel an MultikollinearitĂ€t
  • xi- ermittelter Wert
  • Δ∌N(0,σ2)- Der Fehler ist normal verteilt

Nach dem Gauß-Markov-Theorem haben SchĂ€tzungen dann die folgenden Eigenschaften:

  • LinearitĂ€t - Bei einer linearen Transformation des Vektors Y Ă€ndern sich die SchĂ€tzungen auch linear.
  • Unvoreingenommen - mit zunehmender StichprobengrĂ¶ĂŸe tendiert die mathematische Erwartung zum wahren Wert.
  • Konsistenz - Mit zunehmender StichprobengrĂ¶ĂŸe tendieren SchĂ€tzungen zu ihrem wahren Wert.
  • Effizienz - SchĂ€tzungen weisen die geringste Varianz auf.
  • NormalitĂ€t - Noten sind normal verteilt.

 #imports
import statsmodels.api as sm

#model fit
Y = [1,3,4,5,2,3,4]
X = range(1,8)
X = sm.add_constant(X)
model = sm.OLS(Y,X)
results = model.fit()

#result
print(results.summary())
results.predict(X)


- Generalisierte GLS . Es wird verwendet, wenn die Gauß-Markov-Bedingungen fĂŒr die HomoskedastizitĂ€t (konstante Dispersion) von Resten und die Nichtkorrelation von Resten untereinander nicht erfĂŒllt sind. Das Ziel von GLS ist es, die Werte der Kovarianzmatrix der Residuen durch Anpassen der Berechnung der Parameter der Regressionsgleichung zu berĂŒcksichtigen. Matrix der geschĂ€tzten Parameter:

a∗=(XTΩ−1X)−1XTΩ−1Y

Dabei ist Ω die Kovarianzmatrix der Residuen. Beachten Sie, dass wir fĂŒr Ω = 1 die ĂŒblichen kleinsten Quadrate erhalten

 #imports
import statsmodels.api as sm
from scipy.linalg import toeplitz

#model fit
data = sm.datasets.longley.load(as_pandas=False)
data.exog = sm.add_constant(data.exog)
ols_resid = sm.OLS(data.endog, data.exog).fit().resid
res_fit = sm.OLS(ols_resid[1:], ols_resid[:-1]).fit()
rho = res_fit.params
order = toeplitz(np.arange(16))
sigma = rho**order
gls_model = sm.GLS(data.endog, data.exog, sigma=sigma)
gls_results = gls_model.fit()

#result
print(gls_results.summary())
gls_results.predict

- wls. , ( ) , , .


 #imports
import statsmodels.api as sm

#model fit
Y = [1,3,4,5,2,3,4]
X = range(1,8)
X = sm.add_constant(X)
wls_model = sm.WLS(Y,X, weights=list(range(1,8)))
results = wls_model.fit()

#result
print(results.summary())
results.predict

- tsls. wls, , , , wls. .


 #imports
from linearmodels import IV2SLS, IVLIML, IVGMM, IVGMMCUE
from linearmodels.datasets import meps
from statsmodels.api import OLS, add_constant

#model fit
data = meps.load()
data = data.dropna()
controls = ['totchr', 'female', 'age', 'linc','blhisp']
instruments = ['ssiratio', 'lowincome', 'multlc', 'firmsz']
data['const'] = 1
controls = ['const'] + controls
ivolsmod = IV2SLS(data.ldrugexp, data[['hi_empunion'] + controls], None, None)
res_ols = ivolsmod.fit()

#result
print(res_ols)
print(res_ols.predict)

-ARIMA. . Auto-regression ( Y ) integrated ( — , ) moving average ( ).

 #imports
from pandas import read_csv
from pandas import datetime
from pandas import DataFrame
from statsmodels.tsa.arima_model import ARIMA
from matplotlib import pyplot

#model fit
def parser(x):
	return datetime.strptime('190'+x, '%Y-%m')

series = read_csv('shampoo-sales.csv', header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser)
model = ARIMA(series, order=(5,1,0))
model_fit = model.fit(disp=0)

#result
print(model_fit.summary())
model_fit.forecast()

- GARCH . Allgemeine autoregression bedingte Heteroskedastik - wird verwendet, wenn in der Zeitreihe HeteroskedastizitÀt vorliegt.


 #imports
import pyflux as pf
import pandas as pd
from pandas_datareader import DataReader
from datetime import datetime

#model fit
jpm = DataReader('JPM',  'yahoo', datetime(2006,1,1), datetime(2016,3,10))
returns = pd.DataFrame(np.diff(np.log(jpm['Adj Close'].values)))
returns.index = jpm.index.values[1:jpm.index.values.shape[0]]
returns.columns = ['JPM Returns']

#result
model = pf.GARCH(returns,p=1,q=1)
x = model.fit()
x.summary()

Wenn Sie eine wichtige Methode verpasst haben, schreiben Sie bitte in den Kommentaren darĂŒber und der Artikel wird ergĂ€nzt. Vielen Dank fĂŒr Ihre Aufmerksamkeit.


All Articles