Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中用户定义概率密度函数(pdf)的最大似然估计_Python_Statistics_Distribution_Mle - Fatal编程技术网

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

python中用户定义概率密度函数(pdf)的最大似然估计,python,statistics,distribution,mle,Python,Statistics,Distribution,Mle,我正在研究MLE,我想优化我的对数似然函数。我正在使用代码: 我有一个非常明确的疑问: ->我有YOB和yPred,但我不知道如何将YOB和yPred包括在我的似然函数中,如这里所做: logLik=-np.sum stats.norm.logpdfyObs,loc=yPred,scale=sd 我的似然函数只有x作为样本空间和两个未知参数: 他们使用了一个名为stats.norm.logpdf的函数,但我没有使用正态分布 提前谢谢 关于展开评论 你有KPDF Kx,mu,nu 我猜你有一个观察

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

我有一个非常明确的疑问:

->我有YOB和yPred,但我不知道如何将YOB和yPred包括在我的似然函数中,如这里所做:

logLik=-np.sum stats.norm.logpdfyObs,loc=yPred,scale=sd

我的似然函数只有x作为样本空间和两个未知参数:

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

提前谢谢


关于

展开评论

你有KPDF Kx,mu,nu

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

如果您只是试图找到最适合您的样本的参数,那么yPred是无用的,您可以找到您的可能性作为两个参数的函数,如下所示:

logLik =  lambda mu, nu: - np.sum(np.log(K(yObs, mu, nu)))
然后最小化mu,nu

如果您想使用在参考文章中找到的代码,您需要更改如下函数:

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获取一个数组。我不建议使用第二种方法,因为它对样本中的每个观察值使用不同的平均值,一般来说,我不明白它试图实现什么,看起来它试图以某种混乱的方式从观察值中预测平均值,但这可能是一种我从未见过的有效方法。

如果你知道你的分布函数,你只需要在示例中将其替换为高斯分布。假设你有一个分布函数fx,a,b,其中a和b是两个参数,你不知道如何生成希腊字母。。。。样本的对数似然度计算为logLika,b=-np.sumnp.logfyObs,a,b或-np.logfyObs,a,b.prod。现在你只需要最小化这个关于a和b的函数。要在python中实现这一点,您可能需要使用lambda函数,即loglika,b=lambda,b:-np.sumnp.logfyObs,a,b@gionni,谢谢你的回复,但我能帮你找到合适的答案。如何将分布函数替换为高斯分布?高斯分布在分布函数中扮演什么角色?如果您能澄清我的困惑,我将非常感谢。如果我理解正确,您的数据不是来自高斯分布,而是来自PDF fx,a,b的不同分布。如上所述,您只需要在对数似然公式中插入分布函数,而不是使用高斯分布。您使用的是什么发行版?我使用的是k pdf。它不同于高斯分布。我有对应于每个样本空间yObs,x的pdf的真实值。如何生成对数似然函数?在我分享的链接中,他们使用了高斯分布。我已经用python编写了我的k-pdf,并且必须计算它的对数可能性。好的,我猜您为pdf编写了一个函数。只要在上面的代码中替换这样的函数,就有了loglikelibility,这取决于您使用的两个参数。如果您最大限度地利用python已经实现的优化库中的参数来实现该函数,那么您可以找到最适合给定分发版的数据的参数,这似乎非常有用。我有一个问题,在logLik方程中用YOB代替x的原因是什么?我有每个x的YOB,我必须将k-pdf拟合到这个数据中。所以你有一个多变量问题,其中n个变量x在R^n中,每个都有n个观测值?我有数据,我必须拟合k-pdf,pdf有两个未知参数。是的,我已经实现了,但我有一个问题。我应该如何选择我的样本量YOB,因为我做了随机抽样,每次我改变样本量时,我的估计参数都会改变,如果我选择整个人群,那么我的估计参数是错误的。