Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Obrobka_masivu_danikh.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
346.62 Кб
Скачать

Xlabel('X'), ylabel('f(X)'); % мітки осей

Xlim([xl xr]); % межі по осі ox

Вибираємо рівень значущості для критерію Колмогорова p=0.30

Найбільш підходящий - показниковий розподіл

Максимальна різниця Dmax=0.06294 досягається при x= 3.88412

Статистика Колмогорова Lambda= 0.99519

Квантиль розподілу Колмогорова Lambda(0.70)= 0.97306

Розподіл підібрано неправильно, так як Lambda>Lambda(1-p)

Якщо у Вашій версії MATLAB немає процедур для обчислення функції, гуснини і квантилів розподілу Колмогорова, можна взяти їх в додатку і записати в будь-який каталог, доступний MATLAB.

6. Критерій узгодженості Пірсона

У критерії узгодженості Пірсона порівнюються між собою теоретичні і емпіричні числа попадань в інтервали. Візьмемо ті інтервали, по яких була побудована гістограма. Емпіричні числа попадань в ці інтервали ми порівнюємо з теоретичним числом попадань , де – імовірність попадання нашої величини в інтервал. Теоретичний розподіл можна вважати підібраним вірно на рівні значущості , якщо сумарна квадратична відносна різниця між теоретичним і практичним числом попадань в кожен інтервал буде не дуже великою: повинна виконуватися умова

, (0)

причому потрібно, щоб всі .

Побудуємо таблицю результатів, в яку занесемо: номери інтервалів (1-й стовпець), межі інтервалів і (2-й і 3-й стовпці), практичне число попадань (4-й стовпець), імовірність попадання в інтервал (5-й стовпець), теоретичне число попадань (6-й стовпець) і величини (7-й стовпець).

Імовірність попадання в -й інтервал обчислюється по формулі

. (0)

%% 6. Критерій узгодженості Пірсона

clear Tabl; % очистили таблицю результатів

Tabl(:,1)=[1:k]'; % номери інтервалів

Tabl(:,2)=xm'-delta/2; % ліві межі інтервалів

Tabl(:,3)=xm'+delta/2; % праві межі інтервалів

Tabl(1,2)=-inf; % теоретичний початок 1-го інтервалу

Tabl(k,3)=inf; % теоретичне закінчення останнього інтервалу

Tabl(:,4)=nj'; % дослідні числа попадань

bor=[Tabl(:,2);Tabl(end,3)]; % всі межі інтервалів

pro=[normcdf(bor,mx,sx),expcdf(bor,1/lam),unifcdf(bor,a,b),raylcdf(bor,sig)];

Tabl(:,5)=pro(2:end,nd)-pro(1:end-1,nd);% імовірності попадання pj

Tabl(:,6)=n*Tabl(:,5); % теоретичне число попадань npj

Tabl(:,7)=(Tabl(:,4)-Tabl(:,6)).^2./Tabl(:,6); % відносне квадратичне відхилення

disp('Підсумкова таблиця результатів');

disp(' j aj bj nj pj npj (nj-npj)^2/npj');

