ein Portrait von mir

Dipl.Math. Dr. Haiko Lüpsen
Statistik & Kurse

Zusammenfassung S, S-Plus und R: Statistische Methoden

Elementare Statistiken und Explorative Datenanalyse
Kontingenztabellen
Stichprobenvergleiche
Varianzanalyse
Lineare Modelle
Faktorenanalyse
Korrelation
Clusteranalyse
Diskriminanzanalyse
Weitere Verfahren


Elementare Statistiken und Explorative Datenanalyse

summary(Vektor oder Datenmatrix) Ausgabe von Min, Max, Mean, Quartile für numerische Variablen bzw. Auszählung für Faktoren
by(Datenmatrix, Faktoren, Funktion) Ausgabe der Ergebnisse von Funktion für die Kombinationen der Werte von Faktoren (Funktion muss auf Dataframes anwendbar sein)
describe(Datenmatrix) Ausgabe der üblichen Lage- und Streuungsmaße (R-Paket "psych")
describeBy(Datenmatrix, Faktor) Ausgabe der üblichen Lage- und Streuungsmaße für Gruppen (R-Paket "psych")
describeBy(Datenmatrix,list(Faktor1,Faktor2,..)) für mehrere Faktoren gleichzeitig

Kontingenztabellen

Auszählungen

table(Vektor1, Vektor2,...) einfache Auszählung (Absolute Häufigkeiten)
xtabs(Formel, DataFrame) Kontingenztabelle für Modell, Ausgabe wie table (nur R)
xtabs( ~A+B, DataFrame) (Beispiel)
ftable(Vektor1, Vektor2,...) einfache Auszählung in kompakter Darstellung (Absolute Häufigkeiten)
    Vorsicht: Ergebnisobjekt ist nicht vom Typ "table", Wandeln mit as.table(...)
ftable(Vektor1, Vektor2,..., col.vars=..., row.vars=...) einfache Auszählung
ftable(yVektor1 + yVektor2 +... ~ xVektor1 + xVektor2 +...) einfache Auszählung
margin.table(Tabelle, i) Randauszählung der i-ten Dimension (nicht mit ftable)
prop.table(Tabelle) relative Häufigkeiten (bzgl. der Gesamtanzahl)
prop.table(ftable(Tabelle)) relative Häufigkeiten in kompakter Darstellung
CrossTable(Vektor1, Vektor2) 2-dim. Auszählung mit diversen Zellenstatistiken (R, library "gmodels")

Statistiken

summary(Tabelle) Chi2-Test
chisq.test(Tabelle) Chi2-Test
chisq.test(Vektor1, Vektor2) Chi2-Test
...$expected erwartete Häufigkeiten
...$residuals standardisierte Residuen
...$stdres korrigierte standardisierte Residuen
prop.test(Variable, Parameter) Binomial-Test auf gleiche Proportionen
prop.trend.test(Variable, Parameter) Trend-Test der Proportionen

Modelle

crosstabs(Formel, DataFrame) Kontingenztabelle für Modell (nur SPlus)
loglin(Tabelle, Liste von Effekten) Chi2-Wert für ein loglineares Modell
mantelhaen.test(xVektor, yVektor, zVektor) Cochran-Mantel-Haenszel Chi2-Test
pairwise.prop.test(Tabelle1, Tabelle2) paarweise Vergleiche von Häufigkeiten mit alpha-Korrektur

Stichprobenvergleiche

Einstichproben-Tests

t.test(Variable) t-Test
wilcox.test(Variable) Rangsummen-Test
ks.gof(Variable, distribution="Verteilungsname") Kolmogorov-Smirnov-Test (SPlus)
ks.test(Variable, "Verteilungsname", Parameter) Kolmogorov-Smirnov-Test (R)
shapiro.test(Variable) Wilks-Shapiro-Test auf Normalverteilung (R)
chisq.gof(Variable, "Verteilungsname", Parameter) Chi2-Test (SPlus)
chisq.test(Variable, Parameter) Chi2-Test (R)
prop.test(Variable, Parameter) Binomial-Test

Tests für gepaarte Stichproben

