将 MATLAB 的 chi2gof 与非标准用户指定的 PDF 一起使用
Using MATLAB's chi2gof with non-standard user-specified PDFs
我想使用 MATLAB 的 chi2gof
执行卡方拟合优度检验。我的问题是我假设的(即理论的)分布不是 MATLAB 中的标准内置概率分布之一。我想要的分配的具体形式是:
p = x^a*exp(-b*x^2)
其中 a
和 b
是常量。必须有一种方法可以对任意 PDF 使用 chi2gof
吗?我进行了详尽的 Google 搜索,但一无所获。
您可以这样指定 handle to a function that takes a single argument to chi2gof
:
a = ...
b = ...
c = ...
F = @(x)a*exp(-b*x-c*x.^2); % Technically this is an anonymous function
[H,P,STATS] = chi2gof(data,'cdf',F)
或者在特殊情况下:
a = ...
b = ...
c = ...
F = @(x,a,b,c)a*exp(-b*x-c*x.^2);
[H,P,STATS] = chi2gof(data,'cdf',{F,a,b,c})
最后一行相当于
[H,P,STATS] = chi2gof(data,'cdf',@(x)F(x,a,b,c))
如果估计参数a
、b
和c
(例如,使用某种拟合过程),则应将估计参数的数量指定为chi2gof
.在这种情况下:
[H,P, STATS] = chi2gof(data,'cdf',F,'nparams',3)
请阅读文档以了解其他选项。
我想使用 MATLAB 的 chi2gof
执行卡方拟合优度检验。我的问题是我假设的(即理论的)分布不是 MATLAB 中的标准内置概率分布之一。我想要的分配的具体形式是:
p = x^a*exp(-b*x^2)
其中 a
和 b
是常量。必须有一种方法可以对任意 PDF 使用 chi2gof
吗?我进行了详尽的 Google 搜索,但一无所获。
您可以这样指定 handle to a function that takes a single argument to chi2gof
:
a = ...
b = ...
c = ...
F = @(x)a*exp(-b*x-c*x.^2); % Technically this is an anonymous function
[H,P,STATS] = chi2gof(data,'cdf',F)
或者在特殊情况下:
a = ...
b = ...
c = ...
F = @(x,a,b,c)a*exp(-b*x-c*x.^2);
[H,P,STATS] = chi2gof(data,'cdf',{F,a,b,c})
最后一行相当于
[H,P,STATS] = chi2gof(data,'cdf',@(x)F(x,a,b,c))
如果估计参数a
、b
和c
(例如,使用某种拟合过程),则应将估计参数的数量指定为chi2gof
.在这种情况下:
[H,P, STATS] = chi2gof(data,'cdf',F,'nparams',3)
请阅读文档以了解其他选项。