Was sind "Statistische Algorithmen in C" ?

 

Die in Almo angebotenen statistischen Verfahren enthalten viele statistische Algorithmen.

Beispiele: Mittelwert-Berechnung

           Chi-Quadrat-Test

           Korrelations-Berechnung

 

Diese Algorithmen haben wir etwas vereinfacht, von Ballast (wie z.B. komplexen

Optionen) befreit und stellen sie so dem interessierten Programmierer zur Verfügung.

 

Alle Algorithmen sind in der Programmiersprache "C" geschrieben.

Warum nicht in C++ ?

Weil grosse Teile von Almo bereits in C geschrieben waren bevor C++ populär wurde,

weil C ein Subset von C++ ist,

weil C dadurch von (den uns bekannten) C++ - Compilern kompiliert wird, so mit

Microsofts Visual Studio C++ - Compiler.

 

Damit Sie mit den angebotenen Algorithmen experimentieren und sie auch verändern können,

haben wir folgendes gemacht:

 

  Die Algorithmen wurden in das Almo-System eingebunden. Damit sind sie aus Almo

  startbar und es können Daten eingelesen werden und mit den Algorithmen gerechnet werden.

  Trotzdem bleiben die Algorithmen allgemein einsetzbare Prozeduren.

 

Die statistischen Algorithmen sind in mehreren Modulen zusammengefasst.

Die Module haben die Namen "up_algorith1.c" bis "up_algorith...c"

 

Das 1. Modul enthält vorwiegend Prozeduren zur Ausgabe der in den Algorithmen

errechneten Ergebnisse, z.B. die Prozedur "tabellen_ausgabe_2komma"

Sie gibt eine 2-dimensionale Tabelle im double-Format mit 2 Kommastellen aus.

 

Das 3. Modul enthält vorwiegend Prozeduren zur Berechnung einer Korrelationsmatrix,

zur Regressionanalyse und zum Allgemeinen Linearen Programm

  

Hier ist nun die Liste aller Funktionen, wie sie in den 6 Modulen enthalten sind.

 

----------------------------- up_algorith1.c -------------------------------

cprint                        Kontrollausgabe

newline                       gibt x Zeilenvorschuebe aus

blank                         erzeugt x Blanks

repeat                        wiederholt in einer Zeile ein Zeichen

repeat_o_cr                   wiederholt ein Zeichen ohne abschliessendes carriage return

zerlege_text_in_zeilen        zerlegt einen Text der x cr enthaelt in x Zeilen

meldung                       Ausgabe einer Fehlermeldung oder Warnumg oder Mitteilung

AlmoStatusmeldung             a_meldung - nur wenn "Statistische Algorithmen" unter der Almo-Oberfl„che laufen

leseZahl                      Lesen einer Zahl im Format FREI oder im Excel-Format "tab-delimited" (*.txt)

leseDatensatz                 liest einen ganzen Datensatz

lesqvar                       ermittelt die diversen Werte, die ein Variable besitzt und bildet die Werte-Skala

lesqvar2                      retourniert Stelle des Wertes 'w' in der Werte-Skala

datendurchlauf_1              Bei einem 1. Datendurchlauf wird die 'werte_skala' der Analysevariablen gebildet

var_nr_stellen                Ziffernzahl der Variablen-Nummer einer Analysevariablen

signif_dezstellen             fuer Zahl wird Anzahl der signifikanten Dezimalstellen sowie Feldbreite ermittelt

forma                         Ausgabe einer Zahl mit v Stellen vor und d Stellen nach Dezimalpunkt

int_tabellen_ausgabe          Ausgabe einer 2-dimensionalen Tabelle im Integer-Format

tabellen_ausgabe_2komma       Ausgabe einer 2-dimensionalen Tabelle im double-Format mit 2 Kommastellen

tabellen_ausgabe_3komma       Ausgabe einer 2-dimensionalen Tabelle im double-Format mit 3 Kommastellen

matrix_ausgabe_4komma         Ausgabe einer Korrelations-Matrix mit 4 Kommastellen

matrix_ausgabe_0komma         Ausgabe einer Matrix mit 0 Kommastellen

matrix_ausgabe_nom            Ausgabe einer Matrix mit 0 oder 4 Kommastellen. Vorne Dummies der nom. Var, dann quantit.Var

