{CORREL.BSP:} program correlation; {$I DECL.TLS} var x_dmat:DatMatrixType_TLS; av_vec,rxy:RealVectorType_TLS; corrmat,ryy:RealMatrixType_TLS; i,j,k,l,m,n,p,f1,f2:integer; tg:real; {$I IO.TLS} {$I INCLUDE.TLD} {$I INCLUDE.TLS} {$I DESCRIPT.TLS} {$I CORREL.TLS} procedure waitk; begin gotoxy(50,25);write('Weiter - druecken');readln; clrscr end; BEGIN clrscr; writeln('Anhand von n=13 PKW-Typen, fuer die die Daten der vier Merkmale Hubraum,'); writeln('Leistung, Verbrauch und Hoechstgeschwindigkeit ermittelt wurden, sollen'); writeln('einige Methoden der Korrelationsanalyse demonstriert werden.'); dat_mat_file_read(x_dmat,'correl.dat'); {-Datenmatrix in x_dmat einlesen-} n:=x_dmat.line[1].n;{Stichprobenumfang} writeln;writeln;writeln('Ausgehend von folgender Datenmatrix :'); dat_mat_write(x_dmat); waitk; {-Mittelwertvektor der Datenmatrix in x_dmat berechnen;Ergebnis in av_vec-} writeln('ergibt sich folgender Mittelwertvektor :'); average_vec(x_dmat,av_vec); p:=av_vec.p;{Anzahl der Variablen} vec_write(av_vec); {-Korrelationsmatrix der Datenmatrix in x_dmat bestimmen;Ergebnis in corrmat-} corr_mat(x_dmat,x_dmat,corrmat); writeln;writeln;writeln('sowie als Korrelationsmatrix :'); mat_write(corrmat); waitk; writeln('Nun wird die Hypothese :'); writeln(' Die Korrelation zwischen dem ersten und dem vierten Merkmal ist Null '); writeln('getestet.'); writeln('Es ergibt sich die folgende t-verteilte Testgroesse'); corr_w_test(corrmat.elt[1,4],n,0,tg,f1); writeln;write(' TG = ',tg:8:4); writeln(' mit ',f1:2,' Freiheitsgraden.'); writeln;writeln('Der entsprechende kritische Wert fuer alpha=5% ist 2.201'); writeln; writeln('==> Die Hypothese wird zum 5%-Niveau verworfen, d.h. Korrelation ist ungleich'); writeln(' Null'); writeln('==> alle Korrelationen zwischen den 4 Merkmalen sind ungleich Null, da sie'); writeln(' alle groesser als die getestete Korrelation sind.'); waitk: writeln('Der Test der Hypothese :'); writeln(' Die Korrelation zwischen dem ersten und dem zweiten Merkmal ist 0.99 .'); writeln('liefert die folgende normal-verteilte Testgroesse'); corr_w_test(corrmat.elt[1,2],n,0.99,tg,f1); writeln;writeln(' TG = ',tg:11:4); writeln; writeln('Der entsprechende kritische Wert fuer alpha=5% ist 1.96'); writeln; writeln('==> Hypothese wird zum 5%-Niveau verworfen, d.h. Korrelation ist ungleich 0.99'); {-Vektor der Korrelationen des dritten mit den anderen Merkmalen in rxy speichern-} m:=3; rxy.p:=corrmat.p-1; j:=0; for i:=1 to corrmat.p do if i<>m then rxy.elt[i-j]:=corrmat.elt[m,i] else j:=j+1; {-Korrelationsmatrix der uebrigen Merkmale(1,2,4)in ryy speichern-} ryy.p:=corrmat.p-1;ryy.q:=corrmat.q-1; l:=0; for i:=1 to corrmat.p do if i<>m then begin k:=0; for j:=1 to corrmat.q do if j<>m then ryy.elt[i-l,j-k]:=corrmat.elt[i,j] else k:=k+1 end else l:=l+1; writeln;writeln; writeln('Nun wird die multiple Korrelation des dritten Merkmals (Verbrauch) mit den'); writeln('anderen Merkmalen (Hubraum, Leistung und Hoechstgeschwindigkeit) geschaetzt.'); writeln('Die ergibt sich zu : '); writeln(mult_corr(rxy,ryy,n,tg,f1,f2):30:4); writeln;writeln; writeln('Fuer den Test der Hypothese :'); writeln(' Die multiple Korrelation ist Null'); writeln('erhaelt man die F-verteilte Testgroesse'); writeln; write(' TG =',tg:8:4); writeln(' mit Freiheitsgraden f1 :',f1:8); writeln('und f2 :':47,f2:8); writeln; writeln('Der entsprechende kritischen Wert fuer alpha=5% ist 3.863'); writeln; writeln('==> Hypothese wird zum 5%-Niveau verworfen, d.h. die multiple Korrelation'); writeln(' ist signifikant zum 5% Niveau ungleich Null'); waitk; writeln('Zuletzt berechnen wir noch den Spearmanschen Korrelationskoeffizient zwischen'); writeln('dem drittem und vierten Merkmal :'); writeln(spearman(x_dmat.line[3],x_dmat.line[4]):50:4) END.