Statistik Library / Referenz

 Omikron Basic im Internet: http://www.berkhan.de

Allgemeines -blättern- Inhaltsverzeichnis



2. Statistic Library Referenz

2.1 An- und Abmelden der Library
2.2 Berechnung der Grundstatistiken
2.3 Verteilungs- und Prüffunktionen
2.4 Einige Zufallszahlengeneratoren
2.5 Konfidenzintervalle
2.6 Tests auf Übereinstimmung mit vorgegeben Sollwerten
2.7 Vergleich zweier Stichproben
2.8 Anpassungstests
2.9 Mehrfeldertafeln
2.10 Varianzanalyse
2.11 Regressionsprobleme
2.12 Zeitreihenanalyse
2.13 Numerische Funktionen
2.14 Ein- und Ausgabeprozeduren
 
 


In diesem Abschnitt sollen die Prozeduren und Funktionen der Statistic Library erläutert werden. Der theoretische Hintergrund der einzelnen Befehle kann jedoch hier nicht gegeben werden. Wenn Sie daher mit der Library öfter arbeiten, werden Sie nicht um den Kauf eines Methodenbuches der Statistik herumkommen. Wir empfehlen Ihnen hier das Buch von SACHS (siehe Literaturverzeichnis), in dem eine Fülle von Methoden der Statistik sehr praxisnah erläutert werden.
 
 




2.1 An- und Abmelden der Library
 
Stat_Init
Rufen Sie diese Prozedur zu Beginn Ihres Programms einmal auf. Vorher kann die Statistic Library nicht benutzt werden.
Wichtig: Diese Prozedur verändert die DATA-Zeiger. Wenn Sie also Ihre eigenen Daten einlesen wollen nachdem Sie Stat_Init aufgerufen haben, müssen Sie vorher den DATA-Zeiger mit RESTORE auf die gewünschten Daten setzen.
 
 
Stat_Exit
Rufen Sie diese Prozedur am Ende Ihres Programms einmal auf. Danach können Sie die Statistic Library nicht mehr benutzen.
 
 
Statistic
Es wird nur eine Copyright-Meldung der Statistic Library ausgegeben.
 
 



2.2 Berechnung der Grundstatistiken
 
FN Mean#(&X#(),N)
X#(1:N) Einzelwerte der Stichprobe.
N Anzahl der Werte.
Berechnet der Mittelwert der Stichprobe X#().
 
 
FN Variance#(&X#(),N)
X#(1:N) Einzelwerte der Stichprobe.
N Anzahl der Werte.
Berechnet die Varianz der Stichprobe X#().
 
 
FN St_Dev#(&X#(),N)
X#(1:N) Einzelwerte der Stichprobe.
N Anzahl der Werte.
Berechnet die Standardabweichung.
 
 
Mean_Variance &X#(),N,R Mean#,R Var#
X#(1:N) Einzelwerte der Stichprobe.
N Anzahl der Werte.
Mean# Mittelwert der Stichprobe.
Var# Varianz der Stichprobe.
Berechnet den Mittelwert und die Varianz der in X#(1) bis X#(N) enthaltenen Einzelwerte.
 
 
FN Mean_Sample#(&X#(,),N)
X#(1:N,0:1) Einzelwerte in X#(1:N,0)und jeweilige Häufigkeit in X#(1:N,1).
N Anzahl der Werte.
Berechnet das gewichtete Mittel der N Stichprobenwerte.
 
 
FN Variance_Sample#(&X#(,),N)
X#(1:N,0:1) Einzelwerte in X#(1:N,0)und jeweilige Häufigkeit in X#(1:N,1).
N Anzahl der Werte.
Berechnet die gewichtete Varianz der N Stichprobenwerte.
 
 
FN St_Dev_Sample#(&X#(,),N)
X#(1:N,0:1) Einzelwerte in X#(1:N,0)und jeweilige Häufigkeit in X#(1:N,1).
N Anzahl der Werte.
Berechnet die gewichtete Standardabweichung der N Stichprobenwerte.
 
 
FN Sigma_Approx#(Stdev#,N)
Stdev# Standardabweichung.
N Anzahl der Werte.
Die wirkliche Standardabweichung normalverteilter Grundgesamtheiten wird durch die mit den obigen Funktionen berechnete empirische Varianz nur verzerrt erhalten. Für N > 10 korrigiert diese Funktion die Verzerrung.
 
 
FN Variation_Coeff#(Stdev#,Mean#)
Stdev# Standardabweichung.
Mean# Mittelwert.
Berechnet den Variationskoeffizienten, d.h. die Standardabweichung in Einheiten des arithmetischen Mittels.
 
 
FN Variation_Coeff_Rel#(Stdev#,Mean#,N)
Stdev# Standardabweichung.
Mean# Mittelwert.
N Anzahl der Werte.
Berechnet den relativen Variationskoeffizienten, also den Variationskoeffizienten in Prozent .
 
 
FN Mean_Geo#(&X#(),N)
X#(1:N) Einzelwerte der Stichprobe.
N Anzahl der Werte.
Berechnet das geometrisches Mittel von N Einzelwerten.
 
 
FN Mean_Harm#(&X#(),N)
X#(1:N) Einzelwerte der Stichprobe.
N Anzahl der Werte.
Berechnet das harmonische Mittel von N Einzelwerten.
 
 
FN Mean_Harm_Sample#(&X#(,),N)
X#(1:N,0:1) Einzelwerte in X#(1:N,0)und jeweilige Häufigkeit in X#(1:N,1).
N Anzahl der Werte.
Berechnet das gewichtete harmonisches Mittel von N Einzelwerten.
 
 





2.3 Verteilungs- und Prüffunktionen
 