t.test(Var1, Var2, paired=T) t-Test
wilcox.test(Var1, Var2, paired=T) Rangsummen-Test
mcnemar.test(Var1, Var2) McNemar-Test

Zweistichproben-Tests

t.test(Variable Gruppe1, Variable Gruppe2)
t.test(y-Variable ~ Gruppen-Variable) t-Test
wilcox.test(Variable Gruppe1, Variable Gruppe2)
wilcox.test(y-Variable ~ Gruppen-Variable) Rangsummen-Test
ks.gof(Variable Gruppe1, Variable Gruppe2) Kolmogorov-Smirnov-Test (SPlus)
ks.test(Variable Gruppe1, Variable Gruppe2) Kolmogorov-Smirnov-Test (R)
fisher.test(Variable Gruppe1, Variable Gruppe2) Fishers exakter Test für 2x2-Tabellen
chisq.test(Variable Gruppe1, Variable Gruppe2) Chi2-Test
var.test(Variable Gruppe1, Variable Gruppe2) F-Test auf gleiche Varianzen
leveneTest(Variable,Factor) Levene-Test auf gleiche Varianzen (R, library "car")
leveneTest(Variable ~ Factor1*Factor2...,center=mean)
ansari.test(y-Variable ~ Gruppen-Variable)
ansari.test(Variable Gruppe1, Variable Gruppe2) Ansari-Bradley Test auf gleiche Streuungen

Hinweis:
Wenn die Werte der zu vergleichenden Variablen für die beiden Gruppen in der Form "Variable Gruppe1" und "Variable Gruppe2" angegeben werden müssen, so ist dies möglich z.B. über
Variable[Gruppe==Wert1] bzw. Variable[Gruppe==Wert2] .

Varianzanalyse

einfache Varianzanalysen

