Matlab 使用fminsearch执行分布拟合

Matlab 使用fminsearch执行分布拟合,matlab,probability,curve-fitting,data-fitting,fminsearch,Matlab,Probability,Curve Fitting,Data Fitting,Fminsearch,假设我在数组errors中保存了一组单变量数据 我想根据我观察到的数据分布拟合一个PDF 我的PDF是在函数poissvmwalkpdf中定义的,其定义行如下所示: function p = poissvmwalkpdf(theta, mu, kappa, xi) 这里,theta是误差(errors中的值为实例的变量),而mu、kappa和xi是PDF的参数,我希望使用最大似然估计找到最适合的参数。此函数返回给定值θ下的概率密度 考虑到所有这些,我如何使用fminsearch找到最适合我观察

假设我在数组
errors
中保存了一组单变量数据

我想根据我观察到的数据分布拟合一个PDF

我的PDF是在函数
poissvmwalkpdf
中定义的,其定义行如下所示:

function p = poissvmwalkpdf(theta, mu, kappa, xi)
这里,
theta
是误差(
errors
中的值为实例的变量),而
mu
kappa
xi
是PDF的参数,我希望使用最大似然估计找到最适合的参数。此函数返回给定值θ下的概率密度

考虑到所有这些,我如何使用
fminsearch
找到最适合我观察到的
错误的
mu
kappa
xi
的值?
fminsearch
文档没有明确说明这一点。文件中的示例均不是配电装置的示例


注:本教程清楚地描述了什么是分布拟合(与曲线拟合不同),但给出的示例没有使用
fminsearch

,这里是使用
fminsearch
获得最大似然估计的一个最小示例(如注释中所要求):

在建立了似然函数(或负对数似然)之后,它只是一个简单的优化


技巧问题:为什么不使用本教程用于分布拟合的内容?:)此类数据没有唯一的拟合。必须选择如何进行拟合,一般拟合方法不考虑假设数据是从已知分布中采样的。最常见的分布拟合方法基于(并最小化负对数似然)。您可以使用
fminsearch
,您可能会得到一些不错的结果,但它可能不会返回统计上最有可能的参数。@霍奇勒您可以将我的问题解释为,“我将如何使用
fminsearch
在我的PDF和数据之间导出MLE拟合?”您似乎在争论
fminsearch
无法做到这一点,但这是一个通用的最小化函数。它可以最小化负对数可能性。正是我想要的,谢谢。与我有相同问题的用户也可能希望咨询。
function mle_fit_minimal

n       = 100;
% for reproducibility
rng(333)
% generate dummy data
errors  = normrnd(0,1,n,1);

par0    = [1, 1];
[par_hat, nll] = fminsearch(@nloglike, par0)

% custom pdf
    function p = my_pdf(data, par)
        mu      = par(1);
        sigma   = par(2);
        p       = normpdf(data, mu, sigma);
    end

% negative loglikelihood function -- note that the parameters must be passed in a 
% single argument (here called par).
    function nll = nloglike(par)
        nll     = -sum(log(my_pdf(errors, par)));
    end
end