Seite 1 von 1

Extraktion von Daten aus Varianzanalyse

Verfasst: Mi Nov 25, 2020 5:55 pm
von Werekorden
Hi,

ich nutze das Package VCA.
Dort gibt es eine Beispielberechnung mit einem Beispiel-Datensatz

Code: Alles auswählen

install.packages("VCA")
library("VCA")
# Function converts a color-string into RGB-code
# col (character) string specifying an R-color
# alpha (numeric) degree of transparency in [0, 1], 0=fully transparency, 1=opaque
asRGB <- function(col, alpha)
  rgb(t(col2rgb(col))/255, alpha=alpha)

data(dataEP05A2_1)

varPlot(y~day/run, dataEP05A2_1,
        # controls horizontal mean lines
        MeanLine=list(var=c("int", "day"), col=c("gray75", "blue"), lwd=c(2,2)),
        # controls how points (concentrations) are plotted, here using semi-transparency
        # to see overlayed points
        Points=list(pch=16, col=asRGB("black", .5), cex=1.25),
        # controls how replicate-means are plotted
        Mean=list(col="magenta", cex=1.25, lwd=2),
        # controls how the title is shown
        Title=list(main="20 x 2 x 2 Single-Site Evaluation", cex.main=1.75),
        # controls plotting of levels per VC, if as many lists as there are VCs are
        # specified, each VC can be specified individually
        VarLab=list(list(cex=1.5), list(cex=1.25)),
        # controls how names of VCs are plotted
        VCnam=list(font=2, cex=1.5),
        # controls appearance of the Y-axis label
        YLabel=list(text="Concentation [mg/dL]", las=0, line=3, font=2, cex=1.25),
        # Y-axis labels rotated
        las=1)

# fit 20 x 2 x 2 model to data
fit.SS1 <- fitVCA(y~day/run, dataEP05A2_1)
fit.SS1
# estimate 95% confidence intervals, request CI for
# all variance components via 'VarVC=TRUE'
inf.SS1 <- VCAinference(fit.SS1, VarVC=TRUE)
inf.SS1

summary(inf.SS1)[1][[1]][[1]][[1]][[1]]
Mit dem letzten Befehl möchte ich, dass mir bestimmte Werte ausgeworfen werden damit ich damit eine schöne Tabelle mit kableextra in RMarkdown erstellen kann.
Das scheint aber nicht so einfach zu sein wie bei einem normalen linearen Modell.

Wir kann ich einfach herausfinden wo die Werte der "summary" also z.B. CI LCL, Estimate usw. liegen?

Vielen Dank für eure Hilfe

VG
Andreas

Re: Extraktion von Daten aus Varianzanalyse

Verfasst: Do Nov 26, 2020 10:39 am
von jogo
Hallo Andreas,
Werekorden hat geschrieben: Mi Nov 25, 2020 5:55 pm
Wir kann ich einfach herausfinden wo die Werte der "summary" also z.B. CI LCL, Estimate usw. liegen?
ich beschreibe das mal anhand der Funktion summary.lm()
Die Beschreibung zu der Struktur des Rückgabewerte befindet sich nicht in

Code: Alles auswählen

help(summary)
sondern spezifisch für die Objektklasse in

Code: Alles auswählen

help(summary.lm)
- dort dann im Abschnitt Value
Üblich ist bei solchen komplexen Funktionen, dass auch das Ergebnis entsprechend komplex ist.
Es lässt sich aber alles mit Hilfe der üblichen Zugriffsoperatoren ergründen.

Gruß, Jörg

Re: Extraktion von Daten aus Varianzanalyse

Verfasst: Do Nov 26, 2020 12:23 pm
von Werekorden
ARGH ich hab fit.SS1 und inf.SS1 vertauscht.

Damn it.
Für Interessierte so sieht die inf.SS1 aus

Code: Alles auswählen

Inference from (V)ariance (C)omponent (A)nalysis
------------------------------------------------

> VCA Result:
-------------

  Name    DF      SS      MS     VC     %Total  SD     CV[%]  Var(VC)
1 total   67.0876                3.299  100     1.8163 7.2669        
2 day     19      88.2885 4.6468 0.0011 0.0332  0.0331 0.1324 0.2768 
3 day:run 20      92.8476 4.6424 1.3445 40.7547 1.1595 4.6392 0.5865 
4 error   40      78.1359 1.9534 1.9534 59.2121 1.3976 5.5919 0.1908 

Mean: 24.9942 (N = 80) 

Experimental Design: balanced  |  Method: ANOVA


> VC:
-----
        Estimate CI LCL CI UCL One-Sided LCL One-Sided UCL
total   3.299    2.4156 4.7767 2.5378        4.495        
day     0.0011   0*     1.0322 0*            0.8664       
day:run 1.3445   0*     2.8455 0.0848        2.6042       
error   1.9534   1.3167 3.198  1.4013        2.9475       

> SD:
-----
        Estimate CI LCL CI UCL One-Sided LCL One-Sided UCL
total   1.8163   1.5542 2.1856 1.5931        2.1201       
day     0.0331   0*     1.016  0*            0.9308       
day:run 1.1595   0*     1.6869 0.2912        1.6137       
error   1.3976   1.1475 1.7883 1.1838        1.7168       

> CV[%]:
--------
        Estimate CI LCL CI UCL One-Sided LCL One-Sided UCL
total   7.2669   6.2183 8.7443 6.3737        8.4825       
day     0.1324   0*     4.0648 0*            3.7241       
day:run 4.6392   0*     6.749  1.1652        6.4565       
error   5.5919   4.591  7.1548 4.7362        6.8689       


95% Confidence Level  | * CI-limits constrained to be >= 0
SAS PROC MIXED method used for computing CIs 
Jetzt schau ich mal, ob ich die Struktur leicht erkenne an Hand der Typ Spalte.
Irgendwie will mir das gerade nicht in den Kopf

VG
Andreas

Re: Extraktion von Daten aus Varianzanalyse

Verfasst: Do Nov 26, 2020 6:58 pm
von EDi
?str

Re: Extraktion von Daten aus Varianzanalyse

Verfasst: Do Nov 26, 2020 8:23 pm
von Werekorden
Hallo,
Genau Edi mit "str" hab ich mir jetzt mal die liste ausgedruckt dann findet man die einzelnen Abschnitte besser und bin mit soetwas rausgekommen.

Code: Alles auswählen

inf.SS1[["ConfInt"]][["VC"]][["OneSided"]][[2]][[4]]
DAS ist aber absolut unpraktisch wenn ich für jeden Wert soetwas zusammenschreiben muss.
Ich muss 89 Werte aus der Liste rausziehen, das kann doch nicht sein, dass man das Alles per Hand machen muss.

Gibt es da kein package, was solche Daten automatisch rauszieht?

Schönen Abend
Andreas