python 中用户定义的概率密度函数 (pdf) 的最大似然估计
maximum likelihood estimation for a user defined probabilty density function (pdf) in python
我正在研究 MLE,我想优化我的对数似然函数。我正在使用代码:
Maximum Likelihood Estimate pseudocode
我有一个非常具体的疑问:
--> 我有 yObs
和 yPred
但我很困惑我应该如何包括 yObs
和 yPred
在我这里完成的似然函数中:
logLik = -np.sum( stats.norm.logpdf(yObs, loc=yPred, scale=sd) )
我的似然函数只有 x
作为 sample space
和 two 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
获取数组。我不建议第二种方法,因为它对样本中的每个观察结果使用不同的平均值,而且一般来说我不明白它试图完成什么(看起来它试图从一些混乱的观察结果中预测平均值方式),但这可能是我从未见过的有效方法。
我正在研究 MLE,我想优化我的对数似然函数。我正在使用代码:
Maximum Likelihood Estimate pseudocode
我有一个非常具体的疑问:
--> 我有 yObs
和 yPred
但我很困惑我应该如何包括 yObs
和 yPred
在我这里完成的似然函数中:
logLik = -np.sum( stats.norm.logpdf(yObs, loc=yPred, scale=sd) )
我的似然函数只有 x
作为 sample space
和 two 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
获取数组。我不建议第二种方法,因为它对样本中的每个观察结果使用不同的平均值,而且一般来说我不明白它试图完成什么(看起来它试图从一些混乱的观察结果中预测平均值方式),但这可能是我从未见过的有效方法。