Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear
- clc
- % Часть 1. Критерии согласия
- % Критерий согласия — это статистическое правило,
- % по которому принимается или отвергается статистическая
- % гипотеза о том, что исследуемая случайная величина
- % подчиняется заданному эмпирическому закону распределения.
- %1. Критерий согласия хи квадрат- Пирсона
- % позволяет проверить значимость расхождения эмпирических (наблюдаемых)
- % и теоретических (ожидаемых) частот
- %Равномерное a=-3, b=5
- N=10000;
- a = -3;
- b = 5;
- %1.1 генерируем выборку
- X=random('Uniform', a, b, N, 1);
- %1.2 Рассчитать значение статистики для критерия
- X_max=max(X);
- X_min=min(X);
- r=floor(log2(N))+1; %кол-во инт-лов группировки
- h=(X_max-X_min)/r; %длина каждого инт-ла группировки
- for i = 0:r
- z(i+1) = X_min+i*h; %массив границ z инт-лов группировки
- end
- for i=1:r
- z1(i) = z(i+1)-h/2; %середины инт-лов полученные из границ инт-лов
- end
- U=hist(X,z1); %кол-во элементов в каждом интервале
- %рассчитываем вер-ть попадания в i-тый интервал разбиения
- for i = 1:r
- p(i) = cdf('Uniform', z(i+1), a, b) - cdf('Uniform', z(i), a, b);
- end
- G = 0;
- for i=1:r
- %U(i) кол-во выбор. знач., попавших в i-тый интервал разбиения
- %p(i) вер-ть попадания выб.знач. в i-тый интервал разбиения
- G = G + (((U(i)-N*p(i)).^2))/(N*p(i)); % критерий согласия Пирсона
- end
- %1.3. Определить при уровнях значимости 0,1, 0,05, 0,01 критические значения
- % Уровень значимости — это вероятность ошибочного отклонения выдвинутой
- % гипотезы, т.е. вероятность того, что будет отвергнута правильная гипотеза
- % число степеней свободы
- k = r-1 % формула r-n-1 (r-кол-во интервалов, n-число параметров распределения, подбираемых параметров нет)
- p1 = 0.1;
- p2 = 0.05;
- p3 = 0.01;
- % критические значения с помощью обратной кумулятивной функции хи квадрат,
- % при различных уровнях значимости
- G1=chi2inv(1-p1, k);
- G2=chi2inv(1-p2, k);
- G3=chi2inv(1-p3, k);
- % критические значения по таблице
- G_t1=19.8; % для 0.1
- G_t2=22.4; % для 0.05
- G_t3=27.7;% для 0.01
- %2. Критерий Колмогорова (только для непрерывных СВ)
- % распределение супремума разности между теор и эмп ф-ями одинаково
- %2.1. Рассчитать значение статистики для критерия Колмогорова(значения эмпирической и теоретической функциями распределения).
- x = [X_min:0.001:X_max];
- F_teor=cdf('Uniform', x, a, b);
- for i=1:length(x)
- F_emp(i)=0;
- for j=1:N
- if (X(j) < x(i))
- F_emp(i)=F_emp(i)+1;
- end
- end
- F_emp(i)=F_emp(i)/N;
- end
- %ищем супремум
- Max_d=0;
- for i=1:length(x)
- if(abs(F_teor(i)-F_emp(i))>Max_d)
- Max_d=abs(F_teor(i)-F_emp(i));
- end
- end
- D=sqrt(N)*Max_d; %значение статистики
- %2.2. Определить при уровнях значимости 0,1, 0,05, 0,01 критические значения
- D_cr1=1.23; %0.1
- D_cr2=1.36; %0.05
- D_cr3=1.63; %0.01
- % Часть 2. Проверка гипотезы о коэффициенте корреляции
- % Коэффициент корреляции - показатель, характеризующий статистическую
- % связь между двумя или несколькими случайными величинами
- % коэф-т корреляции не значим, т.е. равен 0
- % 3.1
- X = random('Uniform', a, b, N, 1);
- % 3.2
- Y = random('Uniform', a, b, N, 1);
- % 3.3
- p = mean((X-mean(X)).*(Y-mean(Y)))/(sqrt(var(X)*var(Y))); % коэффициент корреляции
- % Вывод:
- % Т.к. коэф-т корреляции близок к 0, то между СВ слабая корреляция,
- % т.е. поведение СВ X почти совсем не влияет на поведение Y (и наоборот)
- % 3.4
- T = p*sqrt(N-2)/sqrt(1-p^2); % значение статистики Т
- % 3.5 критические значения (по таблицам распределения Стьюдента)
- T_1 = 1.64; %0.1
- T_2 = 1.96; %0.05
- T_3 = 2.58; %0.01
- %Y=2*X+b b -выборка из нормального распределения с мат ожиданием 0 и
- % среднеквадратическим отклонением σ=0.001, 100, 1000
- % для 0.001
- b1 = random("Normal", 0, 0.001, N, 1);
- Y1 = 2*X + b1;
- p1 = mean((X-mean(X)).*(Y1-mean(Y1)))/(sqrt(var(X)*var(Y1)));
- T1 = p1*sqrt(N-2)/sqrt(1-p1^2);
- % Вывод:
- % Т.к. коэф-т корреляции близок к 1, то между СВ положительная корреляция,
- % т.е. высокая степень связи и, если зн-я X будут возрастать, то и зн-я Y1
- % также будут увеличиваться
- % для 100
- b2 = random("Normal", 0, 100, N, 1);
- Y2= 2*X + b2;
- p2 = mean((X-mean(X)).*(Y2-mean(Y2)))/(sqrt(var(X)*var(Y2)));
- T2 = p2*sqrt(N-2)/sqrt(1-p2^2);
- % для 1000
- b3 = random("Normal", 0, 1000, N,1);
- Y3 = 2*X + b3;
- p3 = mean((X-mean(X)).*(Y3-mean(Y3)))/(sqrt(var(X)*var(Y3)));
- T3 = p3*sqrt(N-2)/sqrt(1-p3^2);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement