Я использую тест Колмогорова-Смирнова в MATLAB, чтобы определить нормальность каждого столбца матрицы данных перед выполнением обобщенной линейной регрессии. Пример вектора данных:
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));
при сохранении валидности теста?
Спасибо за уделенное время,
Лаура
1
. Таким образом, для значений данных порядка тысяч CDF очень приблизительно равен 1. Вероятно, вам нужно использовать среднее значение и стандартное отклонение, оцененное на основе ваших данных; или нормализовать данные, а затем вы можете сохранить гауссовский CDF с нулевым средним и единичным стандартным отклонением - person Luis Mendo   schedule 06.06.2017