Achtung: Nicht alle Prüf- und Verteilungsfunktionen können exakt berechnet werden. Besonders die für Tests wichtigen Umkehrfunktionen müssen oft über Nullstellenalgorithmen ermittelt werden. Im Rahmen der üblichen Tabellen sind die Funktionen jedoch ohne Probleme zu verwenden und liefern Funktionswerte, die alle besser als drei Stellen nach dem Komma sind, was für normale Anwendungen ausreicht.
 
 
 
 
FN Standard#(X#)
X# Variable.
Berechnet den Erwartungswert der Standardnormalverteilung.
 
 
FN Standard_D#(X#)
X# Variable.
Berechnet die Wahrscheinlichkeitsdichte der Standardnormalverteilung.
 
 
FN Standard_Inv#(P#)
P# Variable (0<P#<1).
Berechnet das P#-Quantil der Standardnormalverteilung, also ihre Umkehrfunktion. Wenn die Berechnung nicht durchgeführt werden konnte, wird null zurückgegeben.
 
 
FN Normal#(X#,Mu#,Var#)
X# Variable.
Mu# Mittelwert.
Var# Varianz.
Berechnet den Erwartungswert der allgemeinen Normalverteilung.
 
 
FN Normal_D#(X#,Mu#,Var#)
X# Variable.
Mu# Mittelwert.
Var# Varianz.
Berechnet die Wahrscheinlichkeitsdichte der allgemeinen Normalverteilung.
 
 
FN Normal_Inv#(P#,Mu#,Var#)
P# Variable (0<P#<1).
Mu# Mittelwert.
Var# Varianz.
Berechnet das P#-Quantil der allgemeinen Normalverteilung, also ihre Umkehrfunktion.
 
 
FN Student#(I,X#)
I Anzahl der Freiheitsgrade.
X# Variable.
Berechnet den Erwartungswert der Student-Verteilung (t-Verteilung).
 
 
FN Student_D#(I,X#)
I Anzahl der Freiheitsgrade.
X# Variable.
Berechnet die Wahrscheinlichkeitsdichte der Student-Verteilung (t-Verteilung).
 
 
FN Student_Inv#(I,P#)
I Anzahl der Freiheitsgrade.
P# Variable (0<P#<1).
Berechnet das P#-Quantil der Student-Verteilung (t-Verteilung), also ihre Umkehrfunktion. Wenn die Berechnung nicht durchgeführt werden konnte, wird null zurückgegeben.
 
 
FN Chi2#(I,X#)
I Anzahl der Freiheitsgrade(I>=1).
X# Variable (X#>=1).
Berechnet den Erwartungswert der Chi-Quadrat-Verteilung. Wenn die Berechnung nicht durchgeführt werden konnte, wird null zurückgegeben.
 
 
FN Chi2_D#(I,X#)
I Anzahl der Freiheitsgrade.
X# Variable.
Berechnet die Wahrscheinlichkeitsdichte der Chi-Quadrat-Verteilung.
 
 
FN Chi2_Inv#(I,P#)
I Anzahl der Freiheitsgrade (I>=1).
P# Variable (0<P#<1).
Berechnet das P#-Quantil der Chi-Quadrat-Verteilung, also ihre Umkehrfunktion. Wenn die Berechnung nicht durchgeführt werden konnte, wird null zurückgegeben.
 
 
FN Fisher#(I1,I2,X#)
I1 Anzahl der Freiheitsgrade im Zähler (I1>=1).
I2 Anzahl der Freiheitsgrade im Nenner (I2>=1).
X# Variable.
Berechnet den Erwartungswert der Fischer-Verteilung (F-Verteilung). Wenn die Berechnung nicht durchgeführt werden konnte, wird null zurückgegeben.
 
 
FN Fisher_D#(I1,I2,X#)
I1 Anzahl der Freiheitsgrade im Zähler.
I2 Anzahl der Freiheitsgrade im Nenner.
X# Variable.
Berechnet die Wahrscheinlichkeitsdichte der Fischer-Verteilung (F-Verteilung).
 
 
FN Fisher_Inv#(I1,I2,P#)
I1 Anzahl der Freiheitsgrade im Zähler (I1>=1).
I2 Anzahl der Freiheitsgrade im Nenner (I2>=1).
P# Variable (0<P#<1).
Berechnet das P#-Quantil der Fischer-Verteilung (F-Verteilung), also ihre Umkehrfunktion. Wenn die Berechnung nicht durchgeführt werden konnte, wird null zurückgegeben.
 
 
FN Expo#(X#,Mu#)
X# Variable.
Mu# Mittelwert.
Berechnet den Erwartungswert der Exponentialverteilung.
 
 
FN Expo_Inv#(P#,Mu#)
P# Variable (0<P#<1).
Mu# Mittelwert.
Berechnet das P#-Quantil der Exponentialverteilung, also ihre Umkehrfunktion.
 
 
FN Binomial#(X,N,P#)
X Gewünschte Anzahl der Elemente mit dem Merkmal A.
N Gesamtzahl der Elemente.
P# Konstante Erfolgswahrscheinlichkeit.
Berechnet den Erwartungswert der Binomialverteilung.
 
 
FN Binomial_D#(X,N,P#)
X Gewünschte Anzahl der Elemente mit dem Merkmal A.
N Gesamtzahl der Elemente.
P# Konstante Erfolgswahrscheinlichkeit.
Berechnet die Wahrscheinlichkeitsdichte der Binomialverteilung.
 
 
FN Hypergeo#(X,N,Sx,Sn)
X Gewünschte Anzahl der Elemente mit dem Merkmal A.
N Anzahl der Elemente mit dem Merkmal A.
Sx Summe der gewünschten Elemente mit dem Merkmal A und dem Merkmal B.
Sn Summe der insgesamt vorhandenen Elemente mit dem Merkmal A und dem Merkmal B.
Berechnet den Erwartungswert der hypergeometrischen Verteilung.
 
 
FN Hypergeo_D#(X,N,Sx,Sn)
X Gewünschte Anzahl der Elemente mit dem Merkmal A.
N Anzahl der Elemente mit dem Merkmal A.
Sx Summe der gewünschten Elemente mit dem Merkmal A und dem Merkmal B.
Sn Summe der insgesamt vorhandenen Elemente mit dem Merkmal A und dem Merkmal B.
Berechnet die Wahrscheinlichkeitsdichte der hypergeometrischen Verteilung.
 
 
FN Poisson#(X,Lambda#)
X Variable.
Lambda# Mittelwert (ist bei der Poissonverteilung identisch mit der Varianz).
Berechnet den Erwartungswert der Poisson-Verteilung.
 
 
FN Poisson_D#(X,Lambda#)
X Variable.
Lambda# Mittelwert (ist bei der Poissonverteilung identisch mit der Varianz).
Berechnet die Wahrscheinlichkeitsdichte der Poisson-Verteilung.
 
 





2.4 Einige Zufallszahlengeneratoren
 
Für Simulationen sind Zufallszahlengeneratoren wichtige Hilfsmittel. Die Statistic Library stellt Ihnen einen standardnormalverteilten, einen normalverteilten, sowie einen Chi-Quadrat und ein Fisher-verteilten Zufallszahlengenerator zur Verfügung.
Wenn Sie andere Zufallszahlengeneratoren benötigen, dann rufen Sie einfach die Inverse der benötigten Verteilung mit einer
RND(0) Anweisung auf. Zum Beispiel liefert die durch FN Rnd_Expo#=FN Expo_Inv#(RND(0),5)
definierte Funktion exponentialverteilte Zufallszahlen mit dem Mittelwert 5.
 
 
 
 
FN Rnd_Standard#(Dummy)
Dummy Dieser Parameter hat keine Bedeutung, muß aber angegeben werden.
Berechnet eine standardnormalverteilte Zufallszahl.
 
 
FN Rnd_Normal#(Mu#,Var#)
Mu# Mittelwert.
Var# Varianz.
Berechnet eine normalverteilte Zufallszahl.
 
 
FN Rnd_Chi2#(I)
I Anzahl der Freiheitsgrade.
Berechnet eine Chi-Quadrat-verteilte Zufallszahl.
 
 
FN Rnd_Fisher#(I1,I2)
I1 Anzahl der Freiheitsgrade im Zähler.
I2 Anzahl der Freiheitsgrade im Nenner.
Berechnet eine Fischer-verteilte Zufallszahl.
 
 





2.5 Konfidenzintervalle
 
Wie schon oben angesprochen wurde, liefern die Funktionen in 2.2 immer nur Näherungswerte für den Mittelwert bzw. die Varianz. Mit der Methode der "maximum likelihood" kann man zwar nachweisen, daß diese Werte die besten Werte für die Parameter der Verteilungsfunktion der Grundgesamtheit sind, aus der die Daten stammen, aber sie sind dennoch nur Schätzungen. Man muß daher für die Grundstatistiken Vertrauensbereiche (Konfidenzintervalle) angeben. Für die häufigsten Verteilungsfunktionen können Sie dann die folgenden Prozeduren verwenden:
 
 
Conf_Mean_Normal_One Mean#,Var#,N,Alp#,R L#,R R#,Flag
Mean# Aus den Meßwerten geschätzte Mittelwert.
Var# Varianz der Grundgesamtheit.
N Umfang der Stichprobe.
Alp# Genauigkeit der Schätzung (0.8<=Alp#<=1).
L# Der wahre Mittelwert ist mit der Wahrscheinlichkeit Alp# größer als dieser Wert. L#=0, wenn die Berechnung nicht ausgeführt werden konnte.
R# Der wahre Mittelwert ist mit der Wahrscheinlichkeit Alp# kleiner als dieser Wert. R#=0, wenn die Berechnung nicht ausgeführt werden konnte.
Flag Hier muß 0 übergeben werden, wenn die Varianz aus der Stichprobe geschätzt wurde und 1, wenn Sie aus anderen Informationen bekannt ist.
Diese Prozedur berechnet das Vertrauensintervall für den Mittelwert bei einer normalverteilten Grundgesamtheit und einseitiger Abgrenzung. Das bedeutet, daß der Mittelwert mit der Wahrscheinlichkeit Alp# größer als L# bzw. kleiner als R# ist.

Beispiel:
Als Beispiel wählen wir eine normalverteilte Stichprobe mit Mittelwert Mean#=39.55, vorher bekannter Varianz Var#=9, einem Umfang von N=10 und einer Sicherheitswahrscheinlichkeit von Alp#=0.95. Da die Varianz schon bekannt ist, erhalten wir mit Flag=1 als Ergebnis: L#=37.99.
Der Mittelwert liegt also mit 95-prozentiger Wahrscheinlichkeit oberhalb von 37.99.

Stat_Init
Conf_Mean_Normal_One 39.55,9,10,0.95,L#,R#,1
PRINT L#
INPUT "Ende mit [Return]";Dummy
Stat_Exit
END
 
 
Conf_Mean_Normal_Two Mean#,Var#,N,Alp#,R L#,R R#,Flag
Mean# Aus den Meßwerten geschätzte Mittelwert.
Var# Varianz der Grundgesamtheit.
N Umfang der Stichprobe.
Alp# Genauigkeit der Schätzung (0.8<=Alp#<=1).
L# Linke Grenze des Intervalls, in dem mit der Wahrscheinlichkeit Alp# der wahre Mittelwert liegt. L#=0, wenn die Berechnung nicht ausgeführt werden konnte.
R# Rechte Grenze des Intervalls, in dem mit der Wahrscheinlichkeit Alp# der wahre Mittelwert liegt. R#=0, wenn die Berechnung nicht ausgeführt werden konnte.
Flag Hier muß 0 übergeben werden, wenn die Varianz aus der Stichprobe geschätzt wurde und 1, wenn Sie aus anderen Informationen bekannt ist.
Diese Prozedur berechnet das Vertrauensintervall für den Mittelwert bei einer normalverteilten Grundgesamtheit und zweiseitiger Abgrenzung. Das bedeutet, daß der Mittelwert mit der Wahrscheinlichkeit Alp# in dem durch L# und R# begrenzten Intervall liegt.

