Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Выборочные числовые характеристики. Мы наблюдаем случайный вектор (X, Y), имеющий нормальное распределение:




Мы наблюдаем случайный вектор (X, Y), имеющий нормальное распределение: . Требуется получить выборку этого вектора из n = 425 элементов, и затем найти его выборочные числовые характеристики.

Смоделируем случайный вектор. Вектор можно смоделировать с помощью стандартной функции grand. Тогда искомый вектор получится преобразованием:

Пусть теперь у нас имеется выборка . Требуется отыскать выборочные числовые характеристики.

Математическим ожиданиям соответствуют выборочные средние:

Дисперсиям соответствуют выборочные дисперсии:

Также можно отыскать выборочный коэффициент корреляции:

.

В нашем случае получаем:

0.1437882

- 3.6484266

11.680413

3.5600119

=0.5259053

 

Отклонения выборочных характеристик от действительных:

 

0.1062118

0.0515734

0.9804133

1.4399881

0.0659053

Гипотеза о независимости

Пусть у нас имеется выборка случайного вектора (X, Y). Требуется проверить гипотезу о независимости случайных величин X и Y.

Сначала воспользуемся критерием χ2. Разобьем выборочные значения на одинаковые интервалы группировки, после чего объединим некоторые из них так, чтобы в каждый интервал группировки попало не менее 5 точек.

В результате получились следующие одномерные таблицы частот.

 

Номер интервала
  [-9.6565917; -0.0531472)   0.4715789
  [-0.0531472; 1.8675417)   0.2315789
  [1.8675417; 3.7882306)   0.1621053
  [3.7882306; 9.550273)   0.1347368

 

Номер интервала
  [-9.2029762; -3.7562468)   0.4673684
  [-3.7562468; -2.6669009)   0.2442105
  [-2.6669009; 1.6904826)   0.2884211

 

Обозначения в этих двух таблицах аналогичны обозначениям в пункте 2.1.1.

 

Построим также двумерную таблицу частот. В ней по вертикали расположим интервалы первой координаты вектора, а по горизонтали – второй.

 

Номер интервала      
       
       
       
       

 

Затем вычисляем статистику χ2 по следующей формуле:

,

где K, L – число получившихся интервалов группировки для X и Y соответственно;
ν – двумерная частота группировки;
νX, νY – одномерные частоты группировки для X и Y соответственно.

В нашем случае 84.445194

 

Теперь зададим порог , который представляет собой (1-α)-квантиль распределения .

Получаем, 43.082788

Статистика превышает порог, значит, гипотезу о независимости величин X и Y следует отвергнуть.

Теперь проверим ту же гипотезу с помощью критерия значимости корреляции.

 

Статистика этого критерия:

, где – выборочный коэффициент корреляции.

Получаем, T = 13.447507

Порогом данной статистики является , т.е. -квантиль распределения Стьюдента с числом степеней свободы (n-2), который для заданных данных равен =2.576

Статистика снова превышает порог, следовательно, гипотезу о независимости случайных величин X и Y и по этому критерию следует отвергнуть.

Уравнения регрессии

Имея выборку случайного вектора (X, Y), распределённого по нормальному закону с неизвестными параметрами, требуется построить эмпирические уравнения регрессии величины X на Y и Y на X.

Уравнениями регрессии случайной величины Y на случайную величину X и X на Y соответственно называются уравнения:

Построим геометрическое место точек, удовлетворяющих этим уравнениям, а также точки из выборки .

Надо сказать, что чем ближе к единице будет по абсолютной величине коэффициент корреляции, тем теснее будут расположены точки относительно прямой регрессии и, наоборот, чем ближе к нулю коэффициент корреляции, тем более расплывчато точки будет располагаться относительно прямой.


ЗАКЛЮЧЕНИЕ

В заключении сделаем выводы об изменении качества всех статистических выводов при увеличении объема выборки n, качества построения доверительных интервалов в зависимости от доверительной вероятности γ, качества проверки гипотез в зависимости от уровня значимости α.