fprintf('%2.0f%12.5f%12.5f%6.0f%12.5f%12.5f%12.5f\n',Tabl');

Підсумкова таблиця результатів

j aj bj nj pj npj (nj-npj)^2/npj

1 -Inf 1.99996 66 0.29366 73.41536 0.74899

2 1.99996 3.96831 43 0.20468 51.16884 1.30411

3 3.96831 5.93665 45 0.14537 36.34167 2.06283

4 5.93665 7.90500 29 0.10324 25.81096 0.39402

5 7.90500 9.87335 21 0.07333 18.33173 0.38838

6 9.87335 11.84170 23 0.05208 13.01976 7.65032

7 11.84170 13.81005 7 0.03699 9.24703 0.54603

8 13.81005 15.77840 1 0.02627 6.56752 4.71979

9 15.77840 17.74674 6 0.01866 4.66445 0.38240

10 17.74674 19.71509 2 0.01325 3.31284 0.52026

11 19.71509 21.68344 3 0.00941 2.35288 0.17798

12 21.68344 23.65179 2 0.00668 1.67109 0.06474

13 23.65179 25.62014 0 0.00475 1.18686 1.18686

14 25.62014 27.58849 0 0.00337 0.84294 0.84294

15 27.58849 29.55683 1 0.00239 0.59868 0.26902

16 29.55683 Inf 1 0.00587 1.46738 0.14887

Перевіримо виконання умови всі , і об'єднаємо ті інтервали, в яких . Перебудуємо таблицю і підрахуємо статистику Пірсона. Порівняємо отриману величину з квантилем - розподілу Пірсона на заданому рівні значущості.

% Перевірка і усунення інтервалів з попаданнями менше 5

ResTabl=Tabl(1,1:6); % взяли перший рядок

for k1=2:k, % беремо інші рядки таблиці

if ResTabl(end,6)<5, % попередні npj<5 => будемо підсумовувати

ResTabl(end,3)=Tabl(k1,3); % нова права межа інтервалу

ResTabl(end,4:6)=ResTabl(end,4:6)+Tabl(k1,4:6); % підсумовуємо nj, pj, npj

else % попередні npj>=5 => будемо дописувати рядок

ResTabl=[ResTabl;Tabl(k1,1:6)]; % дописуємо рядок

end

end

if ResTabl(end,6)<5, % останнє npj<5

ResTabl(end-1,3)=ResTabl(end,3); % нова права межа інтервалу

ResTabl(end-1,4:6)=ResTabl(end-1,4:6)+ResTabl(end,4:6); % nj, pj, npj

ResTabl=ResTabl(1:end-1,:); % відкинули останній рядок

end

kn=size(ResTabl,1); % число об"єднаних інтервалів

ResTabl(:,1)=[1:kn]'; % нові номери інтервалів

ResTabl(:,7)=(ResTabl(:,4)-ResTabl(:,6)).^2./ResTabl(:,6); % (nj-npj)^2/npj

disp('Згрупована підсумкова таблиця результатів');

disp(' j aj bj nj pj npj (nj-npj)^2/npj');

fprintf('%2.0f%12.5f%12.5f%6.0f%12.5f%12.5f%12.5f\n',ResTabl');

hi2=sum(ResTabl(:,7)); % сума елементів останнього стовпця - статистика Пірсона

fprintf('Статистика Пірсона chi2=%10.5f\n',hi2);

pz=0.1; % вибрали рівень значущості

fprintf('Задаємо рівень значущості p=%5.4f\n',pz);

chi2pz=chi2inv(1-pz,kn-3); % квантиль розподілу Пірсона

fprintf('Квантиль chi2-розподілу Пірсона chi2(%5.2f,%d)=%10.5f\n',1-pz,kn-3, chi2pz);

if hi2<=chi2pz,

disp('Розподіл підібрано правильно, так як chi2<=chi2(1-p,k-3)');

else

disp('Розподіл підібрано неправильно, так как chi2>chi2(1-p,k-3)');

end

Згрупована підсумкова таблиця результатів

j aj bj nj pj npj (nj-npj)^2/npj

1 -Inf 1.99996 66 0.29366 73.41536 0.74899

2 1.99996 3.96831 43 0.20468 51.16884 1.30411

3 3.96831 5.93665 45 0.14537 36.34167 2.06283

4 5.93665 7.90500 29 0.10324 25.81096 0.39402

5 7.90500 9.87335 21 0.07333 18.33173 0.38838

6 9.87335 11.84170 23 0.05208 13.01976 7.65032

7 11.84170 13.81005 7 0.03699 9.24703 0.54603

8 13.81005 15.77840 1 0.02627 6.56752 4.71979

9 15.77840 19.71509 8 0.03191 7.97729 0.00006

10 19.71509 Inf 7 0.03248 8.11983 0.15444

Статистика Пірсона chi2= 17.96896

Задаємо рівень значущості p=0.1000

Квантиль chi2-розподілу Пірсона chi2( 0.90,7)= 12.01704

Розподіл підібрано неправильно, так как chi2>chi2(1-p,k-3)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]