python 中用户定义的概率密度函数 (pdf) 的最大似然估计

maximum likelihood estimation for a user defined probabilty density function (pdf) in python

我正在研究 MLE,我想优化我的对数似然函数。我正在使用代码:

Maximum Likelihood Estimate pseudocode

我有一个非常具体的疑问:

--> 我有 yObsyPred 但我很困惑我应该如何包括 yObsyPred 在我这里完成的似然函数中:

logLik = -np.sum( stats.norm.logpdf(yObs, loc=yPred, scale=sd) )

我的似然函数只有 x 作为 sample spacetwo unknown parameters:

他们使用了一个名为 stats.norm.logpdf 的函数,但我没有使用正态分布。

提前致谢。

此致

扩展评论。

您有 K pdf K(x,mu, nu)

我猜你有一个观察样本 yObs,我假设它是一个数组和另一个数组 yPred(请注意,你从中获取的示例使用简单的线性回归来获得yPred 并且实际上试图找到回归参数,而不是分布参数,尽管答案总体上看起来很奇怪)。

如果您只是想找到最适合您的样本的参数,那么 yPred 是无用的,您可以找到您的可能性(作为 2 个参数的函数)为:

logLik =  lambda mu, nu: - np.sum(np.log(K(yObs, mu, nu)))

然后最小化 mu, nu.

如果您想使用您引用的 post 中的代码,您需要像这样更改函数:

def regressLL(params):

    b0 = params[0]
    b1 = params[1]
    nu = params[2]


    yPred = b0 + b1*x


    logLik = -np.log( np.prod(K(yObs, mu=yPred, nu=nu)))

    return(logLik)

请记住,在第二种情况下,您的函数 K 必须能够为 mu 获取数组。我不建议第二种方法,因为它对样本中的每个观察结果使用不同的平均值,而且一般来说我不明白它试图完成什么(看起来它试图从一些混乱的观察结果中预测平均值方式),但这可能是我从未见过的有效方法。