При увеличении объема выборки значения выборочных характеристик (выборочное среднее, выборочная дисперсия и т.д.) приближаются к истинными значениями. То есть при увеличении выборки можно получить большую точность оценок.

Если увеличить доверительную вероятность γ, то границы доверительного интервала станут шире, т.е. возрастет вероятность, с которой интервал «накрывает» истинное значение неизвестного параметра.

Уровень значимости α определяет уровень ошибки первого рода (когда гипотеза верна, но она опровергается). Но если мы уменьшаем уровень значимости, стараясь свести вероятность опровергнуть гипотезу к минимальной, то будет увеличиваться вероятность ошибки второго рода (когда гипотеза неверна, но она принимается). Поэтому чаще всего используют уровни значимости 0,05 и 0,01, так как они обеспечивают компромисс между ошибками первого и второго рода


Список литературы

 

1. Коломиец Э.И. Математическая статистика: Метод. указания к решению задач/ Куйбышев. авиац. ин-т. Куйбышев, 1990.

2. Суханов С.В. Дипломная работа. Оформление пояснительной записки: Метод. указания / Самарский гос. аэрокосм. ун-т. Самара, 1999.

3. Ермаков С.М., Михайлов Г.А. Статистическое моделирование. М.: «Наука», 1982.

4. Харин Ю.С., Степанова М.Д. Практикум на ЭВМ по математической статистике. Минск: Изд-во «Университетское», 1987.

5. Тюрин Ю.Н., Макаров А.А. Статистический анализ данных на компьютере /Под ред. Фигурнова В.Э. М.: «ИНФРА-М», 1998.


ПРИЛОЖЕНИЕ Б. Задание №1

function [ x ]= model1 ()

n=475;

a=0.25;

sigma=10.7;

alpha=0.001;

gamma=0.999;

for i=1:1:n

s=0;

for j=1:1:12

s=s+rand();

end

x (i)=((sigma^(1/2))*(s-6))+a;

end

endfunction

function [ y ]= f (x) // Нормальный закон распределения N(a,d)

n=475;

a=0.25;

sigma=10.7;

alpha=0.001;

gamma=0.999;

y = (1/sqrt(2*%pi*sigma)) * exp(-(x -a)^2 / (2*sigma));

endfunction

 

function [ k, u, nu ]= drawHistogram (x) // Построение графиков

n=475;

a=0.25;

sigma=10.7;

alpha=0.001;

gamma=0.999;

k = floor(1 + 3.32* log10 (n)) + 1; // Число интервалов

u = zeros(1, k +1); // Границы интервалов

nu = zeros(1, k); // Частоты интервалов

 

// Вычисление границ интервалов

u (1) = min(x);

u (k +1) = max(x);

du = (u (k +1) - u (1)) / k;

for i = 2: k,

u (i) = u (i-1) + du;

end;

disp(du);

// Вычисление частот интервалов

for i = 1: n,

for j = 1: k -1,

if u (j)<= x (i) & x (i)< u (j+1),

nu (j) = nu (j)+1;

break;

end;

end;

if u (k)<= x (i) & x (i)<= u (k +1),

nu (k) = nu (k)+1;

end;

end;

 

h = zeros(1, k +2); // Высоты

p = zeros(1, k); // Относительные частоты интервалов

uu = zeros(1, k +2); // Центры интервалов

 

// Вычисление высот, отн. частот инте-лов и центров инт-лов

h(1) = 0;

h(k +2) = 0;

uu(1) = u (1) - du/2;

uu(k +2) = u (k +1) + du/2;

for i = 1: k,

p(i) = nu (i) / n;

uu(i+1) = (u (i) + u (i+1)) / 2;

h(i+1) = p(i) / du;

end;

 

disp(u,'Границы интервалов');

disp(nu,'Частоты интервалов');

disp(p,'Относительные частоты интервалов');

disp(sum(nu),'Сумма частот');

disp(sum(p),'Сумма относительных частот');

