2

我有两组浮点数数据,一组 A 和一组 B。它们都是大小为 40*40 的矩阵。我想知道哪个集合更接近正态分布。我知道如何在 matlab 中使用 probplot() 来绘制一组概率。但是,我不知道如何找出分布的适应度水平。

In python, when people use problot, a parameter ,R^2, shows how good the distribution of the data is against to the normal distribution. The closer the R^2 value to value 1, the better the fitness is. Thus, I can simply use the function to compare two set of data by their R^2 value. However, because of some machine problem, I can not use the python in my current machine. Is there such parameter or function similar to the R^2 value in matlab ?

Thank you very much,

4

2 回答 2

1

@nate (+1) 的方法绝对是解决这个问题的一种可能方法。但是,我的统计学家不得不提出以下替代方案(唉,这确实需要统计工具箱 - 但如果你有学生版,你就有这个):

鉴于您的数据是正态的(不是多元正态的),请考虑使用Jarque-Bera检验。

Jarque-Bera 检验给定数据集由正态分布生成的零假设,而不是由其他分布生成的替代假设。如果 Jarque-Bera 检验统计量小于某个临界值,则我们无法拒绝原假设。

那么这如何帮助解决拟合优度问题呢?好吧,测试统计量越大,数据就越“非正态”。检验统计量越小,数据越“正常”。

因此,假设您已将矩阵转换为两个向量,A并且B(根据您在问题中提供的维度,每个向量应为 1600 x 1),您可以执行以下操作:

%# Build sample data
A = randn(1600, 1);
B = rand(1600, 1);

%# Perform JB test
[ANormal, ~, AStat] = jbtest(A);
[BNormal, ~, BStat] = jbtest(B);

%# Display result
if AStat < BStat
    disp('A is closer to normal'); 
else
    disp('B is closer to normal');
end

作为这样做的一点好处,ANormal并告诉您是否可以拒绝或无法拒绝样本属于或来自正态分布BNormal的原假设!具体来说,如果是 1,那么您无法拒绝空值(即测试统计表明它可能来自正态)。如果为 0,则其中的数据可能不是从正态分布生成的。ABANormalAANormalA

注意:我在这里提倡的方法仅在大小相同时才有效AB但是您在问题中指出它们是:-)

于 2012-10-31T01:52:43.233 回答
1

可以使用函数 将曲线或曲面拟合到数据并获得拟合优度,即 sse、rsquare、dfe、adjrsquare、rmse fit更多信息在这里。..

于 2012-10-29T06:52:58.733 回答