nomVarBezeichng               Bezeichnung fuer die Dummies der nominalen Variablen

korr_ausgabe_ueberschrift     Ueberschrift zur Ausgabe der Korrelationskoeffizienten fuer 2-dim. Tabelle

korr_ausgabe_ueberschrift_2   Ueberschrift zur Ausgabe der Korrelationskoeffizienten fuer 2-dim. Tabelle

korr_ausgabe_messniveau       Erlaeuterung der Messniveaus der korrelierten Variablen aus 2-dim. Tabelle

korrausgabe                   Ausgabe der Korrelationskoeffizienten aus 2-dim. Tabelle

speicherfehler                Melden, dass ein Feld nicht allokiert werden kann

alloc_char_vec                Speicherzuweisung fuer 1-dimensionalen char-Vektor

alloc_int_vec                                                        int-Vektor

alloc_short_vec                                                      short-Vektor

alloc_long_vec                                                       long-Vektor

alloc_double_vec                                                     double-Vektor

alloc_float_vec                                                      float-Vektor

alloc_char_matrix             Speicherzuweisung fuer 2-dimensionale  char-Matrix

alloc_int_matrix                                                     int-Matrix

alloc_double_matrix                                                  double-Matrix

free_2dim_matrix              2-dimensionale Matrix wieder frei geben

 

----------------------------- up_algorith2.c -------------------------------

equal                  Vergleich zweier double Werte mit Standard-Genauigkeit 'ex_eps'

lessequal              Vergleich zweier double Werte: Wenn x kleiner/gleich  y

greatequal             Vergleich zweier double Werte: Wenn x groesser/gleich y

fsign                  Vorzeichen einer double-Variablen

ffak                   Fakultaet von n

gammafunc              Gamma-Funktion fuer n=1,2,3,4,....

prob                   Signifikanz von F, t, Chi-Quadrat, z (approximativ)

exaktprob              Signifikanz von F, t, Chi-Quadrat, z (exakt)

probinvers             ermittelt F-Wert, t-, Chi-Quadrat-, z-Wert fuer einzugebende Irrtumswahrscheinlichkeit p

normalflaeche          Flaeche unter der Standard-Normalverteilung, bzw. y-Wert der Ogive

normal_invers          Inverse der Normalverteilung

normalordinate         Ordinate der Normalverteilung

zwert                  ermittelt z-Wert fuer einzugebende Flaeche unter der Standard-Normalverteilung

zwert2                 ermittelt z-Wert fuer einzugebende Flaeche unter der Standard-Normalverteilung

hbinom                 Hilfsroutine fuer 'a_binomkoeff'

binomkoeff             berechnet Binomialkoeffizient n ueber k

linsort                sortiert die Elemente eines Vektors

mittelwert             berechnet Mittelwerte und Standardabweichungen

rechne_perzentil       ermittelt Median, Quartile, Perzentile (Unterprog zu 'a_perzentil')

vertrau_intervall      Vertrauensintervalle fuer eindimensionale Haeufigkeitsverteilung

schiefe                Schiefe und Exzess einer eindimensionalen Haeufigkeitsverteilung und deren Signifikanz

geom_harmon_mittel     geometrisches und harmonisches Mittel

schreibe_skalenwert    Skalenwert der Auspraegung schreiben

normaltransform        Variable auf normalverteilte z-Werte transformieren

smirnov                gibt zweiseitige Wahrschnlk. aus, dass Kolmogorov-a_smirnov's D signifikant

kolmo_smirnov_1        Kolmogorov-Smirnov-1-Stichproben-Test fuer Normal- bzw. Gleich-Verteilung

chi_quad_anpass_test   Chi-Quadrat-Anpassungstest auf Normal- und Gleichverteilung

haeufig                ermittelt eindimensionale Haeufigkeiten und viele Koeffizienten

zweiDimTabelle         erzeugt eine 2-dimensionale Tabelle

randsumme              erzeugz hintere und untere Randsumme fuer 2-dimensionale Tabelle

chi_quadrat            Chi-Quadrat-Test

tausche                1. und 2. Zeile einer 2*2-int-Matrix vertauschen (Unterprog fuer exakten Fisher-Test)

exakt_Fisher           exakter Fisher-Test fuer 2*2-Tabelle

faclog                 errechnet log10 von Fakultaet n; wird fuer 'freemam_halton' verwendet

