本文整理汇总了Python中statsmodels.tsa.arima_process.ArmaProcess类的典型用法代码示例。如果您正苦于以下问题:Python ArmaProcess类的具体用法?Python ArmaProcess怎么用?Python ArmaProcess使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ArmaProcess类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_generate_sample
def test_generate_sample(self):
process = ArmaProcess.from_coeffs([0.9])
np.random.seed(12345)
sample = process.generate_sample()
np.random.seed(12345)
expected = np.random.randn(100)
for i in range(1, 100):
expected[i] = 0.9 * expected[i - 1] + expected[i]
assert_almost_equal(sample, expected)
process = ArmaProcess.from_coeffs([1.6, -0.9])
np.random.seed(12345)
sample = process.generate_sample()
np.random.seed(12345)
expected = np.random.randn(100)
expected[1] = 1.6 * expected[0] + expected[1]
for i in range(2, 100):
expected[i] = 1.6 * expected[i - 1] - 0.9 * expected[i - 2] + expected[i]
assert_almost_equal(sample, expected)
process = ArmaProcess.from_coeffs([1.6, -0.9])
np.random.seed(12345)
sample = process.generate_sample(burnin=100)
np.random.seed(12345)
expected = np.random.randn(200)
expected[1] = 1.6 * expected[0] + expected[1]
for i in range(2, 200):
expected[i] = 1.6 * expected[i - 1] - 0.9 * expected[i - 2] + expected[i]
assert_almost_equal(sample, expected[100:])
np.random.seed(12345)
sample = process.generate_sample(nsample=(100,5))
assert_equal(sample.shape, (100,5))
示例2: test_isstationary
def test_isstationary(self):
process1 = ArmaProcess.from_coeffs([1.1])
assert_equal(process1.isstationary, False)
process1 = ArmaProcess.from_coeffs([1.8, -0.9])
assert_equal(process1.isstationary, True)
process1 = ArmaProcess.from_coeffs([1.5, -0.5])
print(np.abs(process1.arroots))
assert_equal(process1.isstationary, False)
示例3: test_invertroots
def test_invertroots(self):
process1 = ArmaProcess.from_coeffs([], [2.5])
process2 = process1.invertroots(True)
assert_almost_equal(process2.ma, np.array([1.0, 0.4]))
process1 = ArmaProcess.from_coeffs([], [0.4])
process2 = process1.invertroots(True)
assert_almost_equal(process2.ma, np.array([1.0, 0.4]))
process1 = ArmaProcess.from_coeffs([], [2.5])
roots, invertable = process1.invertroots(False)
assert_equal(invertable, False)
assert_almost_equal(roots, np.array([1, 0.4]))
示例4: test_from_model
def test_from_model(self):
process = ArmaProcess([1, -.8], [1, .3], 1000)
t = 1000
rs = np.random.RandomState(12345)
y = process.generate_sample(t, burnin=100, distrvs=rs.standard_normal)
res = ARMA(y, (1, 1)).fit(disp=False)
process_model = ArmaProcess.from_estimation(res)
process_coef = ArmaProcess.from_coeffs(res.arparams, res.maparams, t)
assert_equal(process_model.arcoefs, process_coef.arcoefs)
assert_equal(process_model.macoefs, process_coef.macoefs)
assert_equal(process_model.nobs, process_coef.nobs)
assert_equal(process_model.isinvertible, process_coef.isinvertible)
assert_equal(process_model.isstationary, process_coef.isstationary)
示例5: test_acf
def test_acf(self):
process1 = ArmaProcess.from_coeffs([.9])
acf = process1.acf(10)
expected = np.array(0.9) ** np.arange(10.0)
assert_array_almost_equal(acf, expected)
acf = process1.acf()
assert_(acf.shape[0] == process1.nobs)
示例6: test_arma_acovf_persistent
def test_arma_acovf_persistent():
# Test arma_acovf in case where there is a near-unit root.
# .999 is high enough to trigger the "while ir[-1] > 5*1e-5:" clause,
# but not high enough to trigger the "nobs_ir > 50000" clause.
ar = np.array([1, -.9995])
ma = np.array([1])
process = ArmaProcess(ar, ma)
res = process.acovf(10)
# Theoretical variance sig2 given by:
# sig2 = .9995**2 * sig2 + 1
sig2 = 1/(1-.9995**2)
corrs = .9995**np.arange(10)
expected = sig2*corrs
assert_equal(res.ndim, 1)
assert_allclose(res, expected, atol=1e-6)
示例7: test_pacf
def test_pacf(self):
process1 = ArmaProcess.from_coeffs([.9])
pacf = process1.pacf(10)
expected = np.array([1, 0.9] + [0] * 8)
assert_array_almost_equal(pacf, expected)
pacf = process1.pacf()
assert_(pacf.shape[0] == process1.nobs)
示例8: test_str_repr
def test_str_repr(self):
process1 = ArmaProcess.from_coeffs([.9], [.2])
out = process1.__str__()
print(out)
assert_(out.find('AR: [1.0, -0.9]') != -1)
assert_(out.find('MA: [1.0, 0.2]') != -1)
out = process1.__repr__()
assert_(out.find('nobs=100') != -1)
assert_(out.find('at ' + str(hex(id(process1)))) != -1)
示例9: test_process_multiplication
def test_process_multiplication(self):
process1 = ArmaProcess.from_coeffs([.9])
process2 = ArmaProcess.from_coeffs([.7])
process3 = process1 * process2
assert_equal(process3.arcoefs, np.array([1.6, -0.7 * 0.9]))
assert_equal(process3.macoefs, np.array([]))
process1 = ArmaProcess.from_coeffs([.9], [.2])
process2 = ArmaProcess.from_coeffs([.7])
process3 = process1 * process2
assert_equal(process3.arcoefs, np.array([1.6, -0.7 * 0.9]))
assert_equal(process3.macoefs, np.array([0.2]))
process1 = ArmaProcess.from_coeffs([.9], [.2])
process2 = process1 * (np.array([1.0, -0.7]), np.array([1.0]))
assert_equal(process2.arcoefs, np.array([1.6, -0.7 * 0.9]))
assert_raises(TypeError, process1.__mul__, [3])
示例10: test_from_coeff
def test_from_coeff(self):
ar = [1.8, -0.9]
ma = [0.3]
process = ArmaProcess.from_coeffs(np.array(ar), np.array(ma))
ar.insert(0, -1)
ma.insert(0, 1)
ar_p = -1 * np.array(ar)
ma_p = ma
process_direct = ArmaProcess(ar_p, ma_p)
assert_equal(process.arcoefs, process_direct.arcoefs)
assert_equal(process.macoefs, process_direct.macoefs)
assert_equal(process.nobs, process_direct.nobs)
assert_equal(process.maroots, process_direct.maroots)
assert_equal(process.arroots, process_direct.arroots)
assert_equal(process.isinvertible, process_direct.isinvertible)
assert_equal(process.isstationary, process_direct.isstationary)
示例11: test_periodogram
def test_periodogram(self):
process = ArmaProcess()
pg = process.periodogram()
assert_almost_equal(pg[0], np.linspace(0,np.pi,100,False))
assert_almost_equal(pg[1], np.sqrt(2 / np.pi) / 2 * np.ones(100))
示例12: test_impulse_response
def test_impulse_response(self):
process = ArmaProcess.from_coeffs([0.9])
ir = process.impulse_response(10)
assert_almost_equal(ir, 0.9 ** np.arange(10))
示例13: ARMA
# ### Exercise: Can you obtain a better fit for the Sunspots model? (Hint:
# sm.tsa.AR has a method select_order)
# ### Simulated ARMA(4,1): Model Identification is Difficult
from statsmodels.tsa.arima_process import ArmaProcess
np.random.seed(1234)
# include zero-th lag
arparams = np.array([1, .75, -.65, -.55, .9])
maparams = np.array([1, .65])
# Let's make sure this model is estimable.
arma_t = ArmaProcess(arparams, maparams)
arma_t.isinvertible
arma_t.isstationary
# * What does this mean?
fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(111)
ax.plot(arma_t.generate_sample(nsample=50))
arparams = np.array([1, .35, -.15, .55, .1])
maparams = np.array([1, .65])
arma_t = ArmaProcess(arparams, maparams)
arma_t.isstationary
示例14: MA
,
0.8
,
0.8
2
,
0.8
3
,
…
Simulate 5000 observations of the MA(30) model
Plot the ACF of the simulated series
'''
# import the modules for simulating data and plotting the ACF
from statsmodels.tsa.arima_process import ArmaProcess
from statsmodels.graphics.tsaplots import plot_acf
# Build a list MA parameters
ma = [0.8**i for i in range(30)]
# Simulate the MA(30) model
ar = np.array([1])
AR_object = ArmaProcess(ar, ma)
simulated_data = AR_object.generate_sample(nsample=5000)
# Plot the ACF
plot_acf(simulated_data, lags=30)
plt.show()
示例15: test_arma2ar
def test_arma2ar(self):
process1 = ArmaProcess.from_coeffs([], [0.8])
vals = process1.arma2ar(100)
assert_almost_equal(vals, (-0.8) ** np.arange(100.0))