Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Andrianov_kp_2-3.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
299 Кб
Скачать

Раздел 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]