Beispiel:
Als Beispiel wählen wir eine normalverteilte Stichprobe mit Mittelwert
Mean#=39.55, vorher bekannter Varianz Var#=9, einem Umfang von N=10 und einer Sicherheitswahrscheinlichkeit von Alp#=0.95. Da die Varianz schon bekannt ist, erhalten wir mit Flag=1 als Ergebnis: L#=37.69 und R#=41.41.
Der Mittelwert liegt also mit 95-prozentiger Wahrscheinlichkeit zwischen 37.69 und 41.41.


Stat_Init
Conf_Mean_Normal_Two 39.55,9,10,0.95,L#,R#,1
PRINT L#,R#
INPUT "Ende mit [Return]";Dummy
Stat_Exit
END
 
 
Conf_Var_Normal_One Var#,N,Alp#,R L#,R R#
Var# Aus den Meßwerten geschätzte Varianz.
N Umfang der Stichprobe.
Alp# Genauigkeit der Schätzung (0.8<=Alp#<=1).
L# Die wahre Varianz ist mit der Wahrscheinlichkeit Alp# größer als dieser Wert. L#=0, wenn die Berechnung nicht ausgeführt werden konnte.
R# Die wahre Varianz ist mit der Wahrscheinlichkeit Alp# kleiner als dieser Wert. R#=0, wenn die Berechnung nicht ausgeführt werden konnte.
Diese Prozedur berechnet das Vertrauensintervall für die Varianz bei einer normalverteilten Grundgesamtheit und einseitiger Abgrenzung. Das bedeutet, daß die Varianz mit der Wahrscheinlichkeit Alp# größer als L# bzw. kleiner als R# ist.
 
 
Conf_Var_Normal_Two Var#,N,Alp#,R L#,R R#
Var# Aus den Meßwerten geschätzte Varianz.
N Umfang der Stichprobe.
Alp# Genauigkeit der Schätzung (0.8<=Alp#<=1).
L# Linke Grenze des Intervalls, in dem mit der Wahrscheinlichkeit Alp# die wahre Varianz liegt. L#=0, wenn die Berechnung nicht ausgeführt werden konnte.
R# Rechte Grenze des Intervalls, in dem mit der Wahrscheinlichkeit Alp# die wahre Varianz liegt. R#=0, wenn die Berechnung nicht ausgeführt werden konnte.
Diese Prozedur berechnet das Vertrauensintervall für die Varianz bei einer normalverteilten Grundgesamtheit und zweiseitiger Abgrenzung. Das bedeutet, daß die Varianz mit der Wahrscheinlichkeit Alp# in dem durch L# und R# begrenzten Intervall liegt.
 
 
Conf_Sigma_Normal_One S#,N,Alp#,R L#,R R#
S# Aus den Meßwerten geschätzte Standardabweichung.
N Umfang der Stichprobe.
Alp# Genauigkeit der Schätzung (0.8<=Alp#<=1).
L# Die wahre Standardabweichung ist mit der Wahrscheinlichkeit Alp# größer als dieser Wert. L#=0, wenn die Berechnung nicht ausgeführt werden konnte.
R# Die wahre Standardabweichung ist mit der Wahrscheinlichkeit Alp# kleiner als dieser Wert. R#=0, wenn die Berechnung nicht ausgeführt werden konnte.
Diese Prozedur berechnet das Vertrauensintervall für die Standardabweichung bei einer normalverteilten Grundgesamtheit und einseitiger Abgrenzung. Das bedeutet, daß die Standardabweichung mit der Wahrscheinlichkeit Alp# größer als L# bzw. kleiner als R# ist.
 
 
Conf_Sigma_Normal_Two S#,N,Alp#,R L#,R R#
S# Aus den Meßwerten geschätzte Standardabweichung.
N Umfang der Stichprobe.
Alp# Genauigkeit der Schätzung (0.8<=Alp#<=1).
L# Linke Grenze des Intervalls, in dem mit der Wahrscheinlichkeit Alp# die wahre Standardabweichung liegt. L#=0, wenn die Berechnung nicht ausgeführt werden konnte.
R# Rechte Grenze des Intervalls, in dem mit der Wahrscheinlichkeit Alp# die wahre Standardabweichung liegt. R#=0, wenn die Berechnung nicht ausgeführt werden konnte.
Diese Prozedur berechnet das Vertrauensintervall für die Standardabweichung bei einer normalverteilten Grundgesamtheit und zweiseitiger Abgrenzung. Das bedeutet, daß die Standardabweichung mit der Wahrscheinlichkeit Alp# in dem durch L# und R# begrenzten Intervall liegt.
 
 
Conf_Bin_P_Two X,N,Alp#,R L#,R R#
X Aus den Meßwerten geschätzte Anzahl der Elemente mit dem Merkmal A.
N Umfang der Stichprobe.
Alp# Genauigkeit der Schätzung (0.8<=Alp#<=1).
L# Linke Grenze des Intervalls, in dem mit der Wahrscheinlichkeit Alp# die wahre Anzahl der Elemente mit dem Merkmal A liegt. L#=0, wenn die Berechnung nicht ausgeführt werden konnte.
R# Rechte Grenze des Intervalls, in dem mit der Wahrscheinlichkeit Alp# die wahre Anzahl der Elemente mit dem Merkmal A liegt. R#=0, wenn die Berechnung nicht ausgeführt werden konnte.
Diese Prozedur berechnet das Vertrauensintervall für die Anzahl der Elemente mit dem Merkmal A bei einer binomialverteilten Grundgesamtheit und zweiseitiger Abgrenzung. Das bedeutet, daß die Anzahl der Elemente mit dem Merkmal A mit der Wahrscheinlichkeit Alp# in dem durch L# und R# begrenzten Intervall liegt. Die Erfolgswahrscheinlichkeit P# ist mit X über die Formel P#=X/N verknüpft.
 
 
Conf_Poisson_Lambda_Two X#,Alp#,R L#,R R#
X# Aus den Meßwerten geschätzter Mittelwert (=Varianz).
Alp# Genauigkeit der Schätzung (0.8<=Alp#<=1).
L# Linke Grenze des Intervalls, in dem mit der Wahrscheinlichkeit Alp# der wahre Mittelwert (=Varianz) liegt. L#=0, wenn die Berechnung nicht ausgeführt werden konnte.
R# Rechte Grenze des Intervalls, in dem mit der Wahrscheinlichkeit Alp# der wahre Mittelwert (=Varianz) liegt. R#=0, wenn die Berechnung nicht ausgeführt werden konnte.
Diese Prozedur berechnet das Vertrauensintervall für den Mittelwert (=Varianz) bei einer poissonverteilten Grundgesamtheit und zweiseitiger Abgrenzung. Das bedeutet, daß der Mittelwert (=Varianz) mit der Wahrscheinlichkeit Alp# in dem durch L# und R# begrenzten Intervall liegt.
 
 





2.6 Tests auf Übereinstimmung mit vorgegeben Sollwerten
 
