我正在使用MATLAB中的Kolmogorov-Smirnov测试来确定数据矩阵每列的正态性,以便在执行广义线性回归之前进行检测。以下是一个示例数据向量:
data = [8126,3163,9129,5399,8682,1126,1053,7805,2989,2758,3277,1152,6994,6833];
测试运行并给出了结果。然而,当我为了进行视觉比较绘制经验累积分布函数(cdf)(蓝色)和标准正态分布cdf(红色)时,由于数据向量的规模使得图表没有用处: 绘制该图的代码如下:
[h,p,ksstat,cv] = kstest(data);
[f,x_values] = ecdf(data);
figure()
F = plot(x_values,f);
set(F,'LineWidth',2);
hold on
G = plot(x_values,normcdf(x_values,0,1),'r-');
set(G,'LineWidth',2);
legend([F G],...
'Empirical CDF','Standard Normal CDF',...
'Location','SE');
这是否意味着我的测试结果无效?如果是,我是否可以对数据进行归一化处理,例如
dataN=(data-min(data))./(max(data)-min(data));
在保持测试有效性的同时?
感谢您的时间,
Laura
1
的高斯累积分布函数图。因此,对于数值级别在千位数的数据,该累积分布函数非常接近于 1。您可能需要使用从数据中估算得出的均值和标准差;或者对数据进行归一化处理,然后可以保持均值为零、标准差为一的高斯累积分布函数。 - Luis Mendo