python中的极大似然估计

2024-06-02 21:10:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我要解这个函数。在

我想估计pin模型中的参数。对数转换的似然函数与附图相同。估计的参数为(α、δ、μ、εB、εS)。我编写了3步for语句来设置初始值。我试着用statsmodel或压缩。最小化应用极大似然估计来估计参数。我不知道该把什么参数放在细节上。给我个主意。。在

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)

Tags: inimportfor参数esscipymeanarray