Semester 1 Flashcards
Daten einsehen
- load
-> load(file.choose( )) - read.table
- read.csv
Überblick verschaffen
- ls( ) -> wieviele Zeilen und Spalten?
- summary(data) -> deskriptivstatistik zu allen Variablen
- ncol(data)/nrow(data) -> Anzahl Spalten/Zeilen
- data[|Zeilennr| , |Spaltennr|] -> Variable auswählen über die Spalten- oder Zeilennr
Annahmen der Multiplen Regression
- zufällige Fehler
- Varianzhomogenität, Homoskedastizität und unkorrelierte Fehler
- Multikolinearität (X hat vollen Rang (n>p, keine Linearkombi)
- Normalverteilung (der Fehler und y)
- Einflussgrössen sind messfehlerfrei
Was tun bei Heteroskedastizität
- gewichtete QK-Schätzung
- Box-Cox-Transformation
- Quantil Regression
- Gemischte Modelle
Was tun wenn nicht NV
- GLM
- (Box-Cox) Transformation
- Quellen von Unterschieden suchen
Was tun bei Messfehler
(Bei additiven Messfehlern wird Varianz höher -> Steigung weniger steil)
- Tests/Fragebögen validieren
- Modelle für latente Variablen verwenden
Schätzung
- KQ (kleinste Quadrate)
- ML (Maximum Likelihood)
-> entscheiden, welche Regressionsgerade am besten zu den Daten passt
-> bei Normalverteilung beide gleich
Kategoriale Einflussgrössen (X)
Dummy-Kodierung (Treatment-Kontraste)
- 0 = Referenzkategorie
- Interpretation im Vrgl zur Referenzkategorie
Effekt-Kodierung (Summen-Kontraste)
- Spalte addiert sich zu 0
- Interpretation im Vrgl zum Gesamtmittel
In R: contr.treatment (#k)
Zentrierung
- Um vergleichbar zu machen
- wenn 0 in Daten nicht vorkommt
-> von jedem Wert Mittelwert abziehen
-> nur Intercept ändert, Steigung bleibt gleich
-> Intercept ist dann nichtmehr = sondern Durchschnitt
In R: dd$Eink. - mean(dd$Eink.)
Interaktionen
Haupteffekte nicht mehr interpretierbar, wenn keine Steigung, welche auf beide Gruppen zutrifft
-> die beiden Kategorien werden separat analysiert/interpretiert
Falls 2 metrische Variablen: eine in Kategorien einteilen (niedrig/mittel/hoch)
Bestimmtheitsmass R^2
Anteil der durch das Modell erklärten Varianzan Gesamtstreuung
(0-1)
Problem: wird immer höher wenn Variable dazu kommt -> Adjusted R^2 -> berücksichtigt #Parameter
In R:
- adj.r.squared
- summary(lm$adj.r.squared
Prüfgrösse (F-Wert)
(RSS_H0 - RSS_voll / r) / (RSS_voll / n - [p+1])
- RSS = Residuenquadratsumme
- n = # Personen
- p+1 = Parameter + Intercept
- r = # Restriktionen durch H0 (Differenz der Freiheitsgrade)
Quantilregression
Unterschiedliche Regressionsgeraden/Steigungen & Intercepte für Quantile, z.B. wenn Homosked. verletzt
-> Steigung steigt über Quantile hinweg
-> Keine Einteilung in Gruppen wie bei Interaktion! (Alles gleiche Variable eig)
Vorteile:
- kann gut mit Ausreissern/Heteroskedast., Nicht NV umgehen
- bessere Schätzung & zusätzl. Infos über untersch. Verläufe
- Interpretation sonst genau wie bei normaler Regression
Likelihood
- Ziel: herausfinden, wie plausibel versch. Parameter für ein best. Ergebnis sind
- Modell das besser zu Daten passt hat höhere Likelihood
-> Werte können beliebig gross/klein sein - je grösser, desto besser passt Parameter
- Wert der Treffwahrsch. ist am plausibelsten wo Likelihood am höchsten
- einzelne Likelihoods werden für mehrere Trials multipliziert
- Wichtig ist nur bei welchem Wert Max ist, nicht was Likelihood dort ist (ableiten und 0 setzen, logarithmieren)
Logistische Regression - Binäres Logit-Modell
- y binär (2 Kategorien 0 und 1)
- Regressionsgerade = S (0/1)
- Parameterschätzung: ML
- Modellvergleich: Likelihood-Quotienten-Test
- Responsefunktion: πi = h(ηi) = e^ηi / 1 + e^ηi
- Linkfunktion: (Umkehrung der Responsefunktion) -> log
- odds: pii / 1 - pii
- log odds: log (pii / 1 - pii)
Additiver Einfluss: log, linear, wenn x 1 steigt, steigen log odds um beta1
Multiplikativer Einfluss: log weg -> e^, wenn x 1 steigt, steigen odds um e^beta1
Wahrscheinlichkeit: / 1- pii -> wenn x steigt, steigt/fällt Wahrscheinlichkeit für y=1
In R:
glm(y~x, family = binomial, dd)
Predict(logitm, newdata = data.frame(gre = 500), type = „response“)
Poisson Regression
- Zähldaten
- Verteilung ist diskret & schief (geht nicht unter 0)
- Mittelwert und Varianz können sich nicht unabhängig verändern
Bei Overdispersion: Varianz>Erw.wert -> oft mehr 0 als erwartet = Zeroinflation
-> Quasipoisson, neg. Binomial, zero-inflated Regression
-> Bei Quasipoisson: Varianz soviel grösser als Erwartungswert (können sich unterscheiden)
In R:
glm(y~x, family = „(quasi)poisson“, dd)
predict(poissonm, newdata = data.frame(math = 50), type = „response“)
Mehrkategoriale Logit-Modelle: perfekt getrennte Klassen
Bei einer perfekten Trennung der y-Werte
Beta1 ist unendlich -> logit modelle können nicht immer damit umgehen, je nach Programm -> Fehlermeldung / komische Ergebnisse
In R:
binomial_model <- glm( y ~ x, data = |data_name|, family = „binomial“)
Machine Learning
- nicht parametrisch (Annahmen der linearen Regression müssen nicht gegeben sein)
- algorithmisch
- explorativ (Modell wird aus Daten gelernt)
Pobleme:
- garbage in/ garbage out
- bias in / bias out
- Manipulierbarkeit
In R:
Net <- nnet(y~., data = dd, size = 2) (size = #hidden units)
Predicted <- factor(predict(net, type = „class“), levels(dd$y)
-> Vergleich von Vorhersage durch Modell mit reellen Werten des Trainingsdatensatz
Klassifikations- /Regressionsbäume
- keine Black-Box
- Personen anhand von x in Gruppen einteilen, die ähnliche Werte von y haben
- Mit Trainingsdatensatz werden relevante x ausgewählt und an Cutpoints aufgeteilt
- Algorithmus berechnet wo Cutpoint ist -> automatische Variablenselektion
- bei sehr vielen Variablen und Interaktionen wäre neuronales Netzwerk besser
In R:
Tree <- ctree(y~., data=dd)
Predicted <- predict(tree, type = „response“)
Table(true, predicted) -> = Fehlerklassifikation
Bagging und Random Forest
- mehrere Klassifikations-/Regressionsbäume zusammen -> Mittelwert
- jeder Baum wird auf zufällig gezogenem Teil des Trainingsdatensatz gelernt
- SP mit ziehen und zurücklegen
Bagging:
- ziehen mit zurück legen
- zufällige Ziehung von Personen
- ntree = 500 -> 500 SP aus Datensatz
Random Forest:
- zufällige Ziehung von Personen und Variablen
- bessere Vorhersage
- ntree = 500, mtry = 5 -> 500 SP und jedesmal 5 zufällige Variablen
- gehen beide auch bei n<p
- beide Black-Box
- liefern Variableimportance: welche x wichtig, welche nicht -> um wieviel schlechter wird Vorhersage wenn permutiert (Zufall) wird
-> Überprüfung immer an neuem Datensatz
In R:
Forest <- cforest(y~., data = dd, controls = cforest_unbiased(ntree=…, mtry=…)
-> wenn mtry= 4 bei 4 Variablen ist es gleich wie Bagging
Barplot(varimp(forest), names = c(„bb“, „mm“, …))
Daten abspeichern
- save(model, file = „|filename|“)
Matrixschreibweise für eine Person
- [1 xi1 … ] etc. -> 1 als „Landeplatz“ für β0
- ^T -> transponiert, also liegend
- grosses x, β oder ε -> Vektor, beinhaltet alle x, βs oder εs
Haupteffekte in R
y ~ x1 + x2 (+ für Haupteffekte)
Interaktionseffekte in R
- y ~ x1 + x2 + x1 : x2 (: Zeichen für Interaktion; ausführliche Schreibweise)
- y ~ x1 * x2 (* Zeichen für alle Haupteffekte und der Interaktion; verkürzte Schreibweise)
Modell erstellen in R
|model_name| <- lm (y ~ x1 + x2, data = |data_name|)
summary(|model_name|)
Annahmen der Multiplen Regression - Zufällige Fehler
Erwarteter Wert des Fehlers = 0
Überprüfung:
Residuenplot; horizontale, gerade Linie
Annahmen der Multiplen Regression - Varianzhomogenität, Homoskedastizität und unkorrelierte Fehler
a) Varianz überall gleich
-> Streuung um Erwartungswert überall etwa gleich
b) Fehler untereinander NICHT korreliert
-> Residuenplot (kein Muster) / Scale-Location-Plot
Annahmen der Multiplen Regression - Multikolinearität
X hat vollen Rang (n>p, keine Linearkombi)
-> verletzt, wenn zwei Variablen direkt miteinander verwandt (z.B. Alter und Geburtsjahr)
Überprüfung:
Modell dann nicht schätzbar
Annahmen der Multiplen Regression - Normalverteilung
Normalverteilung (der Fehler und y)
-> Fehler sind an jeder Stelle von x normalverteilt
Überprüfung:
- Histogramm der Residuen
- Q-Q-Plot (ok, wenn Punkte mehrheitlich auf Diagonale)
Annahmen der Multiplen Regression - Messfehlerfreie Einflussgrössen
Messfehler nicht direkt ersichtlich
-> wichtig bei Versuchsdesign darauf zu achten
Dummy-Kodierung - Interpretation der Koeffizienten
- Achsenabschnitt β0: der mittlere erwartete y-Wert bei x1 = 0 und x2 = 0 ist = β0
- Steigung β1: der mittlere erwartete y-Wert ist um β1 höher, wenn x1 um 1 steigt und alle andere gleich bleibt
- Steigung β2:der mittlere erwartete y-Wert ist um β2 höher, wenn x2 um 1 steigt und alles andere gleich bleibt
Effekt Kodierung - Interpretation der Koeffizienten
- Achsenabschnitt β0: der Gesamtmittelwert der erwarteten y-Werte bei x1 = 0 ist = β0
- Steigung β1: der mittlere erwartete y-Wert ist um β1 höher, wenn x1 um 1 steigt und alles andere gleich bleibt (gleich wie Dummy-Kodierung)
- Steigung β2: β2 ist die Änderung (nach oben/unten) im Vergleich zum Gesamtmittelwert, wenn alles andere gleich bleibt
Interaktionen - Interpretation
Achsenabschnitte:
- Personen mit x1 = 0 und einem durchschnittlichen x2-Wert, haben im Mittel ein erwarteten y-Wert von β0
- Personen mit x2 = 1 und einem durchschnittlichen x2-Wert, haben im Mittel ein erwarteten y-Wert von β0 + ?
Steigungen:
- Personen mit x1 = 0, haben einen mittleren y-Wert von β1 höher, wenn x2 um 1 steigt
- Personen mit x1 = 1, haben einen mittleren y-Wert von β1 + βIA höher, wenn x2 um 1 steigt
Overfitting
Je mehr Variablen man im Modell aufnimmt, umso besser kann man ein spezifisches y vorhersagen
-> Modell stimmt irgendwann nicht mehr für andere Messungen, da es zu spezifisch ist
F-Test
Vergleich von genesteten Modellen
-> ist F-Test signifikant erklärt das grössere Modell signifikant mehr Streuung; Anzahl Parameter wird berücksichtigt
Likelihood-Schätzer - Berechnung
L_x,k(π) = (k über x) · π^x · (1 - π)^(k-x)
- L: Likelihood, als Funktion von π
- π: Trefferwahrscheinlichkeit, ist unbekannt
Maximum-Likelihood
Höchste erreichbare Likelihood -> uns interessiert bei welchem Wert das Maximum liegt, nicht wie hoch es ist
Maximum-Likelihood-Schätzer:
π = Σxi / n · k
Vorteile:
- für Parameter vieler statistischer Modelle bestimmen
- praktische Eigenschaften
Maximum-Likelihood - Praktische Eigenschaften
- asymptotisch erwartungsgetreu (bei grossen Stichproben) -> treffen im mittel den wahren Wert wenn n ausreichend gross
- konsistent; Varianz mit mit steigenden n kleiner, somit Schätzung zuverlässiger
- asymptotisch normalverteilt -> Test und Konfidenzintervalle lassen sich ableiten
Logistische Regression - Probit-Modell
verwendet Verteilungsfunktion der Standardnormalvert. anstatt logistische Responsefunktion
-> v.a. in Wirtschaftswissenschaften
Odds
Wettchancen; Wahr. Für Gewinn über der Wahr. für Verlust
odds = πi / 1 - πi
Log odds
log odds = log(odds) = log(πi / [1 - πi])
Logistische Regression - Binäres Logit-Modell - Interpretation
- additiver Einfluss auf die log odds: wenn x um 1 steigt, steigen/fallen die log odds um β1
- multiplikativer Einfluss auf die odds: wenn x um 1 steigt, werden die odds e^β1-Mal so gross
- Einfluss auf die Wahrscheinlichkeit: wenn x steigt, dann steigt/fällt die Wahrscheinlichkeit für y = 1
Mehrkategoriale Logit-Modelle
Bei Fällen wo das y mehrere Kategorien hat
Generalisierte Lineare Modelle: Poisson-Regression
Für metrische Variablen, die nicht normalverteilt sind -> sogenannte Zähldaten
- Responsefunktion: λi = e^ηi = h(ηi)
- Linkfunktion: log(λi) = ηi = g(λi)
In R:
p_model <- glm(formula = y ~ x1, family = „poisson“, data = |data_name|)
Generalisierte Lineare Modelle: Poisson-Regression - Poisson-Verteilung
- Parameter λ (Lambda)
- je tiefer λ, umso schiefer die Verteilung
- je höher λ, umso eher eine NV