
СМОД – Статистические методы обработки данных / Лаба 1 - 8 / СМОД_8
.docx
-
ЦЕЛЬ РАБОТЫ
1.1 Изучение методов проверки гипотезы о законе распределения.
1.2. Получение навыков проверки гипотезы о законе распределения в системе Matlab.
-
ЗАДАНИЕ
2.1. Смоделировать выборки объема n=100 из распределений, приведенных в лабораторной работе № 1. Проверить гипотезы о законе распределения критерием Колмогорова с помощью программы kstest, написав собственные m-файлы.
2.2. Написать m-файл-сценарий для проверки гипотезы о законе распределения с помощью критерия хи-квадрат и выполнить проверку гипотезы для тех же распределений, что и в лабораторной работе № 1. Сравнить результаты проверки гипотезы различными реализованными критериями.
-
ХОД РАБОТЫ
Проверим гипотезу о распределении
Фишера, для этого будем использовать
критерий согласия Колмогорова (
и критерий согласия Пирсона (
).
Сгенерируем выборку из n=100 чисел,
используя распределение Фишера.
Числовая характеристика: |
α = 0,01 |
α = 0,05 |
|
1.1596 |
1.2386 |
|
1.6270 |
1.3580 |
Результат: |
Гипотеза выполняется |
Гипотеза выполняется |
h |
0 |
0 |
p |
0.0766 |
0.0505 |
ksstat |
0.1260 |
0.1339 |
cv |
0.1340 |
0.1340 |
Результат: |
Критерий Колмогорова выполняется |
Критерий Колмогорова выполняется |
|
7.4874 |
2.4256 |
|
13.2767 |
9.4877 |
Результат: |
Критерий Пирсона выполняется |
Критерий Пирсона выполняется |
Проверим гипотезу о нормальном
распределении, для этого будем использовать
критерий согласия Колмогорова (
и критерий согласия Пирсона (
).
Сгенерируем выборку из n=100 чисел,
используя нормальное распределение.
Числовая характеристика: |
α = 0,01 |
α = 0,05 |
|
0.8762 |
0.8215 |
|
1.6270 |
1.3580 |
Результат: |
Гипотеза выполняется |
Гипотеза выполняется |
h |
0 |
0 |
p |
0.4032 |
0.4843 |
ksstat |
0.0876 |
0.0822 |
cv |
0.1340 |
0.1340 |
Результат: |
Критерий Колмогорова выполняется |
Критерий Колмогорова выполняется |
|
8.2098 |
5.1966 |
|
13.2767 |
9.4877 |
Результат: |
Критерий Пирсона выполняется |
Критерий Пирсона выполняется |
-
ВЫВОД:
Были смоделированы выборки по распределению Фишера и по нормальному распределению. Эти выборки были проверены по критериям Колмогорова и критерием Пирсона. Результаты проверок гипотез сошлись – гипотезы были подтверждены.
ПРИЛОЖЕНИЕ
Распределение Фишера:
clear;
clc;
disp('Распределение Фишера:');
n=100; %объем выборки
alpha=0.05; %уровень значимости
par(1)=10; %1-й параметр гипотетического распределения
par(2)=7; %2-й параметр гипотетического распределения
for i=1:n
x(i)=frnd(par(1),par(2));
end
%Критерий Колмогорова
a=par(1);
sigma=par(2);
deltamax=0;
delta=0;
x=sort(x);
for i=1:n
fgipotet(i)=fcdf(x(i),a,sigma);
fempir(i)=i./n;
delta=abs(fgipotet(i)-fempir(i));
if(delta>deltamax)
deltamax=delta;
end
end
lambda = deltamax.*sqrt(n)
lambdaa=1.3580
if lambda<lambdaa
disp(' Гипотеза выполняется ');
else
disp('Гипотеза не выполняется');
end
y=fcdf(x,par(1),par(2));
cdf=[x' y'];
[h,p,ksstat,cv] = kstest(x,cdf);
h
p
ksstat
cv
if h==0
disp('Критерий Колмогорова принимается')
else
disp('Критерий Колмогорова не принимается')
end;
%Критерий Пирсона
xmax=-1000;
xmin=1000;
k=5;
for i=1:n
if(x(i)<xmin)
xmin=x(i);
end
if(x(i)>xmax)
xmax=x(i);
end
end
length=(xmax-xmin)/k;
cint=[xmin xmin+length xmin+2*length xmin+3*length xmin+4*length xmax];
mi = [0 0 0 0 0];
for i=1:n
if(x(i)<cint(2))
mi(1)=mi(1)+1;
elseif(x(i)<cint(3))
mi(2)=mi(2)+1;
elseif(x(i)<cint(4))
mi(3)=mi(3)+1;
elseif(x(i)<cint(5))
mi(4)=mi(4)+1;
else
mi(5)=mi(5)+1;
end
end
v=0;
for j=1:k
if (j==k)
p(j)=1-fcdf(cint(j),par(1),par(2));
else
p(j)=fcdf(cint(j+1),par(1),par(2))-fcdf(cint(j),par(1),par(2));
end
v=v+((mi(j)-n*p(j))^2)/(n*p(j));
end
va=chi2inv(1-alpha,k-1);
v,va
if v<va
disp('Критерий Пирсона принимается');
else
disp('Критерий Пирсона не принимается');
end
Нормальное распределение:
clear;
clc;
disp('Нормальное распределение:');
n=100; %объем выборки
alpha=0.01; %уровень значимости
par(1)=10; %1-й параметр гипотетического распределения
par(2)=7; %2-й параметр гипотетического распределения
for i=1:n
x(i)=normrnd(par(1),par(2));
end
%Критерий Колмогорова
a=par(1);
sigma=par(2);
deltamax=0;
delta=0;
x=sort(x);
for i=1:n
fgipotet(i)=normcdf(x(i),a,sigma);
fempir(i)=i./n;
delta=abs(fgipotet(i)-fempir(i));
if(delta>deltamax)
deltamax=delta;
end
end
lambda = deltamax.*sqrt(n)
lambdaa=1.6270
if lambda<lambdaa
disp('Гипотеза выполняется');
else
disp('Гипотеза не выполняется');
end
y=normcdf(x,par(1),par(2));
cdf=[x' y'];
[h,p,ksstat,cv] = kstest(x,cdf);
h
p
ksstat
cv
if h==0
disp('Критерий Колмогорова принимается')
else
disp('Критерий Колмогорова не принимается')
end;
%Критерий Пирсона
xmax=-1000;
xmin=1000;
k=5;
for i=1:n
if(x(i)<xmin)
xmin=x(i);
end
if(x(i)>xmax)
xmax=x(i);
end
end
length=(xmax-xmin)/k;
cint=[xmin xmin+length xmin+2*length xmin+3*length xmin+4*length xmax];
mi = [0 0 0 0 0];
for i=1:n
if(x(i)<cint(2))
mi(1)=mi(1)+1;
elseif(x(i)<cint(3))
mi(2)=mi(2)+1;
elseif(x(i)<cint(4))
mi(3)=mi(3)+1;
elseif(x(i)<cint(5))
mi(4)=mi(4)+1;
else
mi(5)=mi(5)+1;
end
end
v=0;
for j=1:k
if (j==k)
p(j)=1-normcdf(cint(j),par(1),par(2));
else
p(j)=normcdf(cint(j+1),par(1),par(2))-normcdf(cint(j),par(1),par(2));
end
v=v+((mi(j)-n*p(j))^2)/(n*p(j));
end
va=chi2inv(1-alpha,k-1);
v,va
if v<va
disp('Критерий Пирсона принимается');
else
disp('Критерий Пирсона не принимается');
end