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.
Wenn Sie diese Gleichung lösen, können Sie die geschÀtzten Parameter finden:
Grafische Darstellung:
Wenn die Daten GauĂ-Markov-Eigenschaften haben:- - Die mathematische Erwartung eines Fehlers ist 0
- - HomoskedastizitÀt
- - Mangel an MultikollinearitÀt
- - ermittelter Wert
- - 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.
import statsmodels.api as sm
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()
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:
Dabei ist Ω die Kovarianzmatrix der Residuen. Beachten Sie, dass wir fĂŒr Ω = 1 die ĂŒblichen kleinsten Quadrate erhalten
import statsmodels.api as sm
from scipy.linalg import toeplitz
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()
print(gls_results.summary())
gls_results.predict
- wls. , ( ) , , .
import statsmodels.api as sm
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()
print(results.summary())
results.predict
- tsls. wls, , , , wls. .
from linearmodels import IV2SLS, IVLIML, IVGMM, IVGMMCUE
from linearmodels.datasets import meps
from statsmodels.api import OLS, add_constant
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()
print(res_ols)
print(res_ols.predict)
-ARIMA. . Auto-regression ( Y ) integrated ( â , ) moving average ( ).
from pandas import read_csv
from pandas import datetime
from pandas import DataFrame
from statsmodels.tsa.arima_model import ARIMA
from matplotlib import pyplot
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)
print(model_fit.summary())
model_fit.forecast()
- GARCH . Allgemeine autoregression bedingte Heteroskedastik - wird verwendet, wenn in der Zeitreihe HeteroskedastizitÀt vorliegt.
import pyflux as pf
import pandas as pd
from pandas_datareader import DataReader
from datetime import datetime
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']
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.