PS01_01 | PS01_02 | PS01_03 | PS01_04 | PS01_05 | |
---|---|---|---|---|---|
PS01_01 | 1.17 | 0.89 | 0.97 | 0.9 | 0.96 |
PS01_02 | 0.89 | 1.38 | 0.94 | 0.91 | 0.88 |
PS01_03 | 0.97 | 0.94 | 1.55 | 1.26 | 1.16 |
PS01_04 | 0.9 | 0.91 | 1.26 | 1.49 | 1.15 |
PS01_05 | 0.96 | 0.88 | 1.16 | 1.15 | 1.55 |
13. Zusammenfassung
Zusammenfassung
Kovarianz einer Variablen mit sich selbst ist deren Varianz. Die Kovarianz zweiter z-transformierter Variablen ist die Korrelation r.
\begin{align*} cov & = \frac{1}{n}\sum_i^n(x_i-\overline{x})(y_i-\overline{y}) \end{align*}
PS01_01 | PS01_02 | PS01_03 | PS01_04 | PS01_05 | |
---|---|---|---|---|---|
PS01_01 | 1.17 | 0.89 | 0.97 | 0.9 | 0.96 |
PS01_02 | 0.89 | 1.38 | 0.94 | 0.91 | 0.88 |
PS01_03 | 0.97 | 0.94 | 1.55 | 1.26 | 1.16 |
PS01_04 | 0.9 | 0.91 | 1.26 | 1.49 | 1.15 |
PS01_05 | 0.96 | 0.88 | 1.16 | 1.15 | 1.55 |
Was steht in der Diagonalen? Was, wenn es Korrelationen wären?
Modellidee
Für das Ergebnis der Datenerhebung wird ein Modell entworfen, das Zusammenhänge einfach darstellt. Da das Modell nie zu 100% das Ergebnis treffen wird, bleibt ein Rest, den wir Modellfehler oder einfach Fehler nennen.
Grundmodell
Ergebnis = (Modell) + Fehler
Beispiel
Mittelwert von x_i = \overline{x} + Fehler_i (die Abweichungen vom Mittelwert)
\begin{align*} \text{GG: } & Y_i = \beta_1 + \beta_2X_{i2} + U_i \\ \text{Stichprobe: } & Y_i = b_1 \, + b_2X_{i2} \, +e_i \\ \end{align*}
Modell und Schätzung
Das Regressionsmodell für die Zusammenhänge in der GG wird durch die Berechnung der b’s in der Stichprobe geschätzt. Die «Variablen» (Y und X) sind fix. Es bleiben nur die b’s zu schätzen, von denen die Lage der Regressionsgerade abhängt und damit die Fehler (Errors) aka Residuen e_i. Subtrahiert man in der Formel oben b_1 + b_2X_{i 2}, erhält man:
e_i = Y_i - (b_1 - b_2X_{i2}), woraus sich b_1 und b_2 ableiten lassen:
\begin{align*} b_1 & = \overline{Y} - b_2\overline{X}_2\\ b_2 & = r_{Y2}\frac{S_Y}{S_2}\\ \end{align*}
Regressionskoeffizient b (aka Steigungskoeffizient) und r
\begin{align*} b &= \frac{\sum{(X- \overline{X})(Y- \overline{Y})}}{\sum{(X- \overline{X})^2}} \\ r_{YX} & = b \cdot \frac{s_X}{s_Y} \end{align*}
Der standardisierte Regressionskoeffizient BETA aka b*
BETA = b\cdot\frac{s_X}{s_Y} = r_{YX}
Beschreibung
Die standardisierten Regressionskoffizienten geben einen Zusammenhang in Standardabweichungen an: Wenn x um eine Standardabweichung grösser ist, um wie viele Standardabweichungen ist dann y grösser (oder kleiner, wenn negativ)?
Wie Korrelationen bzw. partielle Korrelationen
Die BETAs sind den Korrelationen sehr ähnlich: +1 ist ein perfekter positiver Zusammenhang, 0 kein Zusammenhang und -1 ein perfekter negativer Zusammenhang. Interpretieren würde ich ab 0.1, wenn sie signifikant sind.
se_b^2 = \frac{s^2_e}{n\cdot s^2_2} mit s_e^2 = \frac{1}{n-3}\sum{e_i^2}
Die Standardfehler der b’s sind (bei sehr vielen Ziehungen) die «durchschnittliche» Abweichung der b’s von dem wahren Wert \beta. Standardfehler kann man auch für die standardisierten Regressionskoeffizienten (BETA) berechnen.
\begin{align*} Y_i & = \overline{Y} + e_i\\ Y_i & = b_1 + b_2X_i + e_i\\ \hat{Y_i} & = b_1 + b_2X_i \\ Y_i & = \hat{Y_i}+e_i\\ SS_T & = SS_R+SS_M \\ R^2 &= \frac{SS_M}{SS_T} \end{align*}
R^2 ist Varianzaufklärung
Das Bestimmtheitsmass R^2 gibt an, wie viel Variant der AV durch die UV’s aufgeklärt werden konnte. R^2 geht von 0 bis 1, bzw., wenn in Prozent ausgedrückt, von 0% bis 100%.
R^2 = \frac{SS_M}{SS_T}
F-Test (R^2)
Gibt an, ob durch das Modell insgesamt überzufällig gut Varianz aufgeklärt wurde. Also, ob die Nullhypothese zurückgewiesen werden kann, dass die AV nicht durch sämtliche UVs zusammen (oder mind. eine UV) im Modell erklärt werden kann.
Formel für das korrgigierte R^2_{adj.}
R^2_{adj.} = R^2\cdot\frac{n-k-1}{n-1} bei kleinen Stichproben (wobei k die Anzahl UVs ist).
Funktion und Anwendung des R^2_{adj.}
Das R^2_{adj.} korrigiert (adjustiert) für die Anzahl der UVs im Modell im Verhältnis zum Stichprobenumfang, um zu verhindern, dass zu viel «zufällig» aufgeklärte Varianz überinterpretiert wird. Bei grösseren Stichproben (\frac{n-k-1}{n-1} ist schon bei 101 Fällen und 10 UVs mit 0.9 fast eins) mit mehreren hundert Fällen spielt die Korrektur keine Rolle mehr und man nehme ruhig und besser das normale R^2.
t-Werte der b’s oder standardisierten Regressionskoeffizienten (BETA)
Umrechnung der b’s in t-Werte, die sich (bei gegebenem Stichprobenumfang bzw. den Degrees of Freedom) unter der Annahme der Nullhypothese ergeben. Sie sind innerhalb einer Regressionsanalyse vergleichbar. Sie sind für die b’s und BETAS identisch.
p-Werte der b’s bzw. BETAS (p oder sig.)
Geben die Wahrscheinlichkeit an, dass ein in einer Stichprobe gefundenes b zustandekommt, obwohl die Nullhypothese gilt. Ist auch für die b’s und BETAS identisch. Bei p < .05 sprechen wir von einem von 0 signifikant verschiedenen b, wenn das Signifikanzniveau bei 95% liegt (5% Irrtumswahrscheinlichkeit).
Regressionsgleichung mit 2 UVs
\begin{align*} \text{GG: } Y_i & =\beta_1 + \beta_2X_{i2} + \beta_3X_{i3}+U_i\\ \text{n: } Y_i & =b_1 \, + b_2X_{i2} \, + b_3X_{i3} \, + e_i \end{align*}
Regressionsgleichung mit k UVs
\begin{align*} \text{GG: } Y_i & =\beta_1 + \beta_2X_{i2} + \beta_3X_{i3} ... + \beta_kX_{ik} + U_i\\ \text{n: } Y_i & =b_1 \, + b_2X_{i2} \, + b_3X_{i3} ... + b_kX_{ik} \, + e_i \end{align*}
Transformationen
Die X_i bis X_k können direkte lineare UVs sein, oder durch Lineartransformation linearisierte UVs bei kurvilinearen Zusammenhängen.
Gängige Lineartransformationen sind die Quadrierung einer UV (mit vorheriger Zentrierung), reziproke Transformation (1/X), logarithmische Transformation (log(x)) oder exponentielle Transformation (log(y) der AV).
Grundidee OLS
Wir suchen die b’s. Die gesuchten b’s sollen eine Regressionsgerade ergeben, die «optimal» in der Punktwolke der gemessenen Werte liegt. Wir suchen also die b’s, die die kleinsten quadrierten Abweichungen zwischen den vom Modell vorhergesagten und den gemessenen Werten ergibt. Das «Prinzip der kleinsten Quadrate» wird als OLS bezeichnet (Ordenary Least Squares).
\begin{align*} \sum_{i=1}^n{e_i^2} & \rightarrow minimal \\ \sum_{i=1}^n{(Y_i - \hat{Y_i})^2} & \rightarrow minimal \end{align*}
\begin{align*} b_2&=(r_{Y2}-r_{23}r_{Y3})\frac{1}{1-R_{2.3}^2}\frac{S_y}{S_2} \end{align*}
In Worten
Der Anstieg der «Regressionsgeraden» für X_2 ergibt sich aus der Korrelation r_{Y2} zwischen X_2 und Y, die um den vermittelten Zusammenhang über die Drittvariable, also das Produkt aus r_{23} und r_{Y3} reduziert wird. Der Rest sind Korrekturen damit, wie stark X_2 von den übrigen Variablen erklärt wird \frac{1}{1-R^2_{2.3}} und quasi die Umkehr der Standardisierung \frac{S_Y}{S_2}.
«Linear Estimator»
Die «Linear Estimator» sind die b’s, also b_1, b_2, … b_k. Geschätzt wird linear, aber die UVs können transformiert sein.
«Unbiased»
«Unbiased» bedeutet, dass wir unverzerrte Schätzer, also unverzerrte b’s haben wollen. Die b’s scätzen ihre \betas unverzerrt, wenn die Streuung der b’s um die wahren \betas herum liegen (man sagt auch: «erwartungstreu»).
«Best» bezeichnet die Effizienz der Schätzer b
Die besten Schätzer erhalten wir, wenn die Standardfehler der b’s (se_b) minimal sind.
Die Variablen (X und Y) müssen fix sein
Wir müssen also davon ausgehen, dass die erhobenen Variablen bei einer nächsten Ziehung nicht ganz anders aussehen würden.
im U_i darf keine relevante Einflussgrösse vergessen worden sein
Es darf im Unbekannten U_i keine Variable stecken, die mit den UV’s korreliert. Der Erwartungswert dieser Covarianz muss 0 sein: E(C_{2U}) = 0 = E(C_{3U}).
Modellspezifikation
Wir sollten aus der Theorie und in der Operationalisierung keine Variable vergessen, die mit den UVs zusammenhängt! Theoriearbeit besteht in der Suche nach der vollen Modellspezifikation! Die perfekte Modellspezifikation wäre das Ende der Forschung zu einem fixen Phänomen.
Definition
Multikollinearität bedeutet, dass die Varianz einer Variablen durch eine oder mehrere übrige UVs teilweise aufgeklärt wird.
herausgerechnete Erklärungskraft
Wird einer Variablen viel Erklärungsvarianz (R_{2.34...}) weggerechnet, dann hat sie kaum noch welche, um die AV zu erklären.
Wann ein Problem
Fehlervarianz von b_2
s_{b_2}^2=\frac{s_e^2}{n}\cdot\frac{1}{V_2}\cdot\frac{1}{1-R_{2.34...}^2}
Die Fehlerstreuung des Regressionskoeffizienten b ist proportional zur Streuung der Fehler e_i und umgekehrt proportional zur Fallzahl n sowie zur Varianz V_2 (bzw. s^2_2 von X_2) und zu Multikollinearität bzw. Toleranz TOL = 1-R^2_{2.34...}.
Toleranz ist die exklusive Varianz einer UV
TOL_{b_2} = 1-R^2_{2.34...}
Toleranz ist der Prozentsatz Varianz, der nicht durch die übrigen UVs rausgerechnet wird.
Der Varianz-Inflation-Factor VIF
VIF_{b_2} = \frac{1}{(1-R^2_{2.34...})} = \frac{1}{TOL_{b_2}}
Wenn keine Linearität vorliegt, werden die Effekte nicht richtig geschätzt. Häufig sind die Residuen nicht homoskedastisch. Lösen kann man das Problem durch Lineartransformation.
Probleme
Lösungen
Normalverteilung und Unabhängigkeit der Residuen
Schaut man sich visuell an. Wenn sie stark verletzt ist (z.B. bimodal) oder extrem schief, dann andere Methode.
Unabhängigkeit der Fehler
Die Fehler können nur voneinander abhängig sein, bei zeitlich geordneten Erhebungen, also Zeitreihenanalysen. Das braucht uns also erstmal nicht kümmern.
Kategoriale umkodieren
Kategoriale Variablen können in Dummys umkodiert (case_match
) werden. Für jede Ausprägung der Kategorialen wird eine Dummy angelegt mit 1, wenn die jeweile Ausprägung zutrifft und 0, wenn nicht.
die letzte Dummy ergibt sich
Wenn eine kategoriale 3 Ausprägungen daraus 3 Dummys gebaut werden, ergibt sich die letzte Dummy aus den ersten beiden!
Kategoriale | D_A | D_B | D_C |
---|---|---|---|
A | 1 | 0 | 0 |
A | 1 | 0 | 0 |
B | 0 | 1 | 0 |
C | 0 | 0 | 1 |
A | 1 | 0 | 0 |
B | 0 | 1 | 0 |
A | 1 | 0 | 0 |
Referenzkategorie weglassen
Wenn wir Dummys für eine Kategoriale in eine Regression aufnehmen wollen, müssen wir immer eine Kategorie weglassen, die wir dann die Referenzkategorie nennen.
Regressionsgleichung
\begin{align*} Fem\_Mean\_IDX & = b_1 + b_2 \cdot weiblich + b_3 \cdot nonbinär + e\\ Fem\_Mean\_IDX & = b_1 + e \quad \text{wenn weiblich = 0 und nonbinär = 0 (m)}\\ & = b_1 + b_2 + e \quad \text{wenn weiblich = 1}\\ & = b_1 + b_3 + e \quad \text{wenn nonbinär = 1} \end{align*}
In Worten
Wenn Dummyvariablen für die unterschiedlichen Ausprägugnen einer polytomen Variablen stehen, steht die Konstante für die Referenzkategorie (muss es geben, da sonst perfekte Multikollinearität herrscht). Die übrigen b’s stehen für die Mittelwertdifferenz zwischen den anderen Ausprägungen und der Referenzkategorie und werden mit t-Test (der Regression) auf Signifikanz getestet.
Die Gleichung
\begin{align*} Y & = b_1 + b_2D_2 + b_3X_3 + e \\ \end{align*}
In Worten
Wenn ein Dummyvariable D (zB “gender”) mit b2 in eine Regressionsgleichung eingeführt wird, dann ergeben sich zwei Parralelen mit dem Abstand von b_2.
Stat Mean IDX | |||
Predictors | Estimates | CI | p |
(Intercept) | 3.07 | 1.95 – 4.20 | <0.001 |
PS Mean IDX | -0.32 | -0.66 – 0.03 | 0.073 |
weiblich | 0.97 | 0.45 – 1.48 | <0.001 |
nonbinär | 0.13 | -0.87 – 1.14 | 0.793 |
Observations | 166 | ||
R2 / R2 adjusted | 0.113 / 0.097 |
Hintegrund
Beim Simpsons-Paradox haben gibt es mehrere Gruppen den gleichen Anstieg, aber in der UV und der AV unterschiedliche Level. Berücksichtigt man die Gruppen nicht, wird ein falscher Zusammenhang geschätzt. #Unterspezfikation
Bespiel Impfung
Oft haben Gruppen von geimpften Personen eine höhere Sterblichkeit betreffend der Krankheit, gegen die sie sich impfen lassen. Das liegt aber daran, dass sich vulnerable Personen eher impfen lassen.
Regression mit Slope-Dummy
Y = b_1 + b_2X_2 + b_3D_3 + b_4D_3X_2 + e
\begin{align*} Y & = b_1 + e & | X_2 = 0, D_3 = 0 \\ Y & = b_1 + b_3 + e & | X_2 = 0, D_3 = 1 \\ Y & = b_1 + b_2X_2 + e & | D_3 = 0 \\ Y & = b_1 + b_2X_2 + b_3 + b_4X_2 & | D_3 = 1 \\ \end{align*}
Agression | ||||
Predictors | Estimates | std. Beta | p | std. p |
(Intercept) | 35.95 | -0.00 | <0.001 | 0.968 |
Video Games(Hours per week) |
0.10 | 0.11 | 0.238 | 0.008 |
Anti Soz hoch | -3.28 | 0.37 | 0.501 | <0.001 |
Vid_Games:Anti_Soz_hoch | 0.77 | 0.15 | <0.001 | <0.001 |
Observations | 442 | |||
R2 / R2 adjusted | 0.183 / 0.177 |
Variables | Tolerance | VIF |
---|---|---|
Vid_Games | 0.832 | 1.202 |
Anti_Soz_hoch | 0.105 | 9.526 |
Vid_Games:Anti_Soz_hoch | 0.102 | 9.759 |
# DATEN |>
# summarize(Aggressions_Mittel = mean(Aggression, na.rm = TRUE), .by = Anti_Soz_hoch)
DATEN_z <- DATEN %>%
mutate(Vid_Games = Vid_Games - mean(Vid_Games, na.rm = TRUE)) # zentriere Vid_Games (Mittelwert = 0)
Modell4 <- lm(Aggression ~ Vid_Games + Anti_Soz_hoch + Vid_Games * Anti_Soz_hoch, data = DATEN_z)
sjPlot::tab_model(Modell4,
show.ci = FALSE,
show.std = TRUE, # zeige die standardisierten Koeffizienten
show.est = TRUE, # zeige die unstandardisierten estimates
show.r2 = TRUE, # zeige R^2
show.fstat = TRUE
)
Agression | ||||
Predictors | Estimates | std. Beta | p | std. p |
(Intercept) | 38.17 | -0.00 | <0.001 | 0.968 |
Video Games(Hours per week) |
0.10 | 0.11 | 0.238 | 0.008 |
Anti Soz hoch | 13.52 | 0.37 | <0.001 | <0.001 |
Vid_Games:Anti_Soz_hoch | 0.77 | 0.15 | <0.001 | <0.001 |
Observations | 442 | |||
R2 / R2 adjusted | 0.183 / 0.177 |
Variables | Tolerance | VIF |
---|---|---|
Vid_Games | 0.832 | 1.202 |
Anti_Soz_hoch | 0.999 | 1.001 |
Vid_Games:Anti_Soz_hoch | 0.831 | 1.203 |
Regression mit Interaktion (zentrierter X)
Y=b_1+b_2X_2+b_3X_3+b_4X_2X_3+e
Stat Mean IDX | ||||||
Predictors | Estimates | std. Beta | CI | standardized CI | p | std. p |
(Intercept) | 3.98 | 0.16 | 2.90 – 5.06 | -0.00 – 0.33 | <0.001 | 0.056 |
PS Mean IDX | -0.30 | -0.13 | -0.68 – 0.08 | -0.29 – 0.04 | 0.127 | 0.127 |
gender [männlich] | 0.65 | -0.66 | -2.39 – 3.70 | -1.06 – -0.27 | 0.673 | 0.001 |
gender [non-binär] | -1.89 | -1.41 | -3.70 – -0.08 | -2.77 – -0.06 | 0.041 | 0.041 |
gender [is doch völlig egal] |
-3.58 | -0.37 | -11.48 – 4.32 | -1.16 – 0.41 | 0.372 | 0.348 |
PS Mean IDX × gender [männlich] |
-0.55 | -0.23 | -1.57 – 0.47 | -0.67 – 0.20 | 0.292 | 0.292 |
PS Mean IDX × gender [is doch völlig egal] |
1.10 | 0.47 | -1.67 – 3.86 | -0.71 – 1.64 | 0.435 | 0.435 |
Observations | 166 | |||||
R2 / R2 adjusted | 0.134 / 0.101 |
Wie viel geht bei der Dimensionsreduktion durch die Faktoren verloren, bzw. was wird abgebildet?
Mit der Gesamtlösung kann man schauen, welchen Anteil der Varianz aller Faktoren durch die Faktorlösung abgebildet wird.
Wie gut werden die Variablen durch die Faktoren abgebildet?
Die Kommunalitäten und «Uniqueness» geben an, wie gut jede Variable durch die gebildeten Faktoren repräsentiert werden.
Was bedeuten die Faktoren?
Faktorladungen geben die Korrelationen der Faktoren mit jeder Variable an. Also welche Faktoren, welche Variablen repräsentieren? Dadurch kann den Faktoren ein Sinn und ein Name gegeben werden.
1. Prüfen, ob ein Set an Variablen für eine Faktorenanalyse geeignet ist
Korrelationsanalyse
KMO
2. Feststellen, wie viele latente Faktoren extrahiert werden sollten
Scree-Plot
Parallelanalyse
3. Interpretation der Faktoren
Berechnung der Faktorladungen
Identifikation der Faktoren (Interpretation)
Die «factor number» über der 1-Linie («Eigen values» > 1) ist eine Empfehlung für die Anzahl an Faktoren, bei denen jeder Faktor mehr Varianz (Eigenwert > 1) auf sich vereint als die ursprünglichen Dimensionen.
Unrotiert
Beim Verfahren der Faktorenanalyse wird erst ein Faktor in die Variablen gelegt, der alle am besten erklärt. Dann kommt der zweite und optimiert den Rest der Varianz usw. Das ergibt ein Ungleichgewicht zwischen den Faktoren. Darum wird rotiert.
Orthogonale und oblique Rotation
Faktoren werden rotiert, damit jeder optimal Varianz erklärt. Wenn orthogonal rotiert wird, sind die Faktoren 100% unkorreliert. Nach obliquer Rotation sind die Faktoren leicht korreliert, geben aber die Variablen besser wieder.
Bei orthogonaler Rotation sind die Faktoren unkorreliert.
Orthogonal ist klarer interpretierbar …
Bei der obliquen dürfen sie leicht korrelieren.
… oblique gibt realistischere Ergebnisse.
Faktorladungen sind die Korrelationen der Variablen mit den Faktoren (MR1 bis MR3).
Variable | MR1 | MR2 | MR3 | Complexity | Uniqueness | |
---|---|---|---|---|---|---|
1 | R101_07 | 0.74 | 1.02 | 0.4 | ||
2 | R101_15 | 0.74 | 1.21 | 0.39 | ||
3 | R101_13 | 0.71 | 1.03 | 0.43 | ||
4 | R101_14 | 0.66 | 1.22 | 0.49 | ||
5 | R101_06 | 0.66 | -0.3 | 1.49 | 0.57 | |
6 | R101_02 | 0.55 | 1.09 | 0.65 | ||
7 | R101_12 | 0.5 | 0.33 | 1.88 | 0.61 | |
8 | R101_18 | 0.42 | 1.54 | 0.69 | ||
9 | R101_10 | 0.35 | 1.15 | 0.85 | ||
10 | R101_08 | 0.75 | 1 | 0.45 | ||
11 | R101_11 | 0.66 | 1.24 | 0.57 | ||
12 | R101_09 | 0.61 | 1.11 | 0.6 | ||
13 | R101_05 | 0.35 | 0.55 | 1.72 | 0.47 | |
14 | R101_22 | 0.53 | 1.15 | 0.66 | ||
15 | R101_01 | 0.34 | 0.51 | 1.75 | 0.54 | |
16 | R101_24 | -0.45 | 0.4 | 2.06 | 0.65 | |
17 | R101_03 | -0.35 | 1.24 | 0.87 | ||
18 | R101_23 | -0.32 | 2.27 | 0.81 | ||
19 | R101_21 | 0.75 | 1.02 | 0.39 | ||
20 | R101_04 | 0.7 | 1.15 | 0.55 | ||
21 | R101_20 | 0.65 | 1.21 | 0.43 | ||
22 | R101_19 | 0.47 | 1.27 | 0.71 | ||
23 | R101_17 | 0.44 | 1.72 | 0.65 | ||
24 | R101_16 | 0.3 | 0.3 | 2.96 | 0.63 |
:::
Kommunalitäten
Die Kommunalität einer Variable ist der Varianzanteil, den sie mit den extrahierten Faktoren teilt. Kommunalitäten unter .4 sind eher dürftig.
Uniquness = 1 - Kommunalität
Uniqueness
Die Uniqueness-Werte drücken aus, wie hoch der Varianzanteil ist, der nicht durch die Faktorenlösung erklärt werden konnte. Werte über .6 sind eher dürftig.
Complexity
Die Komplexität je Variable gibt an, ob es Mehrfachladungen auf einer Variable gibt. Wenn sie 1 ist, dann ist das Ergebnis eindeutig, wenn sie nahe 2 ist, dann laden zwei Faktoren auf dieser Variable.
Odds
Odds = \frac{P(Y=1)}{P(Y=0)} = \frac{P(Y_{\text{trifft ein}})}{1-P(Y_\text{trifft ein})}
Odds Ratio
OR = Exp(B) = e^\beta=\frac{\text{Odds nach dem Ansteig von x um eine Einheit}}{\text{Odds vor dem Anstieg von x um eine Einheit}} = \frac{Odds_{nach}}{Odds_{vor}}
Odds_{nach} = Exp(B) \cdot Odds_{vor}
Characteristic | OR1 | 95% CI1 | p-value | VIF1 |
---|---|---|---|---|
ML1 | 0.74 | 0.53, 1.02 | 0.065 | 1.0 |
ML2 | 0.54 | 0.34, 0.83 | 0.007 | 1.7 |
ML3 | 1.74 | 1.12, 2.81 | 0.018 | 1.7 |
Null deviance = 230; Null df = 165; Log-likelihood = -109; AIC = 226; BIC = 238; Deviance = 218; Residual df = 162; No. Obs. = 166 | ||||
1 OR = Odds Ratio, CI = Confidence Interval, VIF = Variance Inflation Factor |
Characteristic | Beta | 95% CI1 | p-value | VIF1 |
---|---|---|---|---|
ML1 | -0.07 | -0.15, 0.00 | 0.066 | 1.0 |
ML2 | -0.14 | -0.24, -0.04 | 0.005 | 1.6 |
ML3 | 0.13 | 0.02, 0.23 | 0.016 | 1.6 |
R² = 0.071; Adjusted R² = 0.054; Sigma = 0.488; Statistic = 4.13; p-value = 0.007; df = 3; Log-likelihood = -114; AIC = 239; BIC = 254; Deviance = 38.5; Residual df = 162; No. Obs. = 166 | ||||
1 CI = Confidence Interval, VIF = Variance Inflation Factor |
Multinomial bedeutet, dass es eine kategoriale (multinomiale) AV gibt. Im Prinzip werden mehrere binäre logistische Regressionen durchgeführt und zusätzlich ausgegeben, wie gut das Gesamtmodel ist. Es kommen die Fit-Kennungen AIC und BIC dazu.
Wir schauen uns nächste Woche Outputs an.
Trainieren ➭ Testen ➭ Anwenden
Die verfügbaren Daten werden in einen grösseren und einen kleineren Teil getrennt:
Problemstellung
Wie können Fälle in einem Datensatz nach einer oder mehreren Variablen gruppiert werden?
Grundsätzliches Vorgehen
Wir suchen Gruppen (Cluster) von Fällen, die sich untereinander so stark wie möglich ähneln (homoge Cluster) und so stark von den anderen Gruppen unterscheiden wie möglich. Es geht also um Segmentierung anhand von Mustern in den Daten – Clusteranalyse ist Mustererkennung.
Zugehörigkeit des Verfahrens
Die Clusteranalyse gehört zu den explorativen Verfahren.
Im Kontext von ML wird sie als «unsupervised learning» behandelt.
Nicht zu viele fehlende Werte
Zu viele fehlende Werte verfälschen die Clusterbildung.
Skalenniveau
Das Skalenniveau spielt keine Rolle. Die Algorithmen können Cluster anhand von metrischen, dichotomenn oder kategorialen (mehrere Kategorien) Variablen extrahieren.
Fallzahl
Es braucht relativ grosse Stichproben. Bei kleinen Stichproben sind die Clusteranalysen recht ungenau.
Ähnliche Skalierung der Variablen
Haben die Variablen sehr unterschiedliche Skalierungen (zB Geschlecht dichotom und Alter in Jahren), dann ist eine vorherige z-Transformation der Variablen sinnvoll.
Ablauf
Vorteile
Nachteile
Ablauf
Clustervariablen festlegen
Bestimmung der Anzahl Cluster
zufällige Startpartition der Cluster anlegen
nächste Elemente der Cluster bestimmen
Clusterzentren neu ausrichten
nächste Elemente der Cluster bestimmen
iterativ Clusterzentren immer wieder neu ausrichten (4.) und zugehörige Elemente bestimmen (5.)
wenn sich nichts mehr tut, enden
Interpretation der Clusterlösung
Die Variablen für die Clusteranalyse müssen metrisch skaliert sein. Kategoriale und ordinale Variablen (mit Informationsverlust) können aber in Dummys umgewandelt werden.
Die Variablen sollten ähnliche Standardabweichungen haben, können dafür aber z-transformiert werden oder Faktoren einer FA sein (die sind z-transformiert)
Die Variablen sollten nicht zu stark korrelieren. Bei höheren Korrelationen bietet sich eine vorherige FA an.
Es werden k-mean-Clusteranalysen für 1-viele durchgeführt und dann der Knick (Ellbogen) gesucht.
Gütemass der Lösung als R^2
R^2 als \frac{between_{SS}}{total_{SS}} wie Varianzaufklärung.
Ausgangslage für die Cluster-Analyse
21 Elemente, die bezüglich zwei metrischen Merkmalen geclustert werden sollen.
Für jedes Element wurde jedes Merkmal gemessen, so können die Fälle auf einem Koordinatensystem eingetragen werden.
Als Distanzmass wird die euklidische Distanz verwendet. Das ist genau die Distanz, die man von Auge sieht.
Schritt 1: Cluster-Zentren
Es wird eine feste Anzahl (k) von Clusterzentren definiert, die irgendwo zufällig verteilt werden
Die Cluster-Zentren müssen nicht in der Nähe der tatsächlichen Cluster sein.
Hier heissen die Zentren: C1, C2 und C3 und sind absichtlich ausserhalb der von Auge sichtbaren Cluster gesetzt.
Schritt 2: Elemente zuordnen
Jedes Element wird dem Cluster zugeordnet, zu dessen Zentrum es den geringsten Abstand hat.
Dies ist die erste Lösung der k-Means Analyse (schlechte Lösung)
Die Cluster-Zentren liegen nun aber nicht im Zentrum der Cluster
Schritt 3: Zentren zentrieren
Die tatsächlichen Zentren der Cluster werden berechnet, indem man den Mittelpunkt aller Elemente berechnet, die zu jedem Cluster gehören.
Die Cluster-Zentren werden dort hin verschoben.
Nun haben sie sich aber näher an einige Elemente bewegt und sich von anderen entfernt
nochmals Schritt 2: Elemente zuordnen
Es gibt keine Änderungen mehr. Alle Elemente bleiben in den Clustern, denen sie zugeordnet waren.
Jetzt stimmen auch die Zentren
Endlösung ist erreicht: Die drei Zentren liegen genau im Zentrum der Elemente, die ihnen am nähesten sind.
In Worten
Am Anfang die Anzahl (k) der Cluster festlegen. Dann werden Clusterzentren zufällig in den Variablenraum gelegt. Dann wird jeder Fall seinem nächsten Clusterzentrum zugeordnet. Dann das Clusterzentrum in den Mittelpunkt seines Clusters verlegt. Wieder werden alle Fälle ihren jeweils nächsten Clustern zugeordnet. Dann wieder Verschiebund der Clusterzentren usw. bis kein Fall mehr sein Cluster wechselt und keine Verschiebung der Clusterzentren mehr stattfindet.
Gütemass ist die Summe quadrierter Clusterzentrenabweichungen.
Im nächsten Input gehe ich die Lernerfolgsfragen durch. Das finden Sie in Vorbereitung auch schon in Kapitel 14.
Wie in der Grafik ?@sec-modellguete zu sehen war, kann die aufgeklärte Varianz auch mal grösser sein als Gesamtvarianz. Kann dann R^2 grösser sein als 1? Begründen Sie Ihre Antwort.
Wenn wir eine Regressionsanalyse mit einer UV haben mit gegebenem s_2^2 und unveränderbarer Fehlerstreuung s^2. Was können wir tun, wenn wir denken, dass das b in der Stichprobe eine relevante Grösse hat, aber nicht signifikant ist?
MC 13.1: Sind folgende Aussagen richtig oder falsch?
MC_13_1 = [
["Clusteranalysen dienen der Zusammenfassung von Fällen in Gruppen.", "richtig"],
["Mit Clusteranalysen werden Variablen zusammengefasst.", "falsch"],
["Mit der Clusteranalyse werden möglichst unähnliche Fälle in Clustern zusammengefasst.", "falsch"],
["Die Clusteranalyse ist ein exploratives Verfahren.", "richtig"]
]
viewof answers_13_1 = quizInput({
questions: MC_13_1,
options: ["richtig", "falsch"]
})
Punkte_13_1 = {
const Sum =
(answers_13_1[0] == MC_13_1[0][1])*1 +
(answers_13_1[1] == MC_13_1[1][1])*1 +
(answers_13_1[2] == MC_13_1[2][1])*1 +
(answers_13_1[3] == MC_13_1[3][1])*1
var Punkte_13_1 = Sum - 2
if (Punkte_13_1 < 1) {Punkte_13_1 = 0}
return(Punkte_13_1)
}
Punkte:
MC 13.2: Sind folgende Aussagen richtig oder falsch?
MC_13_2 = [
["Die Clusteranalyse wird im ML-Kontext als «unsupervised learning» behandelt.", "richtig"],
["Ziel der Clusteranalyse ist eine Reduktion der Fälle auf wenige untereinander homegene Cluster bei möglichst geringer Homogenität innerhalb der Cluster.", "falsch"],
["Häufig werden Clusteranalysen vor Faktorenanalysen durchgeführt, damit letztere besser fitten.", "falsch"],
["Damit die Variablen nicht hoch korrelieren, werden vor CAs oft FAs durchgeführt.", "richtig"]
]
viewof answers_13_2 = quizInput({
questions: MC_13_2,
options: ["richtig", "falsch"]
})
Punkte_13_2 = {
const Sum =
(answers_13_2[0] == MC_13_2[0][1])*1 +
(answers_13_2[1] == MC_13_2[1][1])*1 +
(answers_13_2[2] == MC_13_2[2][1])*1 +
(answers_13_2[3] == MC_13_2[3][1])*1
var Punkte_13_2 = Sum - 2
if (Punkte_13_2 < 1) {Punkte_13_2 = 0}
return(Punkte_13_2)
}
Punkte:
MC 13.3: Sind folgende Aussagen richtig oder falsch?
MC_13_3 = [
["Clusteranalysen sind vor allem für die Analyse fehlender Werte geeignet.", "falsch"],
["Es gibt Clusteranalyseverfahren, die mit allen möglichen Skalenniveaus gut klarkommen.", "richtig"],
["Clusteranalysen funktionieren besonders gut mit kleinen Fallzahlen.", "falsch"],
["Es kann immer höchstens so viele Cluster geben, wie es Variablen gibt.", "falsch"]
]
viewof answers_13_3 = quizInput({
questions: MC_13_3,
options: ["richtig", "falsch"]
})
Punkte_13_3 = {
const Sum =
(answers_13_3[0] == MC_13_3[0][1])*1 +
(answers_13_3[1] == MC_13_3[1][1])*1 +
(answers_13_3[2] == MC_13_3[2][1])*1 +
(answers_13_3[3] == MC_13_3[3][1])*1
var Punkte_13_3 = Sum - 2
if (Punkte_13_3 < 1) {Punkte_13_3 = 0}
return(Punkte_13_3)
}
Punkte:
MC 13.4: Sind folgende Aussagen richtig oder falsch?
MC_13_4 = [
["Proximitätsmasse sind Ähnlichkeits- beziehungsweise Distanzmasse.", "richtig"],
["Euklidische Distanzen können nur für metrische Variablen festgestellt werden.", "richtig"],
["Für eine Clusteranalyse werden immer mindestens so viele Variablen benötigt, wie man Cluster extrahieren will.", "falsch"],
["Manche Clusteralgorithmen nehmen als Ähnlichkeitsmass auch die Korrelation.", "richtig"]
]
viewof answers_13_4 = quizInput({
questions: MC_13_4,
options: ["richtig", "falsch"]
})
Punkte_13_4 = {
const Sum =
(answers_13_4[0] == MC_13_4[0][1])*1 +
(answers_13_4[1] == MC_13_4[1][1])*1 +
(answers_13_4[2] == MC_13_4[2][1])*1 +
(answers_13_4[3] == MC_13_4[3][1])*1
var Punkte_13_4 = Sum - 2
if (Punkte_13_4 < 1) {Punkte_13_4 = 0}
return(Punkte_13_4)
}
Punkte:
MC 13.5: Sind folgende Aussagen richtig oder falsch?
MC_13_5 = [
["k-means-Cluster kann nur auf metrische (und Dummys) angewendet werden.", "richtig"],
["Bei k-means-Cluster sind ähnliche Standardabweichungen der Variablen erwünscht.", "richtig"],
["Bei k-means-cluster müssen hohe Korrelationen zwischen den Variablen vorliegen. ", "falsch"],
["Mit dem Ellbogenkriterium werden Clusterzentren einander zugeordnet.", "falsch"]
]
viewof answers_13_5 = quizInput({
questions: MC_13_5,
options: ["richtig", "falsch"]
})
Punkte_13_5 = {
const Sum =
(answers_13_5[0] == MC_13_5[0][1])*1 +
(answers_13_5[1] == MC_13_5[1][1])*1 +
(answers_13_5[2] == MC_13_5[2][1])*1 +
(answers_13_5[3] == MC_13_5[3][1])*1
var Punkte_13_5 = Sum - 2
if (Punkte_13_5 < 1) {Punkte_13_5 = 0}
return(Punkte_13_5)
}
Punkte:
MC 13.6: Mal was zu R?
MC_13_6 = [
["Clusteranalysen haben eher deskriptiven Analysegehalt.", "richtig"],
["Clusteranalysen werden häufig eingesetzt um Typologien zu bilden.", "richtig"],
["Hierarchische Clusteranalysen sind so rechenaufwendig, dass selbst moderne Rechner eher verrottet sind als sie mit der Analyse fertig werden.", "richtig"],
["Die Clusterzentren der k-means-Cluster korrelieren hoch miteinander.", "falsch"]
]
viewof answers_13_6 = quizInput({
questions: MC_13_6,
options: ["richtig", "falsch"]
})
Punkte_13_6 = {
const Sum =
(answers_13_6[0] == MC_13_6[0][1])*1 +
(answers_13_6[1] == MC_13_6[1][1])*1 +
(answers_13_6[2] == MC_13_6[2][1])*1 +
(answers_13_6[3] == MC_13_6[3][1])*1
var Punkte_13_6 = Sum - 2
if (Punkte_13_6 < 1) {Punkte_13_6 = 0}
return(Punkte_13_6)
}
Punkte:
Punkte_13_max = 12
Punkte_13_Gesamt = Punkte_13_1 + Punkte_13_2 + Punkte_13_3 + Punkte_13_4 + Punkte_13_5 + Punkte_13_6
Prozent_13_Gesamt = round(120*Punkte_13_Gesamt/Punkte_13_max, 0)
Note_13_grob = round((round(Punkte_13_Gesamt/Punkte_13_max,1)*12+2)/2, 1)
Insgesamt von Punkten, was % und etwa einer entspricht.
round = (n, places) => {
if (!places) return Math.round(n);
const d = 10 ** places;
return Math.round(n * d) / d;
}
function quizInput({ questions, options}) {
let answers = questions.map(() => null);
let root = htl.html`<div
style="
display: grid;
grid-template-columns: 10% 10% 70% 10%;"
>
${options.map(
(opt) => htl.html`<div style="font-weight: bold; font-size: HUGE">${opt}</div>`
)}
<div style="font-weight: bold">Aussagen</div>
<div style="font-weight: bold"></div>
${Array.from(questions.entries(), ([i, [question, correct]]) =>
quizInputRow({
question,
options,
correct,
onChange: (newAnswer) => {
answers[i] = newAnswer;
root.value = answers;
root.dispatchEvent(new CustomEvent("input"));
}
})
)}
</div>`;
root.value = answers;
return root;
}
function quizInputRow({
question,
options,
correct,
onChange = () => {}
}) {
let root = htl.html`<div>`;
function setAnswer(answer, initial = false) {
morph(
root,
htl.html`<div style="display: contents">
<form style="display: contents">
${options.map(
(opt) =>
htl.html`<label> </label>
<input
name=${question}  
type="radio"
value="${opt}"
checked=${opt === answer}
onChange=${() => setAnswer(opt)}
>
</input>`
)}
</form>
<div>${question}</div>
<div>   ${
answer === null ? "" : answer === correct ? "💚" : "❌"
}</div>
</div>`
);
root.value = answer;
if (!initial) {
root.dispatchEvent(new CustomEvent("input"));
onChange(answer);
}
}
setAnswer(null, true);
return root;
}
morph = require("https://bundle.run/nanomorph@5.4.2")
MathJax = require("https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_CHTML")
.catch(() => window.MathJax)
.then(MathJax => {
MathJax.Hub.Config({
CommonHTML: { scale: 110 }, // scaling to get the same size as katex (but katex still has more spacing between lines...)
tex2jax: { inlineMath: [["$", "$"], ["\\(", "\\)"]] },
displayMath: [["$$", "$$"], ["\\[", "\\]"]],
processEscapes: true,
TeX: { extensions: ["autoload-all.js"] },
});
return new Promise(resolve =>
MathJax.Hub.Register.StartupHook("End", () => resolve(MathJax))
);
})
UZH IKMZ | Fretwurst | Statistik Aufbau | Sitzung 13 |