Die in diesem Kapitel beschriebenen Prozeduren dienen dazu, zu prüfen, ob Sollwerte eingehalten werden.
 
 
Test_Normal_Mu0_One Mu0#,Mean#,Var#,N,Alp#,R Res1,
R Res2,Flag
Mu0# Sollwert für den Mittelwert.
Mean# Mittelwert der Stichprobe.
Var# Varianz der Stichprobe.
N Umfang der Stichprobe.
Alp# Sicherheitswahrscheinlichkeit.
Res1 Ergibt 1, wenn der Sollwert überschritten wurde, sonst 0.
Res2 Ergibt 1, wenn der Sollwert unterschritten wurde, sonst 0.
Flag Hier muß 0 übergeben werden, wenn die Varianz aus der Stichprobe geschätzt wurde und 1, wenn Sie aus anderen Informationen bekannt ist.
Diese Prozedur testet unter der Annahme einer normalverteilten Grundgesamtheit, ob ein Sollwert im Rahmen der Sicherheitswahrscheinlichkeit über- oder unterschritten wurde.
 
 
Test_Normal_Mu0_Two Mu0#,Mean#,Var#,N,Alp#,R Res,Flag
Mu0# Sollwert für den Mittelwert.
Mean# Mittelwert der Stichprobe.
Var# Varianz der Stichprobe.
N Umfang der Stichprobe.
Alp# Sicherheitswahrscheinlichkeit.
Res Ergibt 1, wenn die Nullhypothese erfüllt ist, der Mittelwert also statistisch signifikant von Mu0# abweicht, sonst 0.
Flag Hier muß 0 übergeben werden, wenn die Varianz aus der Stichprobe geschätzt wurde und 1, wenn Sie aus anderen Informationen bekannt ist.
Diese Prozedur prüft unter der Annahme einer normalverteilten Grundgesamtheit, ob der Sollwert für den Mittelwert im Rahmen der Sicherheitswahrscheinlichkeit von der Stichprobe eingehalten wird.
 
 
Test_Normal_Var_One Var0#,Var#,N,Alp#,R Res1,R Res2
Var0# Sollwert für die Varianz.
Var# Varianz der Stichprobe.
N Umfang der Stichprobe.
Alp# Sicherheitswahrscheinlichkeit.
Res1 Ergibt 1, wenn der Sollwert unterschritten wurde, sonst 0.
Res2 Ergibt 1, wenn der Sollwert überschritten wurde, sonst 0.
Diese Prozedur testet unter der Annahme einer normalverteilten Grundgesamtheit, ob ein Sollwert für die Varianz im Rahmen der Sicherheitswahrscheinlichkeit unter- oder überschritten wurde.
 
 
Test_Normal_Var_Two Var0#,Var#,N,Alp#,R Res
Var0# Sollwert für die Varianz.
Var# Varianz der Stichprobe.
N Umfang der Stichprobe.
Alp# Sicherheitswahrscheinlichkeit.
Res Ergibt 1, wenn die Nullhypothese erfüllt ist, die Varianz also ungleich dem Sollwert ist, sonst 0.
Diese Prozedur prüft unter der Annahme einer normalverteilten Grundgesamtheit, ob die Varianz der Stichprobe im Rahmen der Sicherheitswahrscheinlichkeit gleich dem Sollwert für die Varianz ist.
 
 
Test_Bin_P0_Two P0#,X,N,Alp#,R Res
P0# Sollwert für die Wahrscheinlichkeit.
X Anzahl der Elemente mit dem Merkmal A.
N Umfang der Stichprobe.
Alp# Sicherheitswahrscheinlichkeit (0.8<=Alp#<=1).
Res Ergibt 1, wenn die Nullhypothese erfüllt ist, die Wahrscheinlichkeit also ungleich dem Sollwert ist, sonst 0. Wenn der Test nicht durchgeführt werden konnte ist Res=-1.
Diese Prozedur prüft unter der Annahme einer binomialverteilten Grundgesamtheit, ob die Wahrscheinlichkeit der Stichprobe im Rahmen der Sicherheitswahrscheinlichkeit gleich dem Sollwert für die Wahrscheinlichkeit ist.
 
 





2.7 Vergleich zweier Stichproben
 