aov(abh.Variable ~ Faktorname, Datenmatrix) einfache parametrische Anova
aov(abh.Variable ~ Faktorname+Error(subject/Faktorname, Datenmatrix) einfache parametrische Anova mit Messwiederholungen, wobei subject die Fallnummer in dem umstrukturierten Dataframe ist
oneway.test(abh.Variable~Faktorname,Datenmatrix) 1-fakt. Varianzanalyse mit Welch-Test
kruskal.test(abh.Variable, Faktorname) Kruskal-Wallis-Test
friedman.test(Matrix) Friedman-Test
waerden.test(abh.Variable, Faktorname, group=F, console=T) 1-faktorielle Varianzanalyse mit normal scores nach dem Verfahren von van der Waerden (R-Paket "agricolae")
quade.test (Datenmatrix) 1-faktorielle nichtparametrische Varianzanalyse mit Messwiederholungen nach dem Verfahren von Quade.
BDM.test (abh.Variable, Faktor)1-faktorielle robuste Varianzanalyse nach dem Verfahren von Brunner, Dette, Munk, bzw.
BDM.2way (abh.Variable, Faktor1, Faktor2) 2-faktorielle Varianzanalyse (R-Paket "asbio")
art(Formel,Datenmatrix)$aligned.ranks Wertebereinigung nach der "Aligned Rank Transform"-Methode (R-Palet "ARTool")
bartlett.test(abh.Variable, Faktorname) Bartlett-Test auf Varianzhomogenität
levene.test(Variable, Factor) Levene-Test auf gleiche Varianzen (R-Paket "car")

mehrfaktorielle und komplexere Varianzanalysen

aov(Formel, Datenmatrix) univariate mehrfaktorielle Varianzanalyse
anova(lm(Formel, Datenmatrix)) univariate mehrfaktorielle Varianzanalyse (mit weiterverarbeitbaren Ergebnissen)
aov(Formel+Error(subject/WFaktorname, Datenmatrix) univariate mehrfaktorielle Varianzanalyse mit Messwiederholungen, wobei subject die Fallnummer in dem umstrukturierten Dataframe und WFaktorname die Interaktion aller Messwiederholungsfaktoren ist
drop1(aov(Formel,...), ~. , test="F") Umrechnung von aov-Ergebnissen in TypeIII SS
Anova(lm(Formel, Datenmatrix), type="III") univariate mehrfaktorielle Varianzanalyse mit TypeIII SS (R-Paket "car")
   (mit weiterverarbeitbaren Ergebnissen)
manova(Formel) multivariate mehrfaktorielle Varianzanalyse, mit y-Variablen as.matrix(..) vereinbart
varcomp(Formel, Datenmatrix) univariate mehrfaktorielle Varianzanalyse mit Zufallseffekten (R-Paket "ape")
lme(Formel, Spezifikation) univariate mehrfaktorielle Varianzanalyse ohne/mit Messwiederholungen und mit random-Effekten (R-Paket "nlme")
ezANOVA(Datenmatrix, abh.Variable, subject, within=.(WFaktornamen), between=.(BFaktornamen)) univariate mehrfaktorielle Varianz- und Kovarianzanalyse mit Messwiederholungen (R-Paket "ez")
nparLD(Formel,Datenmatrix,subject) nichtparametrische ATS-Varianzanalyse mit Messwiederholungen (R-Paket "nparLD")

Ergebnisse

resid(Anova-Schätzung) Residuen
fitted(Anova-Schätzung) geschätzte Werte
model.tables(Anova-Schätzung) geschätzte Parameter
summary(Anova-Schätzung) Anova-Tabelle
coef(Anova-Schätzung) Koeffizienten
testInteractions(Anova-Schätzung, fixed="Faktor1", across="Faktor2") simple effects analysis (R-Paket "phia")
interaction.plot(Faktor1, Faktor2, abh.Variable) Interaktionsplot

multiple Mittelwert- und Streuungsvergleiche

TukeyHSD(Anova-Schätzung) post-hoc-Tests mittels Tukeys Honestly Significant Differences
pairwise.t.test(abh.Variable, Faktorname) paarweise t-Tests mit alpha-Korrektur
pairwise.wilcox.test(abh.Variable, Faktorname) paarweise U-Tests mit alpha-Korrektur
Name(Anova-Schätzung,Faktorname) wobei Name eines der Standardverfahren ist (duncan, SNK, HSD, LSD, scheffe, waerden, waller) für unabh. und abh. Stichproben (R-Paket "agricolae")
Name(Anova-Schätzung,Faktorname,df.error,SSerror) wobei Name eines der Standardverfahren ist (duncan, snk, tukey, lsd, scottknott) für unabh. und abh. Stichproben (R-Paket "ExpDes")
regwq(Anova-Schätzung,Datenmatrix,MSerror,dferror) Verfahren von Ryan (R-Paket "mutoss")
posthoc.kruskal.nemenyi.test(Variable,Faktor) Nemenyi-Test für unabh. Stichproben (R-Paket "PMCR") bzw.
posthoc.friedman.nemenyi.test(Variable,Faktor) Nemenyi-Test für abh. Stichproben
Name(abh. Variable,Faktorname) wobei Name eines der Verfahren ist (u.a. Nemenyi, Dwass-Steel-Critchlow, Fligner-Policello) (R-Paket "NSM3")
leveneTest(Variable~Factor1*Factor2...,data=Datenmatrix) Levene-Test auf gleiche Varianzen (R-Paket "car")

Kontraste

contrasts(Faktorname)<- Matrix Zuweisen von Kontrasten
lm(Formel, Datenmatrix) Testen einzelner Kontraste
gls(Formel, Datenmatrix) u.a. Testen einzelner Kontraste (R-Paket "nlme") bzw.
gls(Formel, Datenmatrix, corr=corCompSymm(, form= ~ 1 | vpn)) bei Messwiederholungen
summary(glht(lme-Modell, linfct=mcp(WFaktorname="Tukey"))) multiple Mittelwertvergleiche für Messwiederholungsfaktor WFaktorname (R-Paket " nlme")
Anova(lm(Modell, Datenmatrix, contrasts=list(Faktorname=Kontraste,...)), type="III") Varianzanalyse mit vorgegebenen Kontrasten (R-Paket "car")

Alpha-Adjustierungen

p.adjust(p, method = ...) Adjustierung von p-Werten (u.a. nach Bonferroni, Holm und Hochberg)
summary(glht(Anova-Schätzung, linfct = mcp(drugs="Tukey"),test=adjusted(„Adjustierung“)) diverse Adjustierungen (R-Paket "multcomp")
Adjustierung(p-Werte, alpha) wobei Adjustierung Name eines Verfahrens ist (R-Paket "mutoss")

Hilfsprogramme

reshape(Datenmatrix, direction="long", varying=Variablen, timevar="Name",...)
Umkstrukturieren von Messwiederholungensvariablen Variablen in Fälle, die durch einen Faktor Name gekennzeichnet werden.
reshape(Datenmatrix, direction="wide", timevar="Name",...)
Umstrukturieren von Fällen mit Faktor Name in Messwiederholungen

Lineare Modelle

Lineare Regression

lsfit (x, y) einfache lineare Regression
lsfit (cbind(x1, x2,...), y) multiple lineare Regression
line (x, y) einfache lineare Regression (robuste Anpassung nach Tukey)
nls (Formel, Dataframe) nichtlineare Regression
lm (Formel, data=Dataframe) lineares Modell
glm (Formel, family=Verteilung, data=Dataframe) verallgemeinertes lineares Modell

Logistische Regression

glm (Formel, family=binomial, data=Dataframe) binär-logistische Regression
zelig (Formel, "Modell", Dataframe) wobei Modell "logit" (binär-logistisch), "ologit" (ordinal-logistisch), "mlogit" (multinomial-logistisch) (R-Paket "Zelig")
polr(Formel,Dataframe, method="Modell") ordinale Regression, wobei Modell: "logistic", "probit", "loglog", "cloglog", "cauchit" (R-Paket "MASS")
clm(Formel,Dataframe, link="Modell") ordinale Regression, wobei Modell: "logit", "probit", "cloglog", "loglog", "cauchit" (R-Paket "ordinal")
vglm(Formel,Dataframe, family=Modell) ordinale Regression mit vorgegebenem Modell, z.B. family=cumulative(parallel=F) für das non proportional odds model (R-Paket "VGAM")
npmlt(Formel, link="Modell") Mixed effects cumulative link and logistic regression models, wobei Modell: "clogit", "blogit" (R-Paket "mixcat")
wald.test(b=Koeffizienten,Sigma=Varianzen,Terms=Auswahl) Wald-Test von Regressionskoeffizienten auf Verschiedenheit von 0 bzw.
wald.test(b=coef(glm-Modell),Sigma=vcov(glm-Modell),Terms=Auswahl) (R-Paket "aod")
PseudoR2(glm-Modell) Pseudo-R2 auf Basis einer GLM-Schätzung (z.B. bei logistischer Regression) (R-Paket "BaylorEdPsych")

Modell-Spezifikationen

y ~ Formel(x1, x2,...) (oder log(y) ~ Formel(x1, x2,...))
wobei Formel(x1, x2,...) (mit (z.B. metrischen) Variablen x1, x2,.. und Faktoren a1, a2,...) u.a. die folgenden Terme enthalten darf:
  x1+x2+... additives Modell (z.B. Regression)
  x1:x2+... Produkt zweier Variablen (z.B. Regression)
  a1*a2*... multiplikatives Modell mit Interaktionen (z.B. Varianzanalyse)
  a1/a2... hierarchisches Modell (z.B. Varianzanalyse)
  a1*x1... additives Modell für Gruppen (a1) (z.B. Regression innerhalb Gruppen)
  poly(x1,m) Polynom-Regression vom Grad m
  ...-1 Modell ohne Konstante (z.B. Regression durch den Ursprung)
bzw. Kombinationen der o.a. Terme

Modell-Informationen

summary (Modell) Zusammenfassung der Ergebnisse
anova (Modell) Varianzanalyse eines Modells (u.a. Ausgabe RSS und F) bzw.
anova (Modell,test="Kriterium") wobei Kriterium : “Rao”, “LRT”, “Chisq”, “F”, “Cp”
anova (Modell1, Modell2) Vergleich zweier Modelle
coef (Modell) Regressionskoeffizienten-Vektor
confint (Modell) Konfidenzintervalle für Regressionskoeffizienten-Vektor
plot (Modell) Plot der Residuen und Schätzwerte
predict (Modell, newdata=Dataframe) Vorhersage von Werten
resid (Modell) Residuen-Vektor
fitted (Modell) y-hat-Vektor (der vorhergesagten Werte)
deviance (Modell) Residuen-Quadratsumme
step (Modell, ~ . + Terme, direction="backward"/"forward") Schrittweise Analysen
add1 (Modell, ~ . + Terme) Hinzunahme von Termen
drop1 (Modell, ~ . - Terme) Herausnahme von Termen
update (Modell, ~ . +/- Terme) Hinzunahme/Herausnahme von Termen
   wobei über test="F" bzw. test="Chisq" entsprechende Tests für die Herausnahme bzw. Hinzunahme von Termen gemäß Kriterium ausgegeben werden.

model.frame(Formel,Dataframe) Dataframe nur mit den in Formel aufgeführten Vraiablen
model.response(Formel,Dataframe) abhängige Variable
model.matrix(Formel,Dataframe) Design-Matrix auf Basis von Formel
model.tables(Modell,"effects") Effekte für ein Anova-Modell
model.means(Modell,"means") Mittelwerte für ein Anova-Modell

Faktorenanalyse

Hauptkomponentenanlyse

princomp(Datenmatrix) (über Berechnung der Eigenwerte und Eigenvektoren) bzw.
prcomp(Datenmatrix) (über singular value decomposition)
u.a. mit den Komponenten

...$sdev : Eigenwerte, Standardabweichungen
...$loadings (bei princomp) bzw. ...$ratation (bei prcomp): Faktorladungen
...$correlations : Korrelationsmatrix
...$scores (bei princomp) bzw. ...$x (bei prcomp): nichtstandardisierte Faktorscores
...$center : Mittelwerte
...$coef : Faktorscorekoeffizienten
...$n.obj : Anzahl der benutzten Fälle

Haupt- und Maximum-Likelihood-Faktorenanlyse

factanal(Datenmatrix, factors=Faktorenzahl, scores="regression") ML-Faktorenanalyse mit Varimax-Rotation
   alternativ Zusatz rotation="promax" für eine schiefwinklige Rotation
u.a. mit den Komponenten

fa(Datenmatrix, nfactors=Faktorenzahl, scores="Methode", rotate="Methode") diverse Faktorenanalysen mit 14 verschiedenen Rotationsmethoden und umfangreicher Ausgabe, bzw.
fa(Korrelationsmatrix, nfactors=Faktorenzahl, scores="Methode", rotate="Methode") (R-Paket "psych")

...$uniquenesses (1 - Kommunalitäten)
...$loadings (Faktorladungen)
...$values (Eigenwerte, erklärte Varianzen)
...$correlations (Korrelationsmatrix)
...$scores (Faktorscores)
...$center (Mittelwerte)
...$n.obj (Anzahl der benutzten Fälle)

Ergebnisse

summary(Hauptkomponentenanalyse) Statistiken für die Hauptkomponenten
loadings(Faktorenanalyse) Faktorladungsmatrix
varimax(Faktorladungsmatrix) Varimax-Rotation (orthogonal)
promax(Faktorladungsmatrix) Promax-Rotation (schiefwinklig)
screeplot(Hauptkomponentenanalyse) Scree-Plot der Eigenwerte

Korrelation

Korrelationskoeffizienten

cor.test(x,y) Pearson-Produkt-Moment-Korrelationskoeffizient mit Test
cor.test(x,y, method="spearman") Spearman-Rangkorrelationskoeffizient mit Test
cor.test(x,y, method="kendall") Kendall-Rangkorrelationskoeffizient mit Test

Kanonische Korrelationsanalyse

cancor(x-Datenmatrix,y-Datenmatrix)
u.a. mit den Komponenten

...$cor (kanonische Korrelationen)
...$xcoef (Koeffizienten fuer die x-Variablen)
...$ycoef (Koeffizienten fuer die y-Variablen)

Korrelations-/Kovarianz-/Distanzmatrix

cor(Datenmatrix) (Korrelationsmatrix)
var(Datenmatrix) (Kovarianzmatrix)
cov.mve(Datenmatrix) (Minimum Volume Korrelations-/Kovarianzmatrix)
dist(Datenmatrix, method=...) (Distanzmatrix: "euclidean", "maximum", "manhattan", "canberra", "binary" oder "minkowski")
cophenetic(Datenmatrix) (Distanzmatrix)
mahalanobis(Datenmatrix, Datenvektor, Kovarianzmatrix) (Mahalanobis-Distanzen zum angegebenen Datenvektor)

Clusteranalyse

Bei R sind die Funktionen zum Teil im Package "cluster" enthalten.

Hierarchische agglomerative Clusteranalyse

hclust(Distanzmatrix, method=...)
   Methoden: "average", "single", "complete", "ward", "mcquitty", "centroid", "median"
agnes(Datenmatrix, method=...) (mit zahlreichen Optionen)
   Methoden: "average", "single", "complete", "ward", "weighted", "flexible"
beide u.a. mit den Komponenten
...$merge (Fusionsschritte)
...$height (Distanzdifferenz bei Fusionsschritten)
...$order (Umordnung der Objekte)

cophenetic(hier.Clusteranalyse) Berechnung der cophenetischen Abstände
cutree(hier.Clusteranalyse, k=Gruppenzahl) Bildung von Gruppen aus einer hierarchischen Clusteranalyse

K-Means Clusteranalyse

kmeans(Datenmatrix, Matrix der geschätzten Gruppen-Mittelwerte) oder
kmeans(Datenmatrix, Gruppenzahl)
u.a. mit den Komponenten
...$cluster (Cluster-Zugehoerigkeiten)
...$centers (Cluster-Mittelwerte)
...$withinss (Within Cluster Sum of Squares)
...$size (Anzahl Objekte pro Cluster)

Weitere Verfahren

pam(Datenmatrix, Clusterzahl) Clustern um Medoide

clara(Datenmatrix, Clusterzahl) Clustern um Medoide für große Datansätze (nur R)

fanny(Datenmatrix, Clusterzahl) Fuzzy-Clusteranalyse mit unscharfen Partitionen

diana(Datenmatrix) hierarchische divisive Clusteranalyse

mona(Datenmatrix) divisive monothetische Clusteranalyse für binäre Merkmale

mstree(Datenmatrix) Minimum Spanning Tree (nur S-Plus)
u.a. mit den Komponenten
...$x und ...$y (Koordinaten)
...$mst (Objekt, mit dem dieses verbunden ist)

Plots

clusplot(Partition) Punktewolke der ersten beiden Hauptkomponenten
(nur für mit pam , fanny , clara erstellte Partitionen)

plot(silhouette(Partition)) Silhouette-Plot (nur R)

Diskriminanzanalyse

discrim(Modell, Datenmatrix) lineare, quadratische u.a. Diskriminanzanalysen (nur S-Plus)
predict(..., Datenmatrix) Vorhersage der Gruppenzugehörigkeiten

lda(Modell, Datenmatrix) lineare Diskriminanzanalyse (MASS, nur R)
qda(Modell, Datenmatrix) quadratische Diskriminanzanalyse (MASS, nur R)
predict.lda(..., Datenmatrix) Vorhersage der Gruppenzugehörigkeiten (MASS, nur R)
predict.qda(..., Datenmatrix)

Weitere Verfahren

Skalierungsverfahren

cmdscale(Distanznatrix) klassische multidimensionale Skalierung (nach Gower)

Dichteschätzung

density(Vektor)

Power-Analyse

pwr.Test Power-Aylase für Test (u.a. .test. r.test, anova.test, chisq.test)

Effektstärke

cohensD(x,y) Cohens D für 2 Gruppen
etaSquared(Anova-Schätzung) eta**2 (beide in R-Paket "lsr")

CohenD(x,y) Cohens D für 2 Gruppen
EtaSq(Anova-Schätzung) eta**2 (beide in R-Paket "DescTools")

effect.size(lm-Schätzung) diverse Maße (u.a. Wherry, Claudy, Smith, Olkin & Pratt)


Haiko Lüpsen
Letzte Änderung: 25.03.2020