disp(h(2: k +1),'Высоты столбцов гистограммы');

disp(f (uu(2: k +1)),..

'Теоретическая плотность в серединах инт-лов');

 

// построение графиков

histplot (k, x, style=2, rect=[ u (1)-du, 0, u (k +1)+du, max(h)+0.02]);

// гистограмма

x = [ u (1)-du: 0.0001: u (k +1)+du]; // Значение Х

//для теоретической плотности вероятностей (голубой)

plot2d(uu, h, 1); // Полигон частот (черный)

plot2d(x, f (x), 5); // Теоретическая плотность вероятностей (красный)

endfunction

//x=model1();

//[k,u,nu]=drawHistogram(x);

//disp('Графики построены!');

 

function [ M, D ]= dispersion1 (x)

//выборочное среднее и выборочная дисперсия

n=475;

a=0.25;

sigma=10.7;

alpha=0.001;

gamma=0.999;

v=0;

for i=1:1:n

v=v+ x (i);

end

M =v/n;

k=0;

for i=1:1:n

k=k+(x (i))^2;

end

k=k/n;

D =k- M ^2;

 

endfunction

function []= dispersion2 (x)

n=475;

a=0.25;

sigma=10.7;

alpha=0.001;

gamma=0.999;

[M,D]= dispersion1 (x);

sM=abs(a-M);

disp(sM,'|MX-teta1|')

sD=abs(sigma-D);

disp(sD, '|DX - teta2|');

ss2=n/(n-1)*D;

disp(M, 'Несмещенная оценка мат.ожидания');

disp(ss2, 'Несмещенная оценка дисперсии');

disp(abs(sigma-ss2), '|DX - s`^2|');

endfunction

function []= dispersion3 (x)

//доверительные границы

n=475;

a=0.25;

sigma=10.7;

alpha=0.001;

gamma=0.999;

[M,D]= dispersion1 (x);

interv1=(n*D)/(((3.291+sqrt(2*n-1))^2)/2)

interv2=(n*D)/(((-3.291+sqrt(2*n-1))^2)/2)

interv3=M-(3.291*(sqrt(D)/sqrt(n-1)))

interv4=M+(3.291*(sqrt(D)/sqrt(n-1)))

printf ('доверительный интервал для дисперсии (');

printf ('%f',interv1);

printf (' ');

printf ('%f',interv2);

printf (')\n');

printf ('доверительный интервал для мат.ожидания (');

printf ('%f',interv3);

printf (' ');

printf ('%f',interv4);

printf (')');

disp(M,'Мат.ожидание');

disp(D,'дисперсия');

 

endfunction

function []= stat (x)

n=475;

a=0.25;

sigma=10.7;

alpha=0.001;

gamma=0.999;

k = floor(1 + 3.32* log10 (n)) + 1; // Число интервалов

_u = zeros(1,k+1); // Границы интервалов

_nu = zeros(1,k); // Частоты интервалов

u = zeros(1,k+1); // Границы интервалов

nu = zeros(1,k); // Частоты интервалов

 

// Вычисление границ интервалов

u(1) = min(x);

u(k+1) = max(x);

du = (u(k+1) - u(1)) / k;

for i = 2: k,

u(i) = u(i-1) + du;

end;

 

// Вычисление частот интервалов

for i = 1: n,

for j = 1: k-1,

if u(j)<= x (i) & x (i)<u(j+1),

nu(j) = nu(j)+1;

break;

end;

end;

if u(k)<= x (i) & x (i)<=u(k+1),

nu(k) = nu(k)+1;

end;

end;

// вычисление новых интервалов и частот

_u(1) = u(1);

i = 0; // Счетчик старых значений

j = 0; // Счетчик новых значений

while i<k,

j = j + 1;

while (_nu(j)<5 & i<k),

i = i + 1;

_nu(j) = _nu(j) + nu(i);

end;

_u(j+1)=u(i+1);

if (i==k & _nu(j)<5),