Wenn man zwei Stichproben vergleichen will, funktioniert das bei bekannten Verteilungsgesetzen am besten, wenn man nicht direkt die Meßwerte vergleicht, sondern die Parameter der Verteilungen. Für normal- und binomialverteilte Grundgesamtheiten haben wir Prozeduren zum Vergleich implementiert.
 
 
Cmp_Normal_Mean_Two Mean1#,Var1#,N1,Mean2#,Var2#,N2,
Alp#,Flag,R Res
Mean1# Mittelwert der ersten Stichprobe.
Var1# Varianz der ersten Stichprobe.
N1 Umfang der ersten Stichprobe.
Mean2# Mittelwert der zweiten Stichprobe.
Var2# Varianz der zweiten Stichprobe.
N2 Umfang der zweiten Stichprobe.
Alp# Sicherheitswahrscheinlichkeit.
Flag In Flag können Sie 3 verschiedene Werte mit folgender Bedeutung übergeben:
Flag=1 : Die Varianzen sind aus anderen Quellen bekannt.
Flag=2 : Die Varianzen sind unbekannt, aber gleich.
Flag=3 : Die Varianzen sind unbekannt und verschieden.
Res Wenn die Mittelwerte der beiden normalverteilten Grundgesamtheiten übereinstimmen, ist Res=0 sonst Res=1.
Diese Prozedur überprüft, ob die Mittelwerte zweier normalverteilter Grundgesamtheiten übereinstimmen.
 
 
Cmp_Normal_Var Var1#,N1,Var2#,N2,Alp#,R Res
Var1# Varianz der ersten Stichprobe.
N1 Umfang der ersten Stichprobe.
Var2# Varianz der zweiten Stichprobe.
N2 Umfang der zweiten Stichprobe.
Alp# Sicherheitswahrscheinlichkeit.
Res Wenn die Varianzen der beiden normalverteilten Grundgesamtheiten übereinstimmen, ist Res=0 sonst Res=1.
Diese Prozedur überprüft, ob die Varianzen zweier normalverteilter Grundgesamtheiten übereinstimmen.
 
 
Cmp_Binomial_P P1#,N1,P2#,N2,Alp#,R Res
P1# Wahrscheinlichkeit der ersten Stichprobe.
N1 Umfang der ersten Stichprobe.
P2# Wahrscheinlichkeit der zweiten Stichprobe.
N2 Umfang der zweiten Stichprobe.
Alp# Sicherheitswahrscheinlichkeit.
Res Wenn die relativen Häufigkeiten der beiden binomialverteilten Grundgesamtheiten übereinstimmen, ist Res=0 sonst Res=1. Wenn der Test nicht durchgeführt werden konnte ist Res=-1.
Vergleich der relativen Häufigkeiten von zwei binomialverteilten Grundgesamtheiten mit dem Vierfeldertest.
Der Vergleich ist nur sinnvoll, wenn die Stichprobe ausreichend groß ist, wenn also gilt:
N1+N2>=20 AND N1*(P1#*N1+P2#*N2)/(N1+N2)>=5 AND N2*(P1#*N1+P2#*N2)/(N1+N2)>=5
 
 
U_Test &X#(),M,&Y#(),N,Alp#,Flag,R Res
X#(1:M) Erste Stichprobe.
M Umfang der ersten Stichprobe (M>=8).
Y#(1:N) Zweite Stichprobe.
N Umfang der zweiten Stichprobe (N>=8).
Alp# Sicherheitswahrscheinlichkeit (0.8<=Alp#<=1).
Flag In Flag können Sie 2 verschiedene Werte mit folgender Bedeutung übergeben:
Flag=1 : Einseitiger Test (Mean_X#<=Mean_Y# gegen Mean_X#>Mean_Y#).
Flag=2 : Zweiseitiger Test.
Res Wenn die beiden Stichproben aus der gleichen Grundgesamtheit stammen, ist Res=0 sonst Res=1.
Wenn der Test nicht durchgeführt werden konnte ist
Res=-1.
Wenn keine Informationen über die Grundgesamtheit vorliegen, kann der sogenannte U-Test noch recht akzeptable Ergebnisse liefern, ob die zwei Stichproben aus der gleichen Grundgesamtheit stammen, oder nicht:
 
 





2.8. Anpassungstests
 
Bisher wurde immer davon ausgegangen, daß Informationen über die Grundgesamtheit, aus der die Stichprobe stammt, vorhanden waren. Falls die Grundgesamtheit nicht bekannt ist, kann man die Anpassungstests verwenden. Man übergibt den folgenden Prozeduren die vermutete Wahrscheinlichkeitsfunktion und diese überprüfen dann, ob die Stichprobe aus ihr stammt. Die wichtigsten und für die meisten Fälle auch völlig ausreichenden Tests für diskrete oder stetige Verteilungsfunktionen sind natürlich in der Statistic Library enthalten. Diese Prozeduren benötigen in dem Feld X#(,) klassierte Daten. Wenn nur unklassierte Werte vorliegen, müssen diese vorher klassiert werden. Hierfür wurde bewußt keine Prozedur implementiert, da die Klassifikation von Daten zu sehr von diesen abhängt.
 
 
Fit_Uniform &X#(,),G,M,Alp#,R P#,R Res
X#(1:G,0:1) Enthält die klassierten Meßwerte.
X#(1:G,0)= Klassenzentren.
X#(1:G,1)= Klassenhäufigkeiten.
G Anzahl der Gruppen.
M Gesamtzahl der Meßwerte.
Alp# Sicherheitswahrscheinlichkeit (0.8<=Alp#<=1).
P# Die Wahrscheinlichkeit, daß eine Gruppe eintritt.
Res Res=1, wenn eine Anpassung an die Gleichverteilung nicht möglich ist, sonst Res=0.
Wenn ein Fehler aufgetreten ist (z.B.
Alp#<0.8) ist Res=-1.
Diese Prozedur führt den Chi-Quadrat-Anpassungstest für einen wichtigen Spezialfall, die Gleichverteilung, durch.

Beispiel:
Ein Würfel werde 840 mal geworfen. Dabei ergeben sich folgende Augenzahlen:

1 = 188 mal
2 = 142 mal
3 = 114 mal
4 = 101 mal
5 = 134 mal
6 = 161 mal

Es soll jetzt geprüft werden, ob man von der Annahme ausgehen kann, daß jede Augenzahl mit der gleichen Wahrscheinlichkeit
P#=1/6 auftritt. Ein einfaches BASIC-Programm zum Test dieser Hypothese sieht z.B. so aus:

Stat_Init
-Die:DATA 1,188,2,142,3,114,4,101,5,134,6,161
DIM A#(6,1)
RESTORE Die
FOR I=1 TO 6
 READ A#(I,0),A#(I,1)
NEXT I
Fit_Equal(&A#(,),6,840,0.95,P#,Result)
IF Result=1
 THEN PRINT "Anpassung NICHT möglich."
 ELSE PRINT "Anpassung durch Gleichverteilung
PRINT "mit P=";P#;" möglich."
ENDIF
INPUT "Beenden mit [Return]";Dummy
Stat_Exit
END
 
 
Fit_Binomial &X#(,),G,M,N,Mean#,Alp#,R P#,R Res
X#(1:G,0:1) Enthält die klassierten Meßwerte.
X#(1:G,0)= Klassenzentren.
X#(1:G,1)= Klassenhäufigkeiten.
G Anzahl der Gruppen.
M Gesamtzahl der Meßwerte.
N Parameter der Binomialverteilung (Anzahl der unabhängigen Wiederholungen).
Mean# Mittelwert der Binomialverteilung.
Alp# Sicherheitswahrscheinlichkeit (0.8<=Alp#<=1).
P# Die Wahrscheinlichkeit, daß eine Gruppe eintritt.
Res Res=1, wenn eine Anpassung an die Binomialverteilung nicht möglich ist, sonst Res=0.
Wenn ein Fehler aufgetreten ist (z.B.
Alp#<0.8) ist Res=-1.
Führt einen Chi-quadrat-Anpassungstest auf eine durch N und Mean# definierte Binomialverteilung durch.
 
 
Fit_General &X#(,),G,M,Alp#,&FN Prob#(0),R Res
X#(1:G,0:1) Enthält die klassierten Meßwerte.
X#(1:G,0)= Klassenzentren.
X#(1:G,1)= Klassenhäufigkeiten.
G Anzahl der Gruppen.
M Gesamtzahl der Meßwerte.
Alp# Sicherheitswahrscheinlichkeit (0.8<=Alp#<=1).
FN Prob#(0) Dies ist eine Wahrscheinlichkeitsfunktion, die Sie selbst definieren müssen und deren Adresse der Prozedur übergeben werden muß. Der Name der Funktion kann natürlich auch anders lauten.
Achtung: Es muß unbedingt ein gültiger Funktionspointer übergeben werden, sonst kann es zu schweren Abstürzen kommen.
Res Res=1, wenn eine Anpassung an die von Ihnen definierte Funktion nicht möglich ist, sonst Res=0.
Wenn ein Fehler aufgetreten ist (z.B.
Alp#<0.8) ist Res=-1.
Diese Prozedur führt den Chi-quadrat-Anpassungstest für eine allgemeine, von Ihnen definierte, diskrete Wahrscheinlichkeitsfunktion durch, die folgende Eigenschaften haben muß:
Die Funktion muß vom Typ Double-Float sein und einen Parameter übernehmen, in dem die Klassenzentren übergeben werden. Als Ergebnis muß sie die jeweilige Wahrscheinlichkeitsdichte zurückliefern, also mindestens für den Bereich der
X#(1:G,0) der Stichprobe definiert sein.
 
 
Kolmo_Smir_Normal &X#(,),Mean#,Var#,G,M,Alp#,Flag,R Res
X#(1:G,0:1) Enthält die klassierten Meßwerte.
X#(1:G,0)= Klassenzentren.
X#(1:G,1)= Klassenhäufigkeiten.
Mean# Mittelwert der Binomialverteilung.
Var# Varianz der Binomialverteilung.
G Anzahl der Gruppen.
M Gesamtzahl der Meßwerte (M>=33).
Alp# Sicherheitswahrscheinlichkeit (0.8<=Alp#<=1).
Flag Wenn Flag=1 ist, dann ist der Test wesentlich genauer. Allerdings sind dann für Alp# nur noch die Werte 0.8,0.85,0.9,0.95,0.99 erlaubt.
Res Res=1, wenn eine Anpassung an die von Ihnen definierte Funktion nicht möglich ist, sonst Res=0.
Wenn ein Fehler aufgetreten ist (z.B.
Alp#<0.8) ist Res=-1.
Wenn anzunehmen ist, daß eine stetige Wahrscheinlichkeitsfunktion vorliegt, dann verwendet man den Kolmogoroff-Smirnoff Anpassungstest. Diese Prozedur testet die Anpassung an eine Normalverteilung.
 
 
Kolmo_Smir_General &X#(,),G,M,Alp#,Flag,&FN Prob#(0),R Res
X#(1:G,0:1) Enthält die klassierten Meßwerte.
X#(1:G,0)= Klassenzentren.
X#(1:G,1)= Klassenhäufigkeiten.
G Anzahl der Gruppen.
M Gesamtzahl der Meßwerte (M>=33).
Alp# Sicherheitswahrscheinlichkeit (0.8<=Alp#<=1).
Flag Wenn Flag=1 ist, dann ist der Test wesentlich genauer. Allerdings sind dann für Alp# nur noch die Werte 0.8,0.85,0.9,0.95,0.99 erlaubt.
FN Prob#(0) Dies ist eine Wahrscheinlichkeitsfunktion, die Sie selbst definieren müssen und deren Adresse der Prozedur übergeben werden muß. Der Name der Funktion kann natürlich auch anders lauten.
Achtung: Es muß unbedingt ein gültiger Funktionspointer übergeben werden, sonst kann es zu schweren Abstürzen kommen.
Res Res=1, wenn eine Anpassung an die von Ihnen definierte Funktion nicht möglich ist, sonst Res=0.
Wenn ein Fehler aufgetreten ist (z.B.
Alp#<0.8) ist Res=-1.
Diese Prozedur führt den Kolmogoroff-Smirnoff Anpassungstest für eine allgemeine, von Ihnen definierte, diskrete Wahrscheinlichkeitsfunktion durch, die folgende Eigenschaften haben muß:
Die Funktion muß vom Typ Double-Float sein und einen Parameter übernehmen, in dem die Klassenzentren übergeben werden. Als Ergebnis muß sie die jeweilige Wahrscheinlichkeitsdichte zurückliefern, also mindestens für den Bereich der
X#(1:G,0) der Stichprobe definiert sein.
 
 





2.9 Mehrfeldertafeln
 
Die genaue Anwendung von Vier-, K*2- oder RC-Feldtafeln kann hier leider nicht erläutert werden. Konsultieren Sie hierzu bitte die im Anhang zitierte Literatur.
 
 
Fourfold A,B,C,D,N,Alp#,Flag,R Res
A Anzahl der Elemente mit dem Merkmal (+) aus der ersten Stichprobe.
B Anzahl der Elemente mit dem Alternativ-Merkmal (-) aus der ersten Stichprobe.
C Anzahl der Elemente mit dem Merkmal (+) aus der zweiten Stichprobe.
D Number of elements with alternate character (-) from second sample.
N Umfang beider Stichproben zusammmengenommen.
Alp# Sicherheitswahrscheinlichkeit (0.8<=Alp#<=1).
Flag In Flag können Sie 2 verschiedene Werte mit folgender Bedeutung übergeben:
Flag=1 : Einseitiger Test.
Flag=2 : Zweiseitiger Test.
Res Wenn die beiden Stichproben aus der gleichen Grundgesamtheit stammen, ist Res=0 sonst Res=1.
Wenn der Test nicht durchgeführt werden konnte ist
Res=-1.
Führt den Vierfelder-Chi-Quadrat-Test durch, ob die Stichproben im Vierfelderschema aus der gleichen Grundgesamtheit stammen.

Das Schema sieht so aus:

I \ II

(+)

(-)

Insgesamt

1. Stichprobe

A

B

A+B

2. Stichprobe

C

D

C+D

Insgesamt

A+C

B+D

N

 
 
Brandt_Snedecor &X(,),K,Alp#,R Res
X#(1:K,0:1) X#(1:K,0)= Jeweilige Anzahl der Elemente mit dem
Merkmal (+).
X#(1:K,1)= Jeweilige Anzahl der Elemente mit dem
Merkmal (-).
K Anzahl der Stichproben.
Alp# Sicherheitswahrscheinlichkeit (0.8<=Alp#<=1).
Res Wenn die Stichproben aus der gleichen Grundgesamtheit stammen, ist Res=0 sonst Res=1.
Wenn der Test nicht durchgeführt werden konnte ist
Res=-1.

Diese Prozedur führt den K*2 - Felder-Chi-Quadrat-Test nach BRANDT und SNEDECOR durch. Er ergibt sich aus dem Vierfeldertest durch die Überlegung, daß es nicht immer sinnvoll ist, nur zwei Stichproben auf Homogenität zu untersuchen, sondern daß man sehr oft K Stichproben, die zwei Merkmale (+) und (-) aufweisen, darauf untersuchen muß. Das K*2 Felder-Schema ist bei dieser Prozedur durch das Feld X#(,) repräsentiert.

Beispiel:
Beispiel aus SACHS:

In einer Therapie seien insgesamt 80 Personen behandelt worden. Eine Gruppe von 40 Kranken sei nur symptomatisch behandelt worden (d.h. es wurde nur auf die Krankheitserscheinungen, nicht aber auf ihre Ursachen eingegangen), die andere Gruppe erhielt eine Standarddosis eines neuen Medikamentes. Das Resultat der Behandlung wird durch die Besetzungszahlen in dem folgenden 3*2 - Schema (roter Teil) ausgedrückt:

Therapeutischer Erfolg

Therapie

Insgesamt

symptomatisch

spezifisch (Normaldosis)

schnell geheilt

14

22

36

langsam geheilt

18

16

34

gestorben

8

2

10

Insgesamt

40

40

80


Es soll nun auf dem 95%-Niveau untersucht werden, ob die therapeutischen Ergebnisse bei beiden Therapien gleich oder unterschiedlich sind. Vom Schema benötigen wir zur Auswertung nur den inneren (roten) Teil, da der Rest ja durch einfache Summierung erhalten werden kann:

Stat_Init
-Patients:DATA 14,22,18,16,8,2
DIM X#(3,1)
RESTORE Patients
FOR I=1 TO 3
 READ X#(I,0),X#(I,1)
NEXT I
Brandt_Snedecor(&X#(,),3,0.95,Result)
IF Result
 THEN PRINT "Unterschiedliche Ergebnisse"
 ELSE PRINT "Gleiches Ergebniss"
ENDIF
INPUT "Beenden mit [Return]";Dummy
Stat_Exit
END
 
 
Twoway_R_C &X(,),R,C,Alp#,R Res
X(1:R,1:C) X#(1:K,1)= Jeweilige Anzahl der Elemente mit dem
Merkmal (1).
X#(1:K,2)= Jeweilige Anzahl der Elemente mit dem
Merkmal (2)
........
........
      
X#(1:K,C)= Jeweilige Anzahl der Elemente mit dem
Merkmal (C).
R Anzahl der Stichproben.
C Anzahl der Merkmale.
Alp# Sicherheitswahrscheinlichkeit (0.8<=Alp#<=1).
Res Wenn die Stichproben aus der gleichen Grundgesamtheit stammen, ist Res=0 sonst Res=1.
Wenn der Test nicht durchgeführt werden konnte ist
Res=-1.
Das R*C-Schema ist die Ausweitung des K*2 - Schemas auf R Zeilen und C Spalten. Es gibt jetzt also nicht nur zwei Merkmale (+ und -) sondern C verschiedene Merkmale. Ansonsten ergeben sich keine wesentlichen Veränderungen an der Rechnung.

Beispiel:
Zur Veranschaulichung nehmen wir das Beispiel aus dem BRAND-SNEDECOR Test, nur daß jetzt eine dritte Gruppe berücksichtigt wird, die die zweifache Normaldosis bekommen hat (auch dieses Beispiel stammt aus SACHS):

Therapeutischer
Erfolg

Therapie

Insgesamt

symptomatisch

spezifisch

Normaldosis

2x Nornaldosis

schnell geheilt

14

22

32

68

langsam geheilt

18

16

8

42

gestorben

8

2

0

10

Insgesamt

40

40

40

120



Es soll nun auf dem 95%-Niveau untersucht werden, ob die therapeutischen Ergebnisse bei allen drei Therapien gleich oder unterschiedlich sind. Vom Schema benötigen wir zur Auswertung nur den inneren (roten) Teil, da der Rest ja durch einfache Summierung erhalten werden kann:


Stat_Init
-Patients:DATA 14,22,32,18,16,8,8,2,0
DIM X#(3,3)
RESTORE Patients
FOR I=1 TO 3
 FOR J=1 TO 3
  READ X#(I,J)
 NEXT J
NEXT I
Twoway_R_C(&X#(,),3,3,0.95,Result)
IF Result
 THEN PRINT "Unterschiedliche Ergebnisse"
 ELSE PRINT "Gleiches Ergebniss"
ENDIF
INPUT "Beenden mit [Return]";Dummy
Stat_Exit
END
 
 





2.10 Varianzanalyse
 
Die Varianzanalyse ist eines der schwierigsten Gebiete der ganzen Statistik. Es war nicht möglich, in die Statistic Library viele varianzanalytische Methoden einzubauen, da hier kaum eine Verallgemeinerung der Methoden möglich ist. Damit sie aber nicht ganz untergeht, haben wir wenigstens eine recht nützliche Prozedur implementiert, die die für eine zweifache Varianzanalyse nötigen Daten berechnet. Es handelt sich hier um eine BASIC-Version des FORTRAN-Programms von BRANDT aus seinem Buch "Datenanalyse".
 
 
Variance_Analysis &X#(,,),Ni,Nj,Nk,&Xbi#(),&Xbj#(),
&Xbij#(,),&Q#(),&Df#(),&F#()
X#(1:Ni,1:Nj,1:Nk) Dieses Feld enthält die Meßwerte. Ein einzelnes Feldelement X#(I,J,K) gibt an, wieviele Elemente das J-te Merkmal bei der K-ten Stichprobe in der I-ten Gruppe tragen.
Ni Anzahl der Gruppen.
Nj Anzahl der Merkmale pro Stichprobe.
Nk Anzahl der Stichproben pro Gruppe.
Xbi#(1:Ni) Dieses Feld müssen Sie auf Ni dimensionieren. Sie erhalten in diesem Feld die Mittelwerte der I-ten Gruppen über alle Nj Merkmale und alle Nk Stichproben zurück.
Xbj#(1:Nj) Dieses Feld müssen Sie auf Nj dimensionieren. Sie erhalten in diesem Feld die Mittelwerte der J-ten Merkmale über alle Ni Gruppen und alle Nk Stichproben zurück.
Xbij#(1:Ni,1:Nj) Dieses Feld müssen Sie auf Ni,Nj dimensionieren. Sie erhalten in diesem Feld die Mittelwerte der I-ten Gruppen mit den J-ten Merkmalen über alle Nk Stichproben zurück.

Q#(1:6) Q#(1)= Summe der Abweichungsquadrate aller Ni Gruppen vom jeweiligen Mittelwert der I-ten Gruppe.
Q#(2)= Summe der Abweichungsquadrate aller Nj Merkmale vom jeweiligen Mittelwert des J-ten Merkmals.
Q#(3)= Summe der Abweichungsquadrate aller Ni Gruppen vom jeweiligen Mittelwert der I-ten Gruppe und aller Nj Merkmale vom jeweiligen Mittelwert des J-ten Merkmals.
Q#(4)=Q#(2)+Q#(3).
Q#(5)
= Summe der Abweichungsquadrate über alle Ni*Nj*Nk Meßwerte vom jeweiligen Mittelwert der I-ten Gruppen mit den J-ten Merkmalen über alle Nk Stichproben.
Q#(6)= Summe der Abweichungsquadrate über alle Ni*Nj*Nk Meßwerte vom Mittelwert aller Meßwerte.
Df#(1:6) Dieses Feld enthält die Freiheitsgrade der Summen in Q#(1:6).
Df#(1)=Ni-1
Df#(2)=Nj-1
Df#(3)=(Ni-1)*(Nj-1)
Df#(4)=(Ni-1)*(Nj-1)*(Nk-1)
Df#(5)=Ni*Nj*(Nk-1)
Df#(6)=Ni*Nj*Nk-1
F#(1:4) Enthält die F-Quotienten:
F#(I)=Q#(I)*Df#(5)/Df#(I)*Q#(5)

Diese Prozedur berechnet die für eine zweifache Varianzanalyse nötigen Daten aus den in X#(,,) übergebenen Meßwerten.

Beispiel:
Ein Beispiel (VarianceAnalysis.BAS) für die Vervendung dieser Prozedur finden Sie im Ordner DEMO.
 
 





2.11 Regressionsprobleme
 
Hatten wir uns bisher immer nur mit dem Vergleich von Meßwerten oder mit Tests beschäftigt, so kommt jetzt ein neuer Faktor hinzu: die Abhängigkeit von Meßwerten untereinander. So sollen die jetzt beschriebenen Prozeduren die Approximation abhängiger Daten durch eine Gerade, ein Polynom, eine Hyperebene oder ähnliches ermöglichen. Wir beginnen mit dem einfachsten Fall, der Darstellung von Meßwertpaaren durch eine Gerade.
 
 
Lin_Reg &X#(,),N,R R#,R Ax#,R Bx#,R Ay#,R By#,R Sx#,R Sy#,
R Sxy#,R Syx2#,R Sxy2#
X#(1:N,0:1) Meßwerte:
X-Werte in
X#(1:N,0).
Y-Werte in X#(1:N,1).
N Anzahl der Meßpunkte.
R# Korrelationskoeffizient (je näher ABS(R#) an 1 ist, desto besser ist die Korrelation).
Ax# Steigung der ersten Geraden.
Bx# Schnittpunkt der ersten Geraden mit der X-Achse.
Ay# Steigung der zweiten Geraden.
By# Schnittpunkt der zweiten Geraden mit der Y-Achse.
Sx# Varianz der X-Werte.
Sy# Varianz der Y-Werte.
Sxy# Kovarianz.
Syx2# Restvarianz bezüglich der Y-Geraden.
Sxy2# Restvarianz bezüglich der X-Geraden.
Diese Prozedur berechnet die beiden Regressionsgeraden X=Ax*Y+Bx und Y=Ay*X+By.

Beispiel:
Ein Beispiel (LinearRegression.BAS) für die Vervendung dieser Prozedur finden Sie im Ordner DEMO.
 
 
Test_Corr R#,N,Alp#,R Res
R# Korrelationskoeffizient wie z.B. von Lin_Reg zurückgeliefert.
N Anzahl der Meßpunkte.
Alp# Sicherheitswahrscheinlichkeit.
Res Res=1, wenn keine Korrelation vorliegt, sonst Res=0.
Mit dieser Prozedur können Sie überprüfen, ob auch wirklich eine Korrelation zwischen den beiden Variablen der linearen Regression vorliegt.
 
 
Cmp_Rho Rho#,R#,N,Alp#,R Res
Rho# Vorgegebener Korrelationskoeffizient, mit dem verglichen werden soll.
R# Korrelationskoeffizient wie z.B. von Lin_Reg zurückgeliefert.
N Anzahl der Meßpunkte.
Alp# Sicherheitswahrscheinlichkeit.
Res Res=0, wenn die beiden Korrelationskoeffizienten im Rahmen der angegebenen Sicherheitswahrscheinlichkeit übereinstimmen, sonst Res=1.
Diese nützliche Prozedur vergleicht den Korrelationskoeffizienten einer Stichprobe von N Punkten mit einem vorgegebenen Korrelationskoeffizienten.
 
 
Mult_Reg &X#(,),N,M,&Y#(),&Z#()
X#(1:N,0:M) N Meßwerte von M unabhängigen Variablen:
Konstanter Term in
X#(1:N,0).
Meßwerte der ersten unabhängigen Variablen in
X#(1:N,1).
.......
.......

Meßwerte der M-ten unabhängigen Variablen in X#(1:N,M).
N Anzahl der Meßpunkte.
M Anzahl der unabhängigen Variablen.
Y#(1:N) N Meßwerte der abhängigen Variablen
Z#(1:M,0) Enthält nach Ausführung der Regression die Koeffizienten der Hyperebene.
Diese Prozedur berechnet die multiple Regression von N Meßwerten M abhängiger Variablen mit der Methode der kleinsten Quadrate nach Gauss, die den Anspruch der "maximum likelihood" erfüllt.
Wir möchten hier noch auf das ausgezeichnete Buch "Applied Regression Analysis" hinweisen, in dem auch die Arbeit mit noch besseren Prozeduren erläutert wird, die auf die Korrelationskoeffizienten zwischen den abhängigen Variablen eingehen. Sie sollten sich diese auf jeden Fall mit der Prozedur
Correlation_Coeffs ausgeben lassen, um so überprüfen zu können, ob es nötig ist, alle Variablen auch mitzuschleppen.

Beispiel:
Ein Beispiel (MultiLinearRegression.BAS) für die Vervendung dieser Prozedur finden Sie im Ordner DEMO. Wir wollen hier noch ausdrücklich darauf hingewiesen, daß die Prozedur nicht direkt z.B. ein Polynom dritten Grades an die Meßwerte anpassen kann. Sie müssen hier die quadratischen und kubischen Terme der Variablen
X durch Y=X^2 und Z=X^3 substituieren. Auch dieses wird Ihnen in dem Demo-Programm gezeigt.
 
 
Correlation_Coeffs &X#(,),N,M,&R#(,)
X#(1:N,0:M) N Meßwerte von M unabhängigen Variablen:
Konstanter Term in
X#(1:N,0).
Meßwerte der ersten unabhängigen Variablen in
X#(1:N,1).
.......
.......

Meßwerte der M-ten unabhängigen Variablen in X#(1:N,M).
N Anzahl der Meßpunkte.
M Anzahl der unabhängigen Variablen.
R#(0:M,0:M) In diesem Feld werden die Korrelationskoeffizienten zwischen den Variablen zurückgeliefert.
Diese Prozedur berechnet die Korrelationskoeffizienten zwischen den M unabhängigen Variablen.
 
 




2.12 Zeitreihenanalyse
 
Zur Zeitreihenanalyse existiert bis jetzt nur eine leisungsstarke Prozedur: Sie dient zur Berechnung der Autokorrelationsfunktion einer Reihe von äquidistanten Meßwerten. Gehen wir z.B. davon aus, daß Sie ein Jahr lang jede Stunde den Sauerstoffgehalt in einem Gewächshaus gemessen haben und es Sie interessiert, ob die Sauerstoffproduktion zeitabhängig ist (z.B. in der Nacht mehr als am Tage). Für diese Untersuchung könnten Sie natürlich eine Kurve ihrer Meßwerte aufzeichnen, was bei sehr vielen Meßpunkten aber recht mühsam ist. Einfacher ist es da, mit einer mathematischen Methode die Meßkurve gegen sich selbst zu verschieben und auszurechnen, wie gut diese Funktion auf sich selbst paßt. Diese Arbeit übernimmt die Statistic Library für Sie.
 
 
Autocorr &X#(),N,M,&R#(),Flag.
X#(1:N) Enthält die Meßwerte.
N Anzahl der Meßwerte.
M Maximale Verschiebung von X#(1:N) gegen sich selbst.
R#(1:M) In diesem Feld werden für jede der M Verschiebungen die berechneten Korrelationskoeffizienten zurückgegeben.
Flag Wenn Flag=1 ist, wird X#(1:N) normalisiert. Es empfiehlt sich, diese Normalisierung immer dann durchführen zu lassen, wenn der Mittelwert der X#(1:N) ungleich Null ist.
Diese Prozedur berechnet die Autokorrelationskoeffizienten für die N Meßwerte in X#(1:N). Bei sehr vielen Meßwerten kann diese Prozedur etwas Zeit benötigen. Denken Sie also nicht gleich, daß Ihr Computer abgestürzt ist.

Beispiel:
Ein Beispiel (Autocorrelation.BAS) für die Vervendung dieser Prozedur finden Sie im Ordner DEMO. Bevor Sie mit echten Daten arbeiten, sollten Sie sich dieses Programm mal anschauen.
 
 





2.13 Numerische Funktionen
 
Die nun folgenden Funktionen und Prozeduren haben sich bei der Programmierung statistischer Problemstellungen als recht sinnvoll erwiesen. Sie kommen alle aus dem Bereich der Numerik oder dienen zur Darstellung von Meßwerten.
 
 
FN Binomial#(N,K)
N Oberer Teil des Binomialkoeffizienten.
K Unterer Teil des Binomialkoeffizienten.
Berechnet den Binomialkoeffizienten auch für sehr große N und K ohne einen Overflow zu erzeugen, indem Terme des Zählers während der Berechnung permanent gegen Terme des Nenners gekürzt werden.
 
 
Normalize &X#(,),N,R Sum#
X#(1:N,1) In diesem Feld müssen die zu normalisierenden Werte übergben werden. Nach der Rückkehr stehen in diesem Feld dann die relativen Häufigkeiten.
N Anzahl der Werte.
Sum# Summe aller Werte.
Diese Prozedur normalisiert die gruppierten Daten in X#(1:N,1) dergestalt, daß nach dem Aufruf anstelle der Gruppenhäufigkeit die relative Häufigkeit steht. Diese Prozedur ist sehr nützlich bei der Berechnung von Prozentzahlen.
 
 





2.14 Ein- und Ausgabeprozeduren
 
Nun noch einige Prozeduren zur einfachen Datenerfassung und zur graphischen Darstellung Ihrer Daten.
 
 
Input_1 &X#(),N,Flag
X#(1:N) In dieses Feld werden die Daten eingelesen.
N Anzahl der Meßwerte.
Flag Wenn Flag=1 ist, werden die Daten mit INPUT #1 aus einer Datei eingelesen. Diese muß natürlich vorher mit OPEN "I",1,Fsspec$ geöffnet worden sein.
Wenn
Flag=0 ist, werden die Daten von der Tastatur geholt, müssen also einzeln eingetippt werden.
Diese Prozeduren dienen zur Eingabe eines eindimensionalen Feldes mit N Elementen.
 
 
Input_2 &X#(,),N,M,Flag
X#(1:N,1:M) In dieses Feld werden die Daten so eingetragen, daß bei jeweils konstantem erstem Index die Elemente des zweiten Index (1:M) eingelesen werden.
N Maximaler erster Index.
M Maximaler zweiter Index.
Flag Wenn Flag=1 ist, werden die Daten mit INPUT #1 aus einer Datei eingelesen. Diese muß natürlich vorher mit OPEN "I",1,Fsspec$ geöffnet worden sein.
Wenn
Flag=0 ist, werden die Daten von der Tastatur geholt, müssen also einzeln eingetippt werden.
Diese Prozeduren dienen zur Eingabe eines zweidimensionalen Feldes mit N Spalten und M Zeilen.
 
 
Block_Chart &X#(,),N,X,Y,B,H[,Flag]
X#(1:N,1) Enthält die darzustellenden Werte.
N Anzahl der Werte.
X X-Wert der linken oberen Ecke des Diagramms.
Y Y-Wert der linken oberen Ecke des Diagramms.
B Breite des Diagramms.
H Höhe des Diagramms.
Flag Wenn Flag=0 ist, oder weggelassen wird, werden für die einzelnen Segmente des Blockdiagramms die Füllstile vom Typ 2 verwendet (FILL STYLE= 2,1:24). Dies ist vorteilhaft bei schwarzweißer Darstellung (z.B. auf einem Drucker).
Wenn
Flag=1 ist, werden die Farben 16 bis 255 (FILL COLOR= 16:255) bei vollflächiger Füllung (FILL STYLE= 1,1) benutzt.
Wenn
Flag=3 ist, werden sowohl die Farben 16 bis 255 (FILL COLOR= 16:255) als auch die Füllstile (FILL STYLE= 2,1:24) variiert.
Sind alle Füllstile oder Farben verbraucht, wird wieder von vorn angefangen.

Dies Prozedur zeichnet ein Blockdiagramm in das durch X,Y,B,H abgegrenzte Gebiet. Die unteren 10% der Box bleiben für eine evtuelle Beschriftung Ihrerseits frei. Die Prozedur setzt nur den Füllstil und/oder die Füllfarbe. Alle anderen Zeichenattribute (z.B. Linienstärke) können Sie selbst einstellen. Die Ausgabe kann mit dem BASIC-Befehl GRAF_PORT auch umgeleitet werden.

Beispiel:
Ein Beispielprogramm für die Anwendung dieser Prozedur finden Sie im DEMO-Ordner (Chart.BAS).
 
 
Pie_Chart &X#(,),X,Y,R[,Flag]
X#(1:N,1) Enthält die darzustellenden Werte.
X X-Wert des Mittelpunkts des Kreisdiagramms.
Y Y-Wert des Mittelpunkts des Kreisdiagramms.
R Radius des Kreisdiagramms.
Flag Wenn Flag=0 ist, oder weggelassen wird, werden für die einzelnen Segmente des Blockdiagramms die Füllstile vom Typ 2 verwendet (FILL STYLE= 2,1:24). Dies ist vorteilhaft bei schwarzweißer Darstellung (z.B. auf einem Drucker).
Wenn
Flag=1 ist, werden die Farben 16 bis 255 (FILL COLOR= 16:255) bei vollflächiger Füllung (FILL STYLE= 1,1) benutzt.
Wenn
Flag=3 ist, werden sowohl die Farben 16 bis 255 (FILL COLOR= 16:255) als auch die Füllstile (FILL STYLE= 2,1:24) variiert.
Sind alle Füllstile oder Farben verbraucht, wird wieder von vorn angefangen.

Dies Prozedur zeichnet ein Kreisdiagramm in das durch X,Y,R begrenzte Gebiet. Die Prozedur setzt nur den Füllstil und/oder die Füllfarbe. Alle anderen Zeichenattribute (z.B. Linienstärke, Außenlinie :) können Sie selbst einstellen. Die Ausgabe kann mit dem BASIC-Befehl GRAF_PORT auch umgeleitet werden.

Beispiel:
Ein Beispielprogramm für die Anwendung dieser Prozedur finden Sie im DEMO-Ordner (Chart.BAS).
 
 
Plot_2d_1 &X#(,),N,X,Y,B,H,R X_Max,R X_Min,R Y_Max,R Y_Min
X#(1:N,0:1) Enthält die Funktionswerte:
X-Werte in
X#(1:N,0).
Y-Werte in
X#(1:N,1).
N Anzahl der Wertepaare.
X X-Wert der linken oberen Ecke des Diagramms.
Y Y-Wert der linken oberen Ecke des Diagramms.
B Breite des Diagramms.
H Höhe des Diagramms.
X_Max Maximaler Wert der X-Koordinaten in X#(1:N,0).
X_Min Minimaler Wert der X-Koordinaten in X#(1:N,0).
Y_Max Maximaler Wert der Y-Koordinaten in X#(1:N,1).
Y_Min Minimaler Wert der Y-Koordinaten in X#(1:N,1).
Diese Prozedur zeichnet die in X#(1:N,0:1) enthaltenen Wertepaare in die durch X,Y,B,H definierte Box. Die Funktionswerte werden als kleine Kreuze dargestellt. Jeweils 5% der Boxgröße stehen Ihnen zur Beschriftung zur Verfügung.
 
 
Plot_2d_2 &X#(,),N,X,Y,B,H
X#(1:N,0:1) Enthält die Funktionswerte:
X-Werte in
X#(1:N,0).
Y-Werte in
X#(1:N,1).
N Anzahl der Wertepaare.
X X-Wert der linken oberen Ecke des Diagramms.
Y Y-Wert der linken oberen Ecke des Diagramms.
B Breite des Diagramms.
H Höhe des Diagramms.
Diese Prozedur zeichnet eine Kurve durch die Punkte in X#(1:N,0:1). Diese müssen daher geordnet sein.
 
 
Plot_2d_3 &X#(,),N,X,Y,B,H,Ax#,Bx#
X#(1:N,0:1) Enthält die Funktionswerte:
X-Werte in
X#(1:N,0).
Y-Werte in
X#(1:N,1).
N Anzahl der Wertepaare.
X X-Wert der linken oberen Ecke des Diagramms.
Y Y-Wert der linken oberen Ecke des Diagramms.
B Breite des Diagramms.
H Höhe des Diagramms.
Ax# Steigung der Geraden.
Bx# Schnittpunkt der Geraden mit der Y-Achse.
Diese Prozedur zeichnet die Punkte in X#(1:N,0:1) und die Gerade Y=Ax*X+Bx in das gleiche Diagramm.
 
 
Plot_2d_4 &X#(,),N,X,Y,B,H,X_Max#,X_Min#,Y_Max#,Y_Min#
X#(1:N,0:1) Enthält die Funktionswerte:
X-Werte in
X#(1:N,0).
Y-Werte in
X#(1:N,1).
N Anzahl der Wertepaare.
XI X-Wert der linken oberen Ecke des Diagramms.
YI Y-Wert der linken oberen Ecke des Diagramms.
B Breite des Diagramms.
H Höhe des Diagramms.
X_Max# Maximaler Wert der X-Koordinaten.
X_Min# Minimaler Wert der X-Koordinaten.
Y_Max# Maximaler Wert der Y-Koordinaten.
Y_Min# Minimaler Wert der Y-Koordinaten.
Diese Prozedur zeichnet eine Kurve durch die Punkte in X#(1:N,0:1) in das durch die restlichen Parameter beschriebene Koordinatensystem. Die Punkte müssen geordnet sein.
 
 
 

Allgemeines -blättern- Inhaltsverzeichnis

Omikron Basic im Internet: http://www.berkhan.de

Copyright 1998 by Berkhan-Software