Я новичок в Python и просто набросал, чтобы узнать язык. По сути, я хотел создать случайные блуждания и проанализировать их. Однако мне не удалось составить список подходящих объектов с разными моделями ARMA, подходящими для разных реализаций случайных блужданий.
import numpy as np
import matplotlib.pyplot as plt
import statsmodels.api as sm
def randwalk(N,sigma):
k=1
R=np.zeros(N)
while(k<N):
R[k]=R[k-1]+np.random.randn(1)*sigma
k+=1
return R
m=3
N=100
R1=np.zeros((N,m))
for k in range(m):
R1[:,k]=randwalk(N,0.1)
plt.plot(range(N),(R1))
plt.show()
ll= [(2,0),(2,0)]
fit=[]
for kk in range(len(ll)):
fit[kk]= [sm.tsa.ARMA(R1[:,ii], order=ll[kk]).fit() for ii in range(m)]
Ни fit[kk]
, ни fit[kk][:]
не работают. Я просмотрел создание списка объектов в Python и Вложенные списки Python
Позже ll[1]
будет другим, например. (2,1)
. sm.tsa.ARMA
работает, если вы запускаете тело цикла с помощью kk=0
"вручную".
В конце концов, я хотел бы получить доступ к значениям fit[:][:].bic
.
Мне очень жаль, я чувствую, что это основной вопрос синтаксиса...
Я использую Canopy на Windows 7.
Изменить: Кроме того,
ll= [(2,0),(2,0)]
fit=[]
for kk in range(len(ll)):
fit.append([sm.tsa.ARMA(R1[:,ii], order=ll[kk]).fit() for ii in range(m)])
не работает.