_nu(j-1)=_nu(j-1)+_nu(j);

_u(j) = _u(j+1);

_nu(j) = 0;

_u(j+1) = 0;

j = j - 1;

end;

end;

 

old_p = zeros(1,k); // Старая теоретическая вероятность

for i = 1: k,

old_p(i) = cdfnor("PQ", u(i+1), a, sqrt(sigma)) -..

cdfnor("PQ", u(i), a, sqrt(sigma));

end;

//disp(u,'Границы старых интервалов');

//disp(old_p,'Теоретические вероятности старых интервалов');

 

N = j; //disp(N, 'Новое число интервалов');

_u = _u(1:N+1); //disp(_u, 'Новые границы интервалов');

_nu = _nu(1:N); //disp(_nu, 'Новые частоты интервалов');

_p = _nu / n; //disp(_p, 'Новые относительные частоты интервалов');

 

// Теоретическая вероятность

[M,D]= dispersion1 (x);

p = zeros(1,N); // Параметры известны

pp = zeros(1,N); // Параметры неизвестны

for i = 1: N,

p(i) = cdfnor("PQ", _u(i+1), a, sqrt(sigma)) -..

cdfnor("PQ", _u(i), a, sqrt(sigma));

pp(i) = cdfnor("PQ", _u(i+1), M, sqrt(D)) -..

cdfnor("PQ", _u(i), M, sqrt(D));

end;

 

//disp(p, 'Теоретические вероятности новых интервалов');

//disp(pp, 'Теоретические вероятности новых интервалов (параметры неизвестны)');

//disp(sum(_nu),'Сумма новых частот');

//disp(sum(_p),'Сумма новых относительных частот');

 

function [ ans ]= stat (N, u, p) // Статистика критерия hi^2

ans = 0;

for i = 1: N,

ans = ans + (_nu(i)-n* p (i))^2 / (n* p (i));

end

endfunction

 

hi_2_alpha_0_99 =.. // Распределение hi^2..

.. // alpha = 0.99; n <= 10..

[ 6.635, 9.210, 11.345, 13.277, 15.086,..

16.812, 18.475, 20.090, 21.666, 23.209]';

 

h = hi_2_alpha_0_99(N - 1); // ïîðîã

r = 2; // Число неизвестных параметров

hh = hi_2_alpha_0_99(N - 1 - r);

 

t = stat (N,_u,p);

if t >= h,

disp([t,h],..

'Параметры известны: гипотеза отвержена (t >= h)');

else

disp([t,h],..

'Параметры известны: гипотеза принята (t < h)');

end;

tt = stat (N,_u,pp);

if tt >= hh,

disp([tt,hh],..

'Параметры неизвестны: гипотеза отвержена (t >= h)');

else

disp([tt,hh],..

'Параметры неизвестны: гипотеза принята (t < h)');

end;

endfunction


 

ПРИЛОЖЕНИЕ Б. Задание №2

function [ x ]= model2 ()

a=2;

b=-4;

alpha=0.05;

n=400;

gamma=0.95;

for i=1:1:n

U=rand();

if (U<0.5) then x (i)=(((b-a)*U)/b)^(1/a);

else x (i)=(((b-a)*(U-1))/a)^(1/b);

end

end

endfunction

function [ y ]= ff (x)

a=2;

b=-4;

alpha=0.05;

n=400;

gamma=0.95;

if ((x >=0)&(x <1)) then y =(a*b* x ^(a-1))/(b-a);

else

if (1<= x) then y =((a*b)* x ^(b-1))/(b-a);

else y =0;

end

end

endfunction

function []= drawHistogram2 (x) // Построение графиков

a=2;

b=-4;

alpha=0.05;

n=400;

gamma=0.95;

k = floor(1 + 3.32* log10 (n)) + 1; // Число интервалов

u = zeros(1,k+1); // Границы интервалов

nu = zeros(1,k); // Частоты интервалов

 

// Вычисление границ интервалов

u(1) = min(x);

u(k+1) = max(x);