freeman_halton         exakter Freeman-Halton-Test fuer 2-dimensionale Tabellen

haldane_dawson         Haldane-Dawson-Test

kolmo_smirnov_2        Kolmogorov-Smirnov-2-Stichproben-Test

bestimme_U             Hilfsprog fuer 'a_Exhaust' und 'a_Uleman'

Exhaust                Hilfsprog fuer 'a_Uleman'

Uleman                 a_Uleman's exakter Rangaufteilungstest

phi_korr               Phi-Korrelationskoeffizient fuer 2*k- bzw. k*2-Tabelle

konting_koeff_C        Kontingenzkoeffizient C fuer 2-dimensionale Tabelle

Cramers_V              Cramer's V-Korrelation  fuer 2-dimensionale Tabelle

Tschuprows_T           Tschuprows T-Korrelation  fuer 2-dimensionale Tabelle

gans_gand              Unterprogramm zu 'gamma_korr' und 'a_tau_b_korr'

gamma_korr             Gamma-Korrelationskoeffizient fuer 2-dimensionale Tabelle

tau_b_korr             tau-b-Korrelationskoeffizient fuer 2-dimensionale Tabelle

eta_korr_2dim          Eta-Korrelationskoeffizient fuer 2-dimensionale Tabelle

rho_und_a_r_korr_2dim  Unterprog zu 'a_r_korr_2dim' und 'a_rho_korr_2dim'

signifikanz_r          Signifikanz-Approximation fuer r

rho_korr_2dim          rho-Korrelationskoeffizient fuer 2-dimensionale Tabelle

r_korr_2dim            Produkt-Moment-Korrelation r, r(pbis) und phi fuer 2-dimensionale Tabelle

nichtlinearitaet       Test auf a_nichtlinearitaet

gross_gamma            Berrechnung der Gross-Gamma-Korrelation

dummyVariable          wandelt nominale Variable in Dummies

dummyVariable2         Bildung von Dummies fuer nominale Variable und deren Interaktionen

dummytest              testet ob Dummies richtig gebildet wurdeb

 

----------------------------- up_algorith3.c -------------------------------

signifikanz_von_r        Signifikanz 100*(1-p) des Korr.koeff. r

signifikanz_von_korrmat  Signifikanz 100*(1-p) der Korr.koeffizienten in der Korrelationsmatrix

bilde_neu_analyseVarZahl Ermittelt Zahl der Analysevariablen, wenn nominale Variable in Analyse

bilde_neu_analyseVarNr   Bildet Vektor der Variablennummern der Analysevariablen, wenn nominale Var in Analyse

korr_matrix              Korrelationsmatrix; mit Kein-Wert-Behandlung durch "Vollst„ndiges Ausscheiden"

korr_matrix_2            Korrelationsmatrix; mit Kein-Wert-Behandlung durch "Paarweises Ausscheiden"

streuungs_matrix_1       Streuungsmatrix mit quantit. u. nominalen Var. Kein-Wert-Behandlung:"Vollständiges

                         Ausscheiden". Moeglich: Kreuzprodukte-,Quadratsummen-,Kovarianz-,Korrelationsmatrix

streuungs_matrix_2       Streuungsmatrix mit quantit. u. nominalen Var. Kein-Wert-Behandlung:"Paarweises

                         Ausscheiden". Moeglich: Kreuzprodukte-,Quadratsummen-,Kovarianz-,Korrelationsmatrix

determinante             Determinante einer symmetrischen Matrix

lineareAbhaeng           Prueft ob in einer Matrix eine lineare Abhaengigkeit vorhanden ist

acminvers                Inversion einer symmetrischen Matrix

invers                   Inversion einer nicht-symmetrischen Matrix

regression               multiple lineare Regression

regress_koeff            Berechnet Regressionskoeff. bzw. Effekte und verschieden Koeffiz. fuer Allg. Lin.

                         Modell

konstante                ermittelt die Regressionskonstante fuer das Allgemeine Lineare Modell

umspeich_teile           Teile der Matrix 'mat' in eine andere Matrix 'mat2' umspeichern

varianzanalyse           Varianzanalyse mit beliebig vielen unabhaengigen nominalen Variablen

allg_lin_modell          Allgemeines Lineares Modell: Regressions-, Varianz-, Kovarianz-Analyse

 

----------------------------- up_algorith4.c -------------------------------

