5

我有一个比较容易理解的问题。

我有一组数据,我想估计这些数据与标准正态分布的拟合程度。为此,我从我的代码开始:

[f_p,m_p] = hist(data,128);
f_p = f_p/trapz(m_p,f_p);

x_th = min(data):.001:max(data);
y_th = normpdf(x_th,0,1);   

figure(1)
bar(m_p,f_p)
hold on
plot(x_th,y_th,'r','LineWidth',2.5)
grid on
hold off

图 1 如下所示:

在此处输入图像描述

很容易看出合身性很差,尽管可以看到钟形。因此,主要问题在于我的数据的差异

为了找出我的数据箱应该拥有的正确出现次数,我这样做:

f_p_th = interp1(x_th,y_th,m_p,'spline','extrap');
figure(2)
bar(m_p,f_p_th)
hold on
plot(x_th,y_th,'r','LineWidth',2.5)
grid on
hold off

这将导致下图。:

在此处输入图像描述

因此,问题是:如何缩放我的数据块以匹配高斯分布,如图2 所示

警告

我想强调一点:我不想找到适合数据的最佳分布;问题相反的:从我的数据开始,我想以这样一种方式操纵它,最终,它的分布合理地适合高斯分布。

不幸的是,目前,我对如何执行此数据“过滤”、“转换”或“操作”并没有真正的想法。

欢迎任何支持。

4

3 回答 3

4

也许您感兴趣的是基于秩的逆正态变换。基本上,您首先对数据进行排名,然后将其转换为正态分布:

rank = tiedrank( data );
p = rank / ( length(rank) + 1 ); %# +1 to avoid Inf for the max point
newdata = norminv( p, 0, 1 );
于 2013-03-21T15:29:17.593 回答
2

您正在尝试做的似乎与试图找出一组数据的随机性的问题相匹配。超高斯 pdf 是那些比高斯分布在零(或平均值,无论它可能是什么)附近具有更大概率的那些,因此更“尖锐” - 就像你的例子一样。这种分布的一个例子是拉普拉斯分布。亚高斯 pdf 则相反。

可以通过多种方式来衡量数据集与高斯分布的接近程度……通常这是通过使用四阶矩峰度(http://en.wikipedia.org/wiki/Kurtosis - MATLAB 函数)来完成的kurt),或信息论度量,例如负熵(http://en.wikipedia.org/wiki/Negentropy)。如果你有很多异常值,峰度有点狡猾,因为误差会提高到 4 的幂,所以负熵更好。

如果您不理解“四阶矩”一词,请阅读统计教科书。

在许多关于独立分量分析 (ICA) 的文章中都对这些和其他几种随机性度量(高斯性)进行了比较,因为它是一个核心概念。这方面的一个很好的资源是 Hyvarinen 和 Oja 所著的《独立分量分析》一书 - http://books.google.co.uk/books/about/Independent_Component_Analysis.html?id=96D0ypDwAkkC

于 2013-03-21T14:44:42.037 回答
1

我无法真正理解这个问题或您最近的其他类似问题一直在问什么。

也许您有正态分布的数据,并且您想让它以均值 0 和标准差 1 的正态分布?

如果是这样,则从您的数据中减去mu并除以sigma,其中mu是数据的平均值,sigma是其标准差。如果您的原始数据是正态分布的,那么结果应该是正态分布的数据,均值为 0,标准差为 1。

统计工具箱中有一个功能zscore可以为您完成这项工作。

但也许你的意思是别的?

于 2013-03-21T14:40:01.293 回答