Раздел 2,раздел 3,раздел 4.
Эти разделы выполняются с помощью программы PROG2.PAS.
Программа вычисляет матрицу коэффициентов парной корреляции между факторами внешней среды и интенсивностью прибытия ВС в АП,а также линейные коэффициенты корреляции по каждому фактору и нтенсивности.
В программе предусматривается возможность самостоятельно выбрать наиболее информативные факторы.
Теснота связи между факторами и интенсивностью прибытия ВС в АП оценивается с помощью линейного коэффициента корреляции.Чем он ближе к 1 , тем связь теснее (коээфициент лин.корр. значим от -1 до +1).
Отбрасываем те факторы,линейный коэффициент корреляции которых близок к
-1,т.к в этом случае связь между факторами и интенсивностью слабая,также отбрасываем факторы с коэффициентом линейной корреляции 1.
В моем варианте оставлены факторы X1 и X3,как наиболее информативные.
В программе также выводится уравнение , с помощью которого в дальнейших разделах будет определятся прогноз интенсивности на плановый год.
PROGRAM prog2;
Uses crt;
LABEL 1,3,4,5,8,9,10;
VAR x:array [1..15,1..15] of real;
x_tr,m4:array [1..15,1..15] of real;
x_tr_x,b,a:array [1..15,1..15] of real;
y,yr:array [1..15] of real;
xx:array [1..15,1..15] of real;
m5,tai,xm,yx:array [1..15] of real;
w1,w2,w3: array [1..15] of integer;
i,j,n,m,h,k,l,q:integer;
f,f2,f3,f4:text;
sl,slov:string;
s,sum,d,t,su,yo,F1,dispF,dispP,ym,R,ST,eps:real;
d1,d2,dy,d3:real;
v:char;
BEGIN
clrscr;
Assign(f,'a:\razd_2-4\prog2.dan');
Assign(f2,'a:\razd_2-4\prog2d.rez');
Assign(f3,'a:\razd_2-4\prog22.rez');
Assign(f4,'a:\razd_2-4\prog222.txt');
rewrite(f4);
rewrite(f3);
reset(f);readln(f,n,m);
rewrite(f2);
readln(f,sl,slov);
writeln(' Y X1 X2 X3 X4 ');
for i:=1 to n do
begin
write(' ');
read(f,y[i]);
write(y[i]:7:2);
write(' ! ');
for j:=1 to m do
begin
read(f,x[i,j]);
write(x[i,j]:5:2,' !');
w2[j]:=j;
w3[j]:=j;
end;
readln(f);
writeln;
end;
readln;clrscr;
writeln('ИСХОДНЫЕ ДАННЫЕ');
GotoXY(47,6);
writeln('Количество наблюдений n=',n:2);
GotoXY(47,8);
writeln('Количество параметров m=',m:1);
readln;
1: clrscr;
ym:=0;
for i:=1 to n do
ym:=ym+y[i]/n;
writeln('Мат.ожидание ym=',ym:7:2);
for i:=2 to m do
begin
d1:=0;
for j:=1 to n do
d1:=d1 + x[j,i]/n;
xm[i]:=d1;
end;
for i:=2 to m do
begin
d1:=0;d2:=0;d3:=0;
for j:=1 to n do
begin
d1:=d1 + (x[j,i]-xm[i])*(y[j]-ym);
d2:=d2 + sqr(x[j,i]-xm[i]);
d3:=d3 + sqr(y[j]-ym);
end;
yx[i-1]:=0;
yx[i-1]:= d1/sqrt(d2*d3);
end;
for i:=1 to m-1 do
for j:=1 to m-1 do
begin
xx[i,j]:=0;
if j=i then xx[i,i]:=1;
end;
for i:=2 to m-1 do
begin
k:=i+1;
8: d1:=0;d2:=0;d3:=0; 11
for j:=1 to n do
begin
d1:=d1 + (x[j,i]-xm[i])*(x[j,k]-xm[k]);
d2:=d2 + sqr(x[j,i]-xm[i]);
d3:=d3 + sqr(x[j,k]-xm[k]);
end;
l:=0;
l:=i-1;
xx[l,k-1]:=0;
xx[l,k-1]:=d1/sqrt(d2*d3);
xx[k-1,l]:=0;
xx[k-1,l]:=d1/sqrt(d2*d3);
if k<m then begin
k:=k + 1;
goto 8;
end;
end;
writeln(' Коэффициенты парной корреляции');
writeln;
writeln(f4,' Линейный коэффициент корреляции ');
for i:=1 to m-1 do
begin
write(yx[i]:5:2);
writeln(f4,' YX',i:1,' ',yx[i]:5:2);
end;
writeln;
writeln;
writeln(f4,' Матрица коэффициентов парной корреляции ');
for i:=1 to m-1 do
begin
for j:=1 to m-1 do
begin
if j=i then
begin
goto 9;
end;
if xx[i,j]=1.00 then
begin
goto 9;
end;
9: write(xx[i,j]:5:2);
write(f4,xx[i,j]:5:2);
end;
writeln(w3[i]:4);
writeln(f4,w3[i]:4);
end;
writeln;
for i:=1 to m-1 do
begin
write(w3[i]:5);
write(f4,w3[i]:5);
end;
writeln;writeln(f4);
writeln('Введите номера факторов, которые хотите удалить');
writeln('Если хотите закончить удаление нажмите - 0');
for i:=1 to m-1 do
begin
readln(w1[i]);
if w1[i]=0 then i:=m-1;
w1[i]:=w1[i]+1;
end;
l:=m;
for i:=1 to m-1 do
begin
if w1[i]<=0 then goto 10;
l:=l-1;
for j:=w1[i] to m-1 do
begin
w2[j-1]:=w2[j];
for k:=1 to n do
x[k,j]:=x[k,j+1];
end;
for q:= i+1 to m-1 do
w1[q]:=w1[q]-1;
end;
readln;
10: clrscr;
m:=l;
for i:=1 to n do
begin
for j:=1 to m do
write(x[i,j]:7:2);
writeln;
end;
writeln('Вы будете удалять еще какие-нибудь факторы (y/n)');
readln(v);
if v='y' then goto 1;
write(' ');
for i:=1 to m-1 do
write(w2[i]:7);
writeln;writeln;
for i:=1 to n do
begin
for j:=1 to m do
write(x[i,j]:7:2);
writeln;
end;
q:=m-1;
writeln(f2,q:3);
writeln(f2,n:3);
for i:=2 to m do
begin
writeln(f2,' Вектор Y');
for j:=1 to n do
write(f2,x[j,i]:7:2);
writeln(f2);
writeln(f2,' Вектор X');
for j:=1 to n do
write(f2,j:7);
writeln(f2);
end;
readln;
clrscr;
for i:=1 to n do
for j:=1 to m do
begin
x_tr[j,i]:=0;
x_tr[j,i]:=x[i,j];
end;
for j:=1 to m do
begin
for i:=1 to m do
begin
sum:=0;
for h:=1 to n do
begin 12
sum:=sum+ x_tr[j,h] * x[h,i];
end;
x_tr_x[i,j]:=sum;
end;
end;
{Шаг 3 *********** Обращение матрицы **********}
for i:=1 to m do
begin
for j:=1 to m do
begin
b[i,j]:=0;
b[i,i]:=1;
a[i,j]:=0;
a[i,j]:=x_tr_x[i,j];
end;
end;
for j:=1 to m do
begin
for i:=j to m do
begin
if a[i,j]=0 then
begin
writeln(' Матрица Сингулярна - не обращается');
readln;
goto 4;
end;
goto 3;
end;
3:
{ d - опорный элемент }
d:=a[j,j];
for h:=1 to m do
begin
a[j,h]:=a[j,h]/d;
b[j,h]:=b[j,h]/d;
end;
for h:=1 to m do
begin
if j=h then goto 5;
d:=a[h,j];
for k:=1 to m do
begin
a[h,k]:=a[h,k] - a[j,k] * d;
b[h,k]:=b[h,k] - b[j,k] * d;
end;
5: end;
end;
for i:=1 to m do
begin
for j:=1 to n do
begin
su:=0;
for k:=1 to m do
su:=su+ b[i,k] * x_tr[k,j];
m4[i,j]:=su;
end;
end;
writeln(f3,m:7);
for j:=1 to m do
begin
sum:=0;
for k:=1 to n do
sum:=sum+ m4[j,k] * y[k];
m5[j]:=0;
m5[j]:=sum;
write(f3,m5[j]:7:2);
end;
writeln(f3);
clrscr;
for i:=1 to n do
begin
yo:=0;
for j:=1 to m do
yo:=yo+m5[j]*x[i,j];
yr[i]:=yo;
end;
writeln;writeln;
writeln(' Расчетные показатели:');
for i:=1 to n do
writeln(' ',yr[i]:7:2);
GotoXY(3,1);
writeln(' МОДЕЛЬ ИМЕЕТ СЛЕДУЮЩИЙ ВИД:');
writeln(f4,'МОДЕЛЬ ИМЕЕТ СЛЕДУЮЩИЙ ВИД:');
GotoXY(3,2);
write(' Y= ',m5[1]:5:2);
write(f4,' Y= ',m5[1]:5:2);
for i:=2 to m do
write('+',m5[i]:5:2,'*X',w2[i-1]:1);
write(f4,'+',m5[i]:5:2,'*X',w2[i-1]:1);
GotoXY(15,6);
writeln(' ОЦЕНКА СТАТИСТИЧЕСКОЙ АДЕКВАТНОСТИ И ДОСТОВЕРНОСТИ МОДЕЛИ');
ym:=0;
for i:=1 to n do
ym:=ym+y[i]/n;
dispP:=0;dispF:=0;eps:=0;
for j:=1 to n do
begin
dispF:=dispF + sqr(y[i]-yr[i]);
dispP:=dispP + sqr(y[i]-ym);
eps:=eps + (abs(y[i]-yr[i])*100)/(y[i]*n);
end;
dispF:=dispF/(n-m-1);
dispP:=dispP/(n-1);
F1:=0;R:=0;ST:=0;
F1:=dispP/dispF;
GotoXY(15,7);
writeln(' Критерий Фишера F ',F1:7:2);
R:=sqrt(1-dispF/dispP);
writeln(f4,' ');
writeln(f4,' Критерий Фишера F ',F1:7:2);
GotoXY(15,8);
writeln(' Коэффициент множественной корреляции R ',R:7:2);
ST:=(R*sqrt(n-m))/(1-sqr(R));
writeln(f4,' Коэффициент множественной корреляции R ',R:7:2);
GotoXY(15,9);
writeln(' Значимость коэффициента R (статистика t) t ',ST:7:2);
writeln(f4,' Значимость коэффициента R (статистика t) t ',ST:7:2); 13
ST:=0;
ST:=sqr(R);
GotoXY(15,10);
writeln(' Коэффициент множественной детерминации D ',ST:7:2);
writeln(f4,' Коэффициент множественной детерминации D ',ST:7:2);
GotoXY(15,11);
writeln(' Средняя ошибка аппроксимации e ',eps:7:2);
writeln(f4,' Средняя ошибка аппроксимации e ',eps:7:2);
for i:=1 to m do
begin
for j:=1 to m do
begin
if i=j then tai[i]:= abs(m5[i])/(sqrt(abs(dispF*b[i,j])));
end;
end;
GotoXY(15,12);
writeln(' Статистические оценки значимости коэффициентов Ai');
writeln(f4,' Статистические оценки значимости коэффициентов Ai');
for i:=1 to m do
begin
GotoXY(62,i+12);
writeln('T(A',i:1,')',tai[i]:7:2);
writeln(f4,'T(A',i:1,')',tai[i]:7:2);
end;
d1:=0;d2:=0;dy:=0;
for i:=1 to n-1 do
begin
d1:=d1 + (y[i]-yr[i])*(y[i+1]-yr[i+1]);
d2:=d2 + sqr(y[i]);
end;
d1:=n/(m-1);
GotoXY(18,21);
writeln('Отношение числа наблюдений к числу параметров',d1:10:1);
writeln(f4,'Отношение числа наблюдений к числу параметров',d1:10:1);
4: GotoXY(17,23);
write(' Если вы хотите закончить работу, нажмите "ENTER" ');readln;
close(f);close(f2);close(f3);close(f4);
end.
Файл исходных данных :
15 15
Вектор y Матрица X
33 1 56 11 32 42 92 42 46 5 12 42 92 52 92 52
44 1 63 13 35 45 95 45 53 8 25 45 95 55 95 55
55 1 66 24 48 48 88 48 56 13 28 48 88 58 88 58
63 1 75 25 41 41 81 51 65 15 31 41 81 51 81 51
75 1 81 33 54 44 74 54 71 21 34 44 74 54 74 54
83 1 88 38 57 47 77 57 88 25 47 47 77 57 77 57
94 1 94 40 61 41 61 61 94 33 51 41 61 51 61 51
100 1 105 44 64 44 64 64 105 37 54 44 64 54 64 54
106 1 111 52 77 47 57 67 121 42 67 47 57 57 57 57
110 1 123 51 71 41 51 71 133 47 71 41 51 51 51 51
122 1 132 63 83 43 49 73 142 53 83 43 43 53 43 53
136 1 144 65 89 43 43 79 144 57 89 49 49 59 49 59
142 1 155 71 92 42 37 82 155 64 92 42 32 52 32 52
152 1 167 74 97 43 32 87 167 68 97 47 37 57 37 57
166 1 175 81 103 43 27 93 177 73 103 43 23 53 23 53
1 182 84 114 44 24 94 182 77 114 44 24 54 24 54
1 183 90 122 45 21 95 193 84 120 44 15 52 15 53
1 189 91 127 40 18 99 200 89 127 43 14 50 14 52
1 193 92 133 44 14 102 209 93 131 43 13 49 13 51
1 195 94 139 43 13 107 212 99 142 42 12 46 12 50
1 199 97 146 42 10 111 218 103 149 42 11 44 11 49
1 202 99 151 46 5 119 224 110 154 41 10 42 10 47
14
Файл результатов :
Линейный коэффициент корреляции
YX1 0.99
YX2 1.00
YX3 0.99
YX4 -0.24
YX5 -0.99
YX6 1.00
YX7 0.99
YX8 0.99
YX9 0.99
YX10 0.09
YX11 -0.98
YX12 0.09
YX13 -0.98
YX14 0.09
Матрица коэффициентов парной корреляции
1.00 0.99 0.98-0.27-0.98 1.00 0.99 0.99 0.99 0.07-0.98 0.07-0.98 0.07 1
0.99 1.00 1.00-0.20-0.99 0.99 0.99 0.99 0.99 0.10-0.98 0.10-0.98 0.10 2
0.98 1.00 1.00-0.15-0.98 0.99 0.98 0.99 0.99 0.17-0.97 0.17-0.97 0.17 3
-0.27-0.20-0.15 1.00 0.33-0.26-0.26-0.26-0.22 0.76 0.34 0.76 0.34 0.76 4
-0.98-0.99-0.98 0.33 1.00-0.99-0.99-0.99-0.98-0.00 0.99-0.00 0.99-0.00 5
1.00 0.99 0.99-0.26-0.99 1.00 0.99 1.00 0.99 0.07-0.98 0.07-0.98 0.07 6
0.99 0.99 0.98-0.26-0.99 0.99 1.00 1.00 0.99 0.06-0.98 0.06-0.98 0.06 7
0.99 0.99 0.99-0.26-0.99 1.00 1.00 1.00 0.99 0.06-0.99 0.06-0.99 0.06 8
0.99 0.99 0.99-0.22-0.98 0.99 0.99 0.99 1.00 0.11-0.97 0.11-0.97 0.11 9
0.07 0.10 0.17 0.76-0.00 0.07 0.06 0.06 0.11 1.00 0.08 1.00 0.08 1.00 10
-0.98-0.98-0.97 0.34 0.99-0.98-0.98-0.99-0.97 0.08 1.00 0.08 1.00 0.08 11
0.07 0.10 0.17 0.76-0.00 0.07 0.06 0.06 0.11 1.00 0.08 1.00 0.08 1.00 12
-0.98-0.98-0.97 0.34 0.99-0.98-0.98-0.99-0.97 0.08 1.00 0.08 1.00 0.08 13
0.07 0.10 0.17 0.76-0.00 0.07 0.06 0.06 0.11 1.00 0.08 1.00 0.08 1.00 14
1 2 3 4 5 6 7 8 9 10 11 12 13 14
МОДЕЛЬ ИМЕЕТ СЛЕДУЮЩИЙ ВИД:
Y= -16.64+0.51X1+ 0.89*X3
Критерий Фишера F 1858.91
Коэффициент множественной корреляции R 1.00
Значимость коэффициента R (статистика t) t 6437.70
Коэффициент множественной детерминации D 1.00
Средняя ошибка аппроксимации e 0.83
Статистические оценки значимости коэффициентов Ai
T(A1) 12.36
T(A2) 8.88
T(A3) 9.06
Отношение числа наблюдений к числу параметров 7.5
Выбранные факторы :
2
15
Вектор Y
56.00 63.00 66.00 75.00 81.00 88.00 94.00 105.00 111.00 123.00 132.00 144.00 155.00 167.00 175.00
Вектор X
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Вектор Y
32.00 35.00 48.00 41.00 54.00 57.00 61.00 64.00 77.00 71.00 83.00 89.00 92.00 97.00 103.00
Вектор X
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
15