outvektor                      Ausgabe eines double-Vektors

out_fakt_lad_matrix            Ausgabe der Faktorladungsmatrix

out_rotations_matrix           Ausgabe der Rotationmatrix

fabsmax                        ermittelt den absolut groessten Wert aus einem Vektor

mamult                         Matrixmultiplikation

mamult_trans                   Matrixmultiplikation C = A' * A

abs_linsort                    sortiert ein Feld nach absteigender absoluter Groesse

qrs                            Eigenwerte und Eigenvektoren einer symmetrischen Matrix

eigenvektor                    1.Eigenwerts und Eigenvektor nach dem v.Mise'schen Iterationsverfahren

eig_groesser_eins              Zahl der Eigenwerte > 1.0 bestimmen

kommunalitaet                  Ermittelt Kommunalitaeten-Schaetzungen

pruef_kommunalitaet            prueft, ob bei Kommunalitaeten-Iteration Werte > 1 auftreten

faktorwertkoeff                Faktorwert-Koeffizienten fuer extrahierte Faktoren berechnen

faktoranalyse                  Faktorenanalyse quantitativer Variabler

quartimin                      schiefwinklige Rotation nach dem Quartimin-Verfahren

winkel                         Berechnung des Rotationswinkels

faktorvarianz                  Varianz je Faktor

varimax                        rechtwinklige Rotation nach dem Varimax-Verfahren

mca_matrix                     die Streuungsmatrix wird fuer MCA multiple Korrepondenzanalyse skaliert

korrespondenzanalyse           MCA multiple Korrepondenzanalyse

 

----------------------------- up_algorith5.c -------------------------------

gammafunc                    Gamma-Funktion

nlog_gamma                   Logarithmus der Gamma-Funktion

binomial                     F-Transformation fuer Binomialtest

binomglieder                 Binomialglieder

gamain                       Unterprogramm fuer 'a_invers_chi'

invers_chi                   Inverse der Chi-Quadrat-Verteilung

r_unten                      unterer Konfidenzbereiche fuer r

r_oben                       oberer Konfidenzbereiche fuer r

wertaus                      ermittelt ueber 'a_probinvers'  F-, t-, z-, Chi-Quadrat-Wert und gibt Ergebnis aus

p_ausgabe                    Ausgabe der p-Werte

probaus                      ermittelt ueber 'a_exaktprob'  F-, t-, z-, Chi-Quadrat-Wert und gibt Ergebnis aus

hhf                          Hilfsfunktion fuer Funktion 'a_noncentral_t'

noncentral_t                 Nichtzentrale t-Verteilung

exp_error                    prueft ob Fehler bei exp-Funktion

noncentral_f                 Nichtzentrale F-Verteilung

noncentral_chi               Nichtzentrale Chi-Quadrat-Verteilung

noncent-distrib              Nichtzentrale F-, t-, z-, Chi-Quadrat-Verteilung

teststaerke                  Teststaerke (power) von F,t,z,Chi-Quadrat

ogive_x_start                ermittelt Startpunkt der Pseudo-Integration fuer Ogive

ogive_y_wert                 gegeben x-Wert der Ogive, gesucht y-Wert (Ordinate)

ogive_x_wert                 gegeben y-Wert der Ogive, gesucht x-Wert

fisher_z_transform           Fishers Z-Transformation des Korrelationskoeffiziwnten r

tafelwert                    ermittelt die statistischen Tafelwerte

 

----------------------------- up_algorith6.c -------------------------------

rearrange         Upro zu Quicksort-Algorithmus

quick1            Upro zu Quicksort-Algorithmus

qqsort            Upro zu Quicksort-Algorithmus

comp              Upro zu Quicksort-Algorithmus

swap              Upro zu Quicksort-Algorithmus

count_U           Rekursive Prozedur fuer Man-Whitney U-Test

pwert_kombi       ermittelt Gesamtzahl aller moeglichen Kombinationen und Wahrscheinlichkeit p

p_fuer_U          Upro fuer Man-Whitney U-Test

ausgabe_exakt_U   Ausgabe der Ergebnisse aus exaktem U-Test

ausgabe_U         Ausgabe verschiedener Ergebnisse aus U-Test

konprob           ermittelt die Signifikanz von Kontrasten bei Kruskal-Wallis H-Test

