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