(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