sortiere          Variable sortieren

und_H_Test        ruft die vorausgehenden Upros auf und rechnet den U- und H-Test


----------------------------- up_algorith7.c -------------------------------
---- laden durch Doppelklick auf --> [".\Algorithmen_in_C\Algorith_C\a_up_algorith7.c"] ----
a_effekt_letzte_dummy berechnet Effekt der letzten Dummy bei 1,0,-1 Kodierung
a_fehl_effekt_letzte_dummy berechnet Standardfehler des Effekts der letzten Dummy bei 1,0,-1 Kodierung
a_cov_kon_letzte_dummy berechnet Kovarianz fr Kontraste der letzten Dummy bei 1,0,-1 Kodierung
a_ausgabe_logit Ausgabe der Regressionskoeffizienten etc. bei Logit-Modell
a_ausgabe_probit Ausgabe der Regressionskoeffizienten etc. bei Probit-Modell
a_koef_bezeichnung Bezeichnung der Koeffizienten
a_potu_inverse Inversion einer nicht-symetrischen quadratischen Matrix
a_roh_logitana Matrix der Haeufigkeiten in abhaeng. nominalen Var. und Designmatrix
a_mulog p,f und inf im Logit-modell (p=Matrix der reproduzierten Wahrscheinlichkeiten fr alle n Personen)
a_mstat
a_treffer Trefferhaeufigkeit ermitteln
a_kontraste_logprob Vergleiche (Kontraste) der Auspraegungen der unabhaeng. nominalen Variablen
a_orprobit p,f und inf im probit-modell
a_logit_probit_upro Haupt-Unterprogramm zur Berechnung der Logit- und Probit-Analyse
a_logit_probit Hauptprogramm

----------------------------- up_algorith8.c -------------------------------
---- laden durch Doppelklick auf --> [".\Algorithmen_in_C\Algorith_C\a_up_algorith8.c"] ----
a_umspeichern Eine Submatrix aus einer Matrix A herausl”sen und in Matrix B geben
a_cholinvers Inverse der Cholesky-Matrix
a_standgewicht kanonischen Gewichtszahlen standardisieren
a_regresskoeff Ermittlung der Regressionskoeffizienten beta=inv(b)*wxy
a_fehlstreuung Ermittlung der Fehlerstreuungsmatrix wm=wyy-wxy*beta
a_within_group Aufruf von a_regresskoeff und a_fehlstreuung
a_f_pillai2 F-Wert-Transformation von Pillais Spur
a_kanon_diskrim kanonische Diskriminanzanalyse

----------------------------- up_algorith9.c -------------------------------
---- laden durch Doppelklick auf --> [".\Algorithmen_in_C\Algorith_C\a_up_algorith9.c"] ----
a_stellen ermittelt Zahl der Stellen einer Ganzzahl
a_iout Ausgabe einer Integerzahl
a_dout Ausgabe einer double-Zahl im F-Format n1.n2 mit anschliessend nb blanks
a_zz_wert berechnet z-Wert
a_zeile_ausgabe Unterprogramm zur Ausgabe einer Zeile aus Matrizen
a_datmat_lesen Lesen der Daten aus einer Datenmatrix
a_datmat_schreiben Schreiben der Daten in Datenmatrix
a_startwerte Berechnung der Startwerte
a_mat_aus Unterprogramm zur Ausgabe einer Matrix
a_matrix_clustdistanz Ausgabe der Matrix der Distanzen zwischen den Clustern
a_clustatistiken Clusterstatistiken
a_weuklid Berechnen der Mahalonobisdistanz
a_mini_distanz_verfahr Minimaldistanzverfahren
a_clusterzentren_neu berechnet neue Clustermittelwerte, Clustervarianzen
a_h0krit Berechnen des Kriteriums fuer Nullmodell
a_clustdistanz Distanzen zwischen den Clustern
a_Fwert F-Wert fr eine Clusterloesung
a_eta2 ETA**2 fr eine Clusterloesung
a_varstat verschiedene Statistiken fr Variablen
a_ss_within Streuung innerhalb der Cluster
a_gewicht_aus Ausgabe der Variablen-Gewichtung
a_Objekt_zu_Cluster Ausgabe der Clusterzugehoerigkeit der Objekte
a_kmeans_clusteranalyse Hauptprogramm (das die obigen Unterprogramme aufruft