du = (u(k+1) - u(1)) / k;

for i = 2: k,

u(i) = u(i-1) + du;

end;

 

// Вычисление частот интервалов

for i = 1: n,

for j = 1: k-1,

if u(j)<= x (i) & x (i)<u(j+1),

nu(j) = nu(j)+1;

 

break;

end;

end;

if u(k)<= x (i) & x (i)<=u(k+1),

nu(k) = nu(k)+1;

end;

end;

 

h = zeros(1,k+2); // Высоты

p = zeros(1,k); // Относительные частоты интервалов

uu = zeros(1,k+2); // Центры интервалов

 

// Вычисление высот, отн. частот инте-лов и центров инт-лов

h(1) = 0;

h(k+2) = 0;

uu(1) = u(1) - du/2;

uu(k+2) = u(k+1) + du/2;

for i = 1: k,

p(i) = nu(i) / n;

uu(i+1) = (u(i) + u(i+1)) / 2;

h(i+1) = p(i) / du;

end;

 

disp(u,'Границы интервалов');

disp(nu,'Частоты интервалов');

disp(p,'Относительные частоты интервалов');

disp(sum(nu),'Сумма частот');

disp(sum(p),'Сумма относительных частот');

disp(h(2:k+1),'Высоты столбцов гистограммы');

disp(ff (uu(2:k+1)),..

'Теоретическая плотность в серединах интервалов');

 

// построение графиков

histplot (k, x, style=2, rect=[u(1)-du, 0, u(k+1)+du, max(h)+0.02]);

// гистограмма

x = [u(1)-du: 0.0001: u(k+1)+du]; // Значение Х

//для теоретической плотности вероятностей (голубой)

disp(k);

plot2d(uu, h, 1); // Полигон частот (черный)

plot2d(x, ff (x),5);

// Теоретическая плотность вероятностей (красный)

endfunction

function [ M, D ]= dispersion21 (x)

a=2;

b=-4;

alpha=0.05;

n=400;

gamma=0.95;

k=0;

for i=1:n

k=k+ x (i);

end

c=0;

for j=1:n

c=c+(x (i))^2;

end

M =k/n;

D =(c/n)- M ^2;

endfunction

function []= dispersion22 (x)

a=2;

alpha=0.05;

n=400;

gamma=0.95;

[M,D]= dispersion21 (x);

b=(M*a+M)/(a-M*a-M)

db=abs(-4-b);

disp(db, '|b-b|');

 

endfunction

function []= dispersion23 (x)

//доверительные границы

a=2;

alpha=0.05;

n=400;

gamma=0.95;

[M,D]= dispersion21 (x);

interv1=(n*D)/(((2.807+sqrt(2*n-1))^2)/2)

interv2=(n*D)/(((-2.807+sqrt(2*n-1))^2)/2)

interv3=M-(1.960*(sqrt(D)/sqrt(n-1)))

interv4=M+(1.960*(sqrt(D)/sqrt(n-1)))

printf ('доверительный интервал для дисперсии (');

printf ('%f',interv1);

printf (' ');

printf ('%f',interv2);

printf (')\n');

printf ('доверительный интервал для мат.ожидания (');

printf ('%f',interv3);

printf (' ');

printf ('%f',interv4);

printf (')');

disp(M,'Мат.ожидание');

disp(D,'дисперсия');

 

endfunction

function []= stat2 (x)

a=2;

alpha=0.05;

n=400;

gamma=0.95;

k = floor(1 + 3.32* log10 (n)) + 1;

u = zeros(1,k+1); // Границы интервалов

nu = zeros(1,k); // Частоты интервалов

 

// Вычисление границ интервалов

u(1) = min(x);

u(k+1) = max(x);

du = (u(k+1) - u(1)) / k;

for i = 2: k,

u(i) = u(i-1) + du;

end;

 

// Вычисление частот интервалов

for i = 1: n,

for j = 1: k-1,

if u(j)<= x (i) & x (i)<u(j+1),

