测试数据分布是否遵循MATLAB中的高斯分布

Arn*_*shn 17 statistics matlab distribution gaussian

我有一些数据点及其平均点.我需要找出那些数据点(具有那个意思)是否遵循高斯分布.MATLAB中有一个可以进行这种测试的函数吗?或者我需要写一个自己的测试?

我试着看看MATLAB提供的不同统计函数.我对MATLAB很新,所以我可能忽略了正确的功能.

干杯

Amr*_*mro 15

查看所有可用假设测试的文档页面.

根据您的目的,您可以使用:

......等等

您还可以使用一些视觉测试,例如:


sha*_*hef 6

我喜欢Spiegelhalter的测试(DJ Spiegelhalter,'分布形状的诊断测试,'Biometrika,1983):

function pval = spiegel_test(x)
% compute pvalue under null of x normally distributed;
% x should be a vector;
xm = mean(x);
xs = std(x);
xz = (x - xm) ./ xs;
xz2 = xz.^2;
N = sum(xz2 .* log(xz2));
n = numel(x);
ts = (N - 0.73 * n) / (0.8969 * sqrt(n)); %under the null, ts ~ N(0,1)
pval = 1 - abs(erf(ts / sqrt(2)));    %2-sided test.
Run Code Online (Sandbox Code Playgroud)

每当黑客进行统计测试时,总是在null下测试它们!这是一个简单的例子:

pvals = nan(10000,1);
for j=1:numel(pvals);
pvals(j) = spiegel_test(randn(300,1));
end
nnz(pvals < 0.05) ./ numel(pvals)
Run Code Online (Sandbox Code Playgroud)

我得到了结果:

ans =    
   0.0505
Run Code Online (Sandbox Code Playgroud)

同样

nnz(pvals > 0.95) ./ numel(pvals)
Run Code Online (Sandbox Code Playgroud)

我明白了

ans = 
   0.0475
Run Code Online (Sandbox Code Playgroud)


小智 5

对于一般的测试,请查看统计工具箱中的Kolmogorov-Smirnov测试,作为kstest和双样本版本:kstest2.你给它提供了你的经验数据,(以及来自可能函数的数据,如高斯等......)然后它测试你的样本从正态分布中拉出的可能性(或者你为双样本提供的样本)版本)......精确的是它适用于任何可能的发行版......