Zurück...

Varianzanalyse (ANOVA) mit R

Die auf der Seite Varianzanalyse gezeigten Beispiele können mit R-Funktionen nachvollzogen werden. Wenn Ihnen R noch unbekannt ist, empfehle ich Ihnen zur Einarbeitung das Buch Einführung in R.

Bevor wir mit den Standard-R-Funktionen die Varianzanalysen durchführen, möchte ich Ihnen die Funktion anova_faes darlegen, die den gezeigten Beispielen entspricht. Ich gehe von der Annahme aus, das die Funktion anova_faes in die R-Arbeitsumgebung geladen wurde. Zur einfaktoriellen Varianzanalyse wird als nächstes der entsprechende Beispieldatensatz (Einf_ANOVA_Daten) geladen:

    > Daten_einfach <- read.csv2("Einf_ANOVA_Daten.csv")
    > Daten_einfach
      Katalysator.A Katalysator.B Katalysator.C
    1            43            65            52
    2            40            63            50
    3            44            66            53
    4            39            62            55
    5            42            64            51

Danach wird die Funktion anova_faes mit dem Datensatz Daten_einfach und dem Argument erweitert=TRUE, zur erweiterten Informationsausgabe, aufgerufen:

    > anova_faes(Daten_einfach, erweitert=TRUE)

     ------------------------------------------
    Einfaktorielle Varianzanalyse (ANOVA):

           Merkmale Mittelwerte Standardabweichungen
    1 Katalysator.A        41.6            2.073644
    2 Katalysator.B        64.0            1.581139
    3 Katalysator.C        52.2            1.923538

    Gesamtmittelwert:  52.6  Gesamtanzahl der Werte: 15

    Abweichungsquadrate SSt = SSb + SSw
         SSt   SSb SSw
    1 1297.6 1255.6  42

    Freiheitsgrade:
      df.SSt df.SSb df.SSw
    1    14     2    12
    Varianzen:
         s.SSt s.SSb s.SSw
    1 92.68571 627.8   3.5

    Prüfgröße PG:  179.3714  Wert der F-Verteilung (P= 95 %): 3.885294
    Nullhypothese: Kein Unterschied innerhalb des unabhängigen Merkmals, wenn PG < F-Wert.
    Alternativhypothese: Es besteht ein Unterschied innerhalb des unabhängigen Merkmals, wenn PG > F-Wert.
    Ergebnis mit P= 95 %:  Alternativhypothese trifft zu!
    ------------------------------------------
     

Um beispielhaft eine zweifaktorielle Faktorenanalyse durchzuführen, wird der Beispieldatensatz Zweif_ANOVA_Daten in die R-Arbeitsumgebung geladen:

    > Daten_zweif <- read.csv2("Zweif_ANOVA_Daten.csv")
    > Daten_zweif
      Katalysator.A.sauer Katalysator.A.basisch Katalysator.B.sauer
    1                  43                    38                  65
    2                  40                    41                  63
    3                  44                    39                  66
    4                  39                    40                  62
    5                  42                    41                  64
      Katalysator.B.basisch Katalysator.C.sauer Katalysator.C.basisch
    1                    61                  52                    49
    2                    62                  50                    51
    3                    62                  53                    48
    4                    63                  55                    51
    5                    60                  51                    52
     

Die Funktion anova_faes wird wie im obigen Beispiel aufgerufen, wobei neben dem Datensatz Daten_zweif die Argumente zweif=TRUE (für zweifaktorielle ANOVA),  n.i = 3 (für 3 Katalysatoren) und n.j = 2 (für 2 pH-Wert-Niveaus) mit übergeben werden:

    > anova_faes(Daten_zweif, zweif=TRUE, n.i=3, n.j=2, erw=T)

     ------------------------------------------
    Zweifaktorielle Varianzanalyse (ANOVA):

                   Merkmale Mittelwerte Standardabweichungen
    1  Katalysator.A.sauer        41.6            2.073644
    2 Katalysator.A.basisch        39.8            1.303840
    3  Katalysator.B.sauer        64.0            1.581139
    4 Katalysator.B.basisch        61.6            1.140175
    5  Katalysator.C.sauer        52.2            1.923538
    6 Katalysator.C.basisch        50.2            1.643168

    Gesamtmittelwert:  51.56667  Gesamtanzahl der Werte: 30

    SSt (F15)      :  2541.367 df:  29
    SS-Zeilen (F16) :  2444.067 df:  2
    SS-Spalten (F17):  32.033 df:  1
    SS-Z/S (F18)   :  0.467 df: 2
    SSb (F19)      :  2476.567
    SSw (Streuungszerlegung!): 64.8 df: 24
    Varianzen:
         s.SSz   s.SSs  s.SSz.s s.SSw    s.SSt
    1 1222.033 32.03333 0.2333333  2.7 87.63333

    Varianzherkunft nach Tabelle 18:
    (Wahrscheinlichkeit P= 95 %)
    PG Zeile: 452.6049 Wert F-Verteilung: 3.402826
       Haupteinfluss Zeile: Alternativhypothese trifft zu!
    PG Spalte: 11.86420 Wert F-Verteilung: 4.259677
       Haupteinfluss Spalte: Alternativhypothese trifft zu!
    PG Wechselwirkung Zeile/Spalte: 0.08641975 Wert F-Verteilung: 3.402826
       Wechselwirkung Zeile/Spalte: Nullhypothese trifft zu!

    ------------------------------------------
     

Hinweis zu Tabelle 18 siehe hier!

Durch Verwendung der Funktion anova_faes erhalten Sie eine schnell ersichtliche und ausführliche Aussage.
Aber natürlich bietet R Ihnen auch Standardfunktionalitäten, wie oben erwähnt, an.
Dazu müssen aber die Daten wie in Abb. 1 dargestellt angeordnet sein.

 

Abb. 1

Die Daten aus Abb. 1 werden wieder beispielhaft in die R-Umgebung geladen:

    > Daten_einf <- read.csv2("Einf_ANOVA_Daten_2.csv")
    > Daten_einf
       Gruppe Katalysator
    1      A          43
    2      A          40
    3      A          44
    4      A          39
    5      A          42
    6      B          65
    7      B          63
    8      B          66
    9      B          62
    10     B          64
    11     C          52
    12     C          50
    13     C          53
    14     C          55
    15     C          51

Zur Ausführung einer einfaktoriellen ANOVA muss zuerst ein “Modell” (ein R-Objekt) über die Funktion lm() berechnet werden:

    > Modell <- lm(Daten_einf$Katalysator ~ Daten_einf$Gruppe)
     

Dieses Modell wird dann der Funktion anova() übergeben und folgende Ausgabe auf der Konsole gemacht:

    > anova(Modell)
    Analysis of Variance Table

    Response: Daten_einf$Katalysator
                     Df Sum Sq Mean Sq F value    Pr(>F)   
    Daten_einf$Gruppe  2 1255.6  627.8  179.37 1.150e-09 ***
    Residuals        12   42.0    3.5                     
    ---
    Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Seitenanfang