Abstrak tentang metode peramalan

Teks ini merupakan kelanjutan dari serangkaian artikel yang ditujukan untuk deskripsi singkat tentang metode utama analisis data. The terakhir kali kita bahas metode klasifikasi, sekarang kita akan mempertimbangkan metode peramalan. Dengan memperkirakan, kami bermaksud mencari nomor tertentu yang diharapkan akan diperoleh untuk pengamatan baru atau untuk periode mendatang. Artikel ini mencantumkan nama metode, deskripsi singkat dan skrip Python. Abstrak dapat berguna sebelum wawancara, dalam kompetisi, atau ketika memulai proyek baru. Diasumsikan bahwa audiens mengetahui metode ini, tetapi memiliki kebutuhan untuk dengan cepat menyegarkan mereka dalam memori.


Regresi kuadrat terkecil . Suatu usaha dilakukan untuk menyajikan ketergantungan satu faktor pada faktor lainnya dalam bentuk persamaan. Koefisien diperkirakan dengan meminimalkan fungsi kerugian (kesalahan).

āˆ‘i=1n(yiāˆ’(axi+b))2ā†’min


Jika Anda menyelesaikan persamaan ini, Anda dapat menemukan taksiran parameter:

a=nāˆ‘i=0nxiyiāˆ’āˆ‘i=0nxiāˆ‘i=0nyināˆ‘i=0nxi2āˆ’(āˆ‘i=0nxi)2


b=āˆ‘i=0nyiāˆ’aāˆ‘i=0nxin


Representasi grafis:



Jika data memiliki properti Gauss-Markov:

  • E(Īµi)=0- ekspektasi matematis dari kesalahan adalah 0
  • Ļƒ2(Īµi)=const- homoskedastisitas
  • cov(Īµi,Īµj)=0,iā‰ j- kurangnya multikolinearitas
  • xi- nilai yang ditentukan
  • Īµāˆ¼N(0,Ļƒ2)- kesalahan terdistribusi secara normal

Kemudian, dengan teorema Gauss-Markov, estimasi akan memiliki properti berikut:

  • Linearitas - dengan transformasi linear dari vektor Y, estimasi juga berubah secara linear.
  • Tidak dapat disesuaikan - dengan ukuran sampel yang meningkat, ekspektasi matematis cenderung ke nilai sebenarnya.
  • Konsistensi - saat ukuran sampel meningkat, perkiraan cenderung ke nilai sebenarnya.
  • Efisiensi - estimasi memiliki varian yang paling sedikit.
  • Normalitas - nilai didistribusikan secara normal.

 #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)


- GLS Umum . Ini digunakan ketika kondisi Gauss-Markov pada homoskedastisitas (dispersi konstan) residu dan non-korelasi residu satu sama lain tidak puas. Tujuan GLS adalah untuk memperhitungkan nilai-nilai matriks kovarians residual dengan menyesuaikan perhitungan parameter dari persamaan regresi. Matriks estimasi parameter:

aāˆ—=(XTĪ©āˆ’1X)āˆ’1XTĪ©āˆ’1Y

di mana Ī© adalah matriks kovarians residual. Perhatikan bahwa untuk Ī© = 1 kita mendapatkan kuadrat terkecil yang biasa

 #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 . General autoregression conditional heteroscedastic - digunakan ketika ada heteroskedasticity dalam deret waktu.


 #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()

Jika Anda melewatkan metode penting, silakan tulis tentang hal itu di komentar dan artikel akan ditambahkan. Terimakasih atas perhatiannya.


All Articles