nu(j) = nu(j)+1;

break;

end;

end;

if u(k)<= x (i) & x (i)<=u(k+1),

nu(k) = nu(k)+1;

end;

end;

_u = zeros(1,k+1); // границы интервалов

_nu = zeros(1,k); // частоты интервалов

 

// вычисление новых интервалов и частот

_u(1) = u(1);

i = 0; // cчетчик старых значений

j = 0; // счетчик новых значений

while i<k,

j = j + 1;

while (_nu(j)<5 & i<k),

i = i + 1;

_nu(j) = _nu(j) + nu(i);

end;

_u(j+1)=u(i+1);

if (i==k & _nu(j)<5),

_nu(j-1)=_nu(j-1)+_nu(j);

_u(j) = _u(j+1);

_nu(j) = 0;

_u(j+1) = 0;

j = j - 1;

end;

end;

 

function [ y ]= F (x) // функция распределения

// параметры a=teta1, b=teta2

a=-3;

b=1;

alpha=0.05;

n=450;

gamma=0.95;

if ((x >=0)&(x <1)), y = (b/(b-a))* x ^a;

else, if x >=1, y = 1+(a/(b-a))* x ^b;

else, y =0;

end;

end;

endfunction

 

old_p = zeros(1,k); // старая теор. вероятность

for i = 1: k,

old_p(i) = F (u(i+1)) - F (u(i));

end;

disp(u,'границы старых интервалов');

disp(old_p,'теор. вероятности старых интервалов');

 

N = j; disp(N, 'новое число интервалов');

_u = _u(1:N+1); disp(_u, 'новые границы интервалов');

_nu = _nu(1:N); disp(_nu, 'новые частоты интервалов');

_p = _nu / n; disp(_p, 'новые отн. частоты интервалов');

 

// теоретическая вероятность

p = zeros(1,N);

for i = 1: N,

p(i) = F (_u(i+1)) - F (_u(i));

end;

 

disp(p, 'теоретические вероятности новых интервалов');

disp(sum(_nu),'сумма новых частот');

disp(sum(_p),'сумма новых отн. частот');

 

function [ ans ]= stat (N, u, p) // статистика критерия hi^2

ans = 0;

for i = 1: N,

ans = ans + (_nu(i)-n* p (i))^2 / (n* p (i));

end

endfunction

 

hi_2_alpha_0_98 =.. // распределение hi^2..

.. // alpha = 0.98; n <= 10..

[ 5.412, 7.824, 9.837, 11.668, 13.388,..

15.033, 16.622, 18.168, 19.679, 21.161]';

 

r = 2; // число неизвестных параметров

h = hi_2_alpha_0_98(N - 1 - r); // порог

 

t = stat (N,_u,p);

disp('параметры неизвестны');

if t >= h,

disp([t,h],..

'гипотеза отвержена (t >= h)');

else

disp([t,h],..

'гипотеза принята (t < h)');

end;


 

 

ПРИЛОЖЕНИЕ В. Задание №3

function []= model3 ();

n = 475; disp(n, 'объем выборки');

ax = 0.25; disp(ax, 'мат. ожидание X');

dx = 10.7; disp(dx, 'дисперсия X');

ay = -3.7; disp(ay, 'мат. ожидание Y');

dy = 5.0; disp(dy, 'дисперсия Y');

rxy = 0.46; disp(rxy, 'коэффициент корреляции');

alpha = 0.001; disp(alpha, 'уровень значимости');

gamma=0.999;

function [ y ]= f (x, a, d) // нормальный закон распределения N(a,d)

y = (1/sqrt(2*%pi* d)) * exp(-(x - a)^2 / (2* d));

endfunction

 

// выборки случайных величин X~N(ax,dx) и Y~N(ay,dy)

Z1 = grand(1,n,'nor',0,1);

Z2 = grand(1,n,'nor',0,1);

B = [sqrt(dx), 0;..

rxy*sqrt(dy), sqrt(dy*(1-rxy))..

]; // матрица преобразования

