Я хочу решить эту функцию.
Я хочу оценить параметр в модели вывода.Функция логарифмического преобразования правдоподобия аналогична приложенной фотографии.Оцениваемые параметры (α, δ, μ, εB, εS).Я кодирую 3 шага для утверждения, чтобы установить начальное значение.Я пытаюсь использовать statsmodel или scipy.minimize, чтобы оценить параметр, применяя оценку максимального правдоподобия.Я не знаю, какие параметры поставить в деталях.Дайте мне идею ..
import timeimport random
import sqlite3
from openpyxl import Workbook
import numpy as np
import scipy.optimize
def cal_likelihood(mean_selling, mean_buying, selling_array, buying_array):
final_param = []
for ini_a in [0.1, 0.3, 0.5, 0.7, 0.9]:
for ini_h in [0.1, 0.3, 0.5, 0.7, 0.9]:
for z in [0.1, 0.3, 0.5, 0.7, 0.9]:
ini_eB = z * mean_buying
cal_u = (mean_buying - ini_eB) / (ini_a * (1-ini_h))
ini_eS = mean_selling - (ini_a * ini_h * cal_u)
i = 0
for i in range(0, len(buying_array)):
k1 = ((-1.0)*(cal_u) - buying_array[i] * scipy.log10(1 + (cal_u/ini_eB)))
k2 = ((-1.0)*(cal_u) - selling_array[i] * scipy.log10(1 + (cal_u/ini_eS)))
k3 = (-1) * buying_array[i] * scipy.log10(1 + (cal_u/ini_eB)) - selling_array[i] * scipy.log10(1 + (cal_u/ini_eS))
kmi = max(k1, k2, k3)
ini_L = ini_a * ini_h * scipy.exp(k1 - kmi) + ini_a * (1 - ini_h) * scipy.exp(k2 - kmi) + (1 - ini_a) * scipy.exp(k3 - kmi) + (buying_array[i] * scipy.log10(ini_eB + ini_h) + selling_array[i] * scipy.log10(ini_eS + ini_h) - (ini_eB + ini_eS) + kmi)