- #1
member 428835
Hi PF!
When I execute the code below:
I get an error after many iterations that says:
Do you know why this error is being thrown? I know the code below is messy, but this is the simplest I could make it to produce the error.
When I execute the code below:
Python:
import numpy as np
from scipy.stats import t
import scipy.optimize as optimizeglobal data
data = np.random.normal(loc=50, scale=1, size=(2400, 1)).flatten()
def L(F):
M = 250
lmda = 0.97
sig_0 = F[0]
for i in range(1, 12):
sig_0 += F[i]
number_of_days = len(data)
sig = np.ones(number_of_days)
for day in range(M, number_of_days):
sig[day] = lmda * sig[day - 1] + (1 - lmda) * np.square(data[day - 1]) / F[day % 12] * sig_0
data_days = np.delete(data, range(M - 1), 0)
L_mat = np.log(t.pdf(data_days, df=3))
L_sum = L_mat.sum(axis=0)
mu = F[12]
Reg = (F[11] - 2 * F[0] + F[1]) ** 2 + (F[10] - 2 * F[11] + F[0]) ** 2
for i in range(1, 11):
Reg += (F[i - 1] - 2 * F[i] + F[i + 1]) ** 2
Reg *= -1 / sig_0 ** 2
Reg *= -mu / sig_0 ** 2
Reg += 12 / 2 * np.log(mu)
print(F)
final_L = -(L_sum + Reg)
return final_L
bnds = [(None, None), (None, None), (None, None), (None, None), (None, None), (None, None), (None, None),
(None, None), (None, None), (None, None), (None, None), (None, None), (2, 100)]
IC = 3*np.ones(13)
result = optimize.minimize(L, method='TNC', bounds=bnds, x0=IC)
print(result.F)
I get an error after many iterations that says:
Code:
Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/scipy/optimize/_optimize.py", line 124, in __getattr__ return self[name]KeyError: 'F'The above exception was the direct cause of the following exception:Traceback (most recent call last): File "/Users/joshmccraney/Desktop/ewma/test_seas_ewma.py", line 45, in <module> print(result.F) File "/usr/local/lib/python3.9/site-packages/scipy/optimize/_optimize.py", line 126, in __getattr__ raise AttributeError(name) from eAttributeError: F