X = B(1,1)*Z1 + ax;

Y = B(2,1)*Z1 + B(2,2)*Z2 + ay;

 

//------------------------------------------------------

disp('');

disp('Задание 3.1');

 

xsr = mean (X);

disp(xsr, 'выборочное среднее случайной величины X');

disp(abs(ax-xsr),'|MX - x(среднее)|');

ysr = mean (Y);

disp(ysr, 'выборочное среднее случайной величины Y');

disp(abs(ay-ysr),'|MY - y(среднее)|');

sx2 = mean (X^2) - xsr^2;

disp(sx2, 'выборочная дисперсия случайной величины X');

disp(abs(dx-sx2),'|DX - sx^2|');

sy2 = mean (Y^2) - ysr^2;

disp(sy2, 'выборочная дисперсия случайной величины Y');

disp(abs(dy-sy2),'|DY - sy^2|');

xysr=0; for i=1:n, xysr=xysr+X(i)*Y(i); end;

r_xy = (xysr/n - xsr*ysr) / sqrt(sx2*sy2);

disp(r_xy, 'выборочный коэффициент корреляции');

disp(abs(rxy-r_xy),'|rxy - r^xy|');

 

//------------------------------------------------------

disp('');

disp('Задание 3.2');

 

k = floor(1 + 3.32* log10 (n)) + 1;

disp(k, 'число интервалов');

ux = zeros(1,k+1); // границы интервалов X

uy = zeros(1,k+1); // границы интервалов Y

nux = zeros(1,k); // частоты интервалов X

nuy = zeros(1,k); // частоты интервалов Y

nuxy = zeros(k,k); // частоты прямоугольников

 

// вычисление границ интервалов

ux(1) = min(X);

ux(k+1) = max(X);

uy(1) = min(Y);

uy(k+1) = max(Y);

dux = (ux(k+1) - ux(1)) / k;

duy = (uy(k+1) - uy(1)) / k;

for i = 2: k,

ux(i) = ux(i-1) + dux;

uy(i) = uy(i-1) + duy;

end;

 

K = k; // число интервалов X

L = k; // число интервалов Y

 

function [ nux, nuy, nuxy ]= countFrequencies (ux, uy)

// вычисление частот

K = size(ux,2) - 1;

L = size(uy,2) - 1;

nux = zeros(1,K); // частоты интервалов X

nuy = zeros(1,L); // частоты интервалов Y

nuxy = zeros(K,L); // частоты прямоугольников

for i = 1: n,

jx=0; jy=0;

for j = K: -1: 1, // для Х

if ux (j)<=X(i) & X(i)<= ux (j+1),

nux (j) = nux (j)+1;

jx = j;

break;

end;

end;

for j = L: -1: 1, // для Y

if uy (j)<=Y(i) & Y(i)<= uy (j+1),

nuy (j) = nuy (j)+1;

jy = j;

break;

end;

end;

nuxy (jx,jy) = nuxy (jx,jy) + 1;

end;

endfunction

 

[nux,nuy,nuxy] = countFrequencies (ux,uy);

 

disp(ux, 'границы интервалов X');

disp(nux, 'частоты интервалов X');

disp(nux/n, 'отн. частоты интервалов X');

disp(uy, 'границы интервалов Y');

disp(nuy, 'частоты интервалов Y');

disp(nuy/n, 'отн. частоты интервалов Y');

disp(nuxy, 'частоты прямоугольников');

disp(nuxy/n, 'отн. частоты прямоугольников');

 

function [ ans, ii, jj ]= minInRect (nuxy)

// находит числа меньше 5 в матрице частот

ans = 5; // минимальное число

ii =1; jj =1; // строка и столбец

[K,L] = size(nuxy);

for i = 1: K,

for j = 1: L,

if nuxy (i,j)< ans,

ans = nuxy (i,j);

ii = i;

jj = j;

return;

end;

end;

end;

endfunction

 

[min_in_rect,ii,jj] = minInRect (nuxy);

while min_in_rect < 5,

// работает, пока не выполнено условие min >= 5

if ii==K, ii=K-1; end;

if jj==L, jj=L-1; end;

if K > L,

for i = ii+1: K,

ux(i) = ux(i+1);

end;

ux = ux(1:K);

K = K - 1;

else,

for j = jj+1: L,

uy(j) = uy(j+1);

end;

uy = uy(1:L);

L = L - 1;

end;

[nux,nuy,nuxy]= countFrequencies (ux,uy);

[min_in_rect,ii,jj] = minInRect (nuxy);

end;

 

disp(K, 'новое число интервалов X');

disp(ux, 'новые границы интервалов X');

disp(nux, 'новые частоты интервалов X');

disp(nux/n, 'новые отн. частоты интервалов X');

disp(L, 'новое число интервалов Y');

disp(uy, 'новые границы интервалов Y');

disp(nuy, 'новые частоты интервалов Y');

disp(nuy/n, 'новые отн. частоты интервалов Y');

disp(nuxy, 'новые частоты прямоугольников');

disp(nuxy/n, 'отн. частоты новых прямоугольников');

 

px = zeros(1,K); // относительные частоты X

py = zeros(1,L); // относительные частоты Y

pxy = zeros(K,L); // отн. частоты прямоугольников

 

for i = 1: K, px(i) = nux(i) / n; end;

for i = 1: L, py(i) = nuy(i) / n; end;

for i = 1: K, for j = 1: L,

pxy(i,j) = nux(i)*nuy(j) / n^2;

end; end;

 

// используется критерий проверки значимости rxy

h = 2.576; // порог = (1-alpha)/2 - квантиль

// распределения Стьюдента S(n-2)

t = (r_xy*sqrt(n-2)) / sqrt(1-r_xy^2); // статистика

 

// используется критерий независимости hi^2

hh = cdfnor("X", (K-1)*(L-1), 2*(K-1)*(L-1),..

1-alpha, alpha); // порог

//hh = cdfnor("X", (K-1)*(L-1), 2*(K-1)*(L-1),..

// 1-alpha, alpha); // порог

st = 0;

for i = 1: K,

for j = 1: L,

st = st + (nuxy(i,j)^2) / (nux(i)*nuy(j));

end;

end;

st = n*(st - 1); // статистика

 

disp('используется критерий проверки значимости rxy');

if abs(t) >= h,

disp([abs(t),h],..

'гипотеза о независимости отвержена (|t| >= h)');

else

disp([abs(t),h],..

'гипотеза о независимости принята (|t| < h)');

end;

disp('используется критерий независимости hi^2');

if abs(st) >= hh,

disp([abs(st),hh],..

'гипотеза о независимости отвержена (|t| >= h)');

else

disp([abs(st),hh],..

'гипотеза о независимости принята (|t| < h)');

end;

 

//------------------------------------------------------

disp('');

disp('Задание 3.3');

 

function [ y ]= regrYtoX (x) // регрессия Y на X

y = ysr + r_xy*sqrt(sy2/sx2)*(x -xsr);

endfunction

 

function [ x ]= regrXtoY (y) // регрессия X на Y

x = xsr + r_xy*sqrt(sx2/sy2)*(y -ysr);

endfunction

 

x = [min(X)-1: 0.001: max(X)+1]; // значения X

y = [min(Y)-1: 0.001: max(Y)+1]; // значения Y

 

plot2d(X,Y,0); // значения выборки

plot2d(x, regrYtoX (x),5); // ур-е регрессии Y на X

plot2d(regrXtoY (y),y,5); // ур-е регрессии X на Y

disp('графики построены!');

 

endfunction

 





Поделиться с друзьями:


Дата добавления: 2017-02-25; Мы поможем в написании ваших работ!; просмотров: 496 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Бутерброд по-студенчески - кусок черного хлеба, а на него кусок белого. © Неизвестно
==> читать все изречения...

2437 - | 2356 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.