class: center, middle, inverse, title-slide # Lineare Modelle III ### Statistik mit R
The R Bootcamp
### September 2020 --- layout: true <div class="my-footer"> <span style="text-align:center"> <span> <img src="https://raw.githubusercontent.com/therbootcamp/therbootcamp.github.io/master/_sessions/_image/by-sa.png" height=14 style="vertical-align: middle"/> </span> <a href="https://therbootcamp.github.io/"> <span style="padding-left:82px"> <font color="#7E7E7E"> www.therbootcamp.com </font> </span> </a> <a href="https://therbootcamp.github.io/"> <font color="#7E7E7E"> Statistik mit R | September 2020 </font> </a> </span> </div> --- # Generalisiertes lineares Modell .pull-left4[ <ul> <li class="m1"><span>Das generalisierte lineare Modell ist <high>das eigentliche schweizer Taschenmesser</high> der Statistik.</span></li> <li class="m2"><span>Ermöglicht gegenüber dem allgemeinen Linearen Modell <high>verschiedene Datenmodelle und Link-Funktionen</high></span></li> </ul> ] .pull-right5[ <p align="center"> <img src="image/swiss.jpg"> </p> ] --- .pull-left4[ # Link-Funktionen <ul> <li class="m1"><span>Link-Funktionen sind <high>Transformationen des Kriteriums</high>.</span></li> <li class="m2"><span>Gehen i.d.R. Hand in Hand mit <high>alternativen Datenmodellen</high>.</span></li> </ul> <br> `$$\Large \rho(\mu)=\textbf{X}\boldsymbol{\beta}$$` ] .pull-right5[ <br><br> <p align="center"><u>Identität - Normal</u></p> `$$\Large \rho(\mu)=\mu, \;\;\;\ y \sim \mathcal{N}(\mu,\,\sigma)$$` <p align="center" style="padding-top:30px"><u>Logit - Binomial</u></p> `$$\Large \rho(\mu)=log \Big(\frac{\mu}{1-\mu}\Big), \;\;\;\ y \sim B(\mu)$$` <p align="center" style="padding-top:30px"><u>Log - Negative binomial</u></p> $$\Large \rho(\mu)=log (\mu), \;\;\;\ y \sim NB(\mu) $$ <p align="center" style="padding-top:30px"><u>Log - Poisson</u></p> `$$\Large \rho(\mu)=log (\mu), \;\;\;\ y\sim Pois(\mu)$$` ] --- # Logistische Regression .pull-left4[ <ul> <li class="m1"><span>Dient der Vorhersage von <high>dichotomen Variablen</high>, d.h., Ja/Nein, 1/0, etc.</span></li> <li class="m2"><span>Basiert auf einem <high>logit-link mit Binomialem Datenmodell</high>.</span></li> </ul> <br> `$$\Large \hat{y} = p(y = 1) = \frac{1}{1 + e^{-b_0+b_1*x}}$$` ] .pull-right5[ <img src="LinearModelsIII_files/figure-html/unnamed-chunk-2-1.png" style="display: block; margin: auto;" /> ] --- # Maximum Likelihood .pull-left4[ <ul> <li class="m1"><span>Maximum Likelihood ist neben Kleinste-Quadrate (OLS) die <high>wichtigste "Loss"-function der Statistik</high>.</span></li> <li class="m2"><span><high>Koinzidiert mit OLS</high> für nicht-generalisierte Modelle.</span></li> </ul> <br> `$$\large \mathbf{b} = \underset{\mathbf{b}}{\operatorname{argmax}} L\big(y_i|{\mathbf{b}}\big)$$` <p align="center" style="padding-bottom:5px;margin-top:0px;padding-top:20px"><u>Binomialmodell</u></p> `$$\large L(y_i|\mathbf{b}) = \binom{n}{k} p_{y_i=1}^k(1-p_{y_i=1})^{n-k}$$` ] .pull-right5[ <img src="LinearModelsIII_files/figure-html/unnamed-chunk-3-1.png" style="display: block; margin: auto;" /> ] --- # `glm()` .pull-left4[ <ul> <li class="m1"><span><high>Generalisierte lineare Modelle</high> können mit <mono>glm()</mono> spezifiziert werden.</high></span></li> <li class="m2"><span>Argument <mono>family</mono> bestimmt <high>Link und Datenmodell</high>.</span></li> </ul> ] .pull-right5[ <p align="center"> <img src="image/glm.png"> </p> ] --- # `glm()` .pull-left35[ <ul> <li class="m1"><span><high>Generalisierte lineare Modelle</high> können mit <mono>glm()</mono> spezifiziert werden.</high></span></li> <li class="m2"><span>Argument <mono>family</mono> bestimmt <high>Link und Datenmodell</high>.</span></li> </ul> ] .pull-right55[ ```r # Logistische Regression mod <- glm(Europa ~ Besucher, data = tour, family = 'binomial') mod ``` ``` ## ## Call: glm(formula = Europa ~ Besucher, family = "binomial", data = tour) ## ## Coefficients: ## (Intercept) Besucher ## -0.030579 0.000221 ## ## Degrees of Freedom: 70 Total (i.e. Null); 69 Residual ## Null Deviance: 98.3 ## Residual Deviance: 96.9 AIC: 101 ``` ] --- .pull-left35[ # `glm()` <ul> <li class="m1"><span><high>Generalisierte lineare Modelle</high> können mit <mono>glm()</mono> spezifiziert werden.</high></span></li> <li class="m2"><span>Argument <mono>family</mono> bestimmt <high>Link und Datenmodell</high>.</span></li> </ul> <br> `$$\large e^{b_{x}} = OR_{x}$$` <br> `$$\large OR_x = \frac{\frac{p_{x+1}}{1-p_{x+1}}}{\frac{p_x}{1-p_x}}$$` ] .pull-right55[ <br> ```r # Logistische Regression summary(mod) ``` ``` ## ## Call: ## glm(formula = Europa ~ Besucher, family = "binomial", data = tour) ## ## Deviance Residuals: ## Min 1Q Median 3Q Max ## -1.797 -1.174 0.844 1.173 1.189 ## ## Coefficients: ## Estimate Std. Error z value Pr(>|z|) ## (Intercept) -0.030579 0.258185 -0.12 0.91 ## Besucher 0.000221 0.000217 1.02 0.31 ## ## (Dispersion parameter for binomial family taken to be 1) ## ## Null deviance: 98.300 on 70 degrees of freedom ## Residual deviance: 96.876 on 69 degrees of freedom ## AIC: 100.9 ## ## Number of Fisher Scoring iterations: 3 ``` ] --- # Poisson-Regression .pull-left4[ <ul> <li class="m1"><span>Dient der Vorhersage von <high>Häufigkeiten</high>.</span></li> <li class="m2"><span>Basiert auf einem <high>log-link mit Poisson Datenmodell</high>.</span></li> </ul> <br> `$$\Large \hat{y} = e^{-b_0+b_1*x}$$` <p align="center" style="padding-bottom:5px;margin-top:0px;padding-top:30px"><u>Poisson-Modell</u></p> `$$\Large L(y_i|b) = \prod_i \frac{\hat{y_i}^{y_i}}{y_{i}!}e^{-\hat{y}}$$` ] .pull-right5[ <img src="LinearModelsIII_files/figure-html/unnamed-chunk-7-1.png" style="display: block; margin: auto;" /> ] --- # `glm()` .pull-left35[ <ul> <li class="m1"><span><high>Generalisierte lineare Modelle</high> können mit <mono>glm()</mono> spezifiziert werden.</high></span></li> <li class="m2"><span>Argument <mono>family</mono> bestimmt <high>Link und Datenmodell</high>.</span></li> </ul> ] .pull-right55[ ```r # Poisson Regression mod <- glm(Nächte ~ Äquivalenzeinkommen, data = tour, family = 'poisson') mod ``` ``` ## ## Call: glm(formula = Nächte ~ Äquivalenzeinkommen, family = "poisson", ## data = tour) ## ## Coefficients: ## (Intercept) Äquivalenzeinkommen ## 6.02e+00 7.59e-05 ## ## Degrees of Freedom: 33 Total (i.e. Null); 32 Residual ## Null Deviance: 117000 ## Residual Deviance: 104000 AIC: 104000 ``` ] --- .pull-left35[ # `glm()` <ul> <li class="m1"><span><high>Generalisierte lineare Modelle</high> können mit <mono>glm()</mono> spezifiziert werden.</high></span></li> <li class="m2"><span>Argument <mono>family</mono> bestimmt <high>Link und Datenmodell</high>.</span></li> </ul> ] .pull-right55[ ```r # Poisson Regression summary(mod) ``` ``` ## ## Call: ## glm(formula = Nächte ~ Äquivalenzeinkommen, family = "poisson", ## data = tour) ## ## Deviance Residuals: ## Min 1Q Median 3Q Max ## -72.31 -38.90 -24.25 -3.29 215.85 ## ## Coefficients: ## Estimate Std. Error z value ## (Intercept) 6.02e+00 1.32e-02 454 ## Äquivalenzeinkommen 7.59e-05 6.60e-07 115 ## Pr(>|z|) ## (Intercept) <2e-16 *** ## Äquivalenzeinkommen <2e-16 *** ## --- ## Signif. codes: ## 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## (Dispersion parameter for poisson family taken to be 1) ## ## Null deviance: 117456 on 33 degrees of freedom ## Residual deviance: 103814 on 32 degrees of freedom ## AIC: 104087 ## ## Number of Fisher Scoring iterations: 6 ``` ] --- # `glm.nb()` .pull-left35[ <ul> <li class="m1"><span><high>Negativ-Binomialmodelle</high> sind eine alternative für Häufigkeitsdaten.</span></li> <li class="m2"><span>Entsprechen einer <high>Generalisierung des Poisson-Modells</high>.</span></li> </ul> ] .pull-right55[ ```r # Negativ-binomial Regression mod <- glm.nb(Nächte ~ Äquivalenzeinkommen, data = tour) mod ``` ``` ## ## Call: glm.nb(formula = Nächte ~ Äquivalenzeinkommen, data = tour, ## init.theta = 0.621467307, link = log) ## ## Coefficients: ## (Intercept) Äquivalenzeinkommen ## 4.966653 0.000135 ## ## Degrees of Freedom: 33 Total (i.e. Null); 32 Residual ## Null Deviance: 52.9 ## Residual Deviance: 41.7 AIC: 547 ``` ] --- .pull-left35[ # `glm.nb()` <ul> <li class="m1"><span><high>Negativ-Binomialmodellen</high> sind eine alternative für Häufigkeitsdaten.</span></li> <li class="m2"><span>Entsprechen einer <high>Generalisierung des Poisson-Modells</high>.</span></li> </ul> ] .pull-right55[ ```r # Negativ-binomial Regression mod <- glm.nb(Nächte ~ Äquivalenzeinkommen, data = tour) summary(mod) ``` ``` ## ## Call: ## glm.nb(formula = Nächte ~ Äquivalenzeinkommen, data = tour, ## init.theta = 0.621467307, link = log) ## ## Deviance Residuals: ## Min 1Q Median 3Q Max ## -2.0292 -1.2143 -0.5210 0.0366 2.2702 ## ## Coefficients: ## Estimate Std. Error z value ## (Intercept) 4.97e+00 5.40e-01 9.20 ## Äquivalenzeinkommen 1.35e-04 3.21e-05 4.23 ## Pr(>|z|) ## (Intercept) < 2e-16 *** ## Äquivalenzeinkommen 2.4e-05 *** ## --- ## Signif. codes: ## 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## (Dispersion parameter for Negative Binomial(0.6215) family taken to be 1) ## ## Null deviance: 52.932 on 33 degrees of freedom ## Residual deviance: 41.729 on 32 degrees of freedom ## AIC: 547.5 ## ## Number of Fisher Scoring iterations: 1 ## ## ## Theta: 0.621 ## Std. Err.: 0.127 ## ## 2 x log-likelihood: -541.464 ``` ] --- # `AIC` .pull-left4[ <ul> <li class="m1"><span>Generalisierte lineare Modelle können mit dem <high>Akaike Informationskriterium (AIC)</high> verglichen werden.</high></span></li> <li class="m2"><span>Es drückt den <high>Fit relativ zur Anzahl Parameter</high> <i>k</i> aus</high>.</span></li> </ul> `$$AIC = -2logL + 2k$$` ] .pull-right5[ ```r # Negativ-binomial Regression pois <- glm(Nächte ~ Äquivalenzeinkommen, data = tour, family = 'poisson') # Negativ-binomial Regression nb <- glm.nb(Nächte ~ Äquivalenzeinkommen, data = tour) # Vergleich pois$aic ``` ``` ## [1] 104087 ``` ```r nb$aic ``` ``` ## [1] 547.5 ``` ] --- # `AIC` .pull-left4[ <ul> <li class="m1"><span>Generalisierte lineare Modelle können mit dem <high>Akaike Informationskriterium (AIC)</high> verglichen werden.</high></span></li> <li class="m2"><span>Es drückt den <high>Fit relativ zur Anzahl Parameter</high> <i>k</i> aus</high>.</span></li> </ul> ] .pull-right5[ <p align="center"><font style="size:14px;font-weight:900;color:#EA4B68">Poisson</font> vs. <font style="size:14px;font-weight:900;color:#6ABA9A">Negative-binomial</font></p> <img src="LinearModelsIII_files/figure-html/unnamed-chunk-14-1.png" style="display: block; margin: auto;" /> ] --- class: middle, center <h1><a href="https://therbootcamp.github.io/SmR_2020Sep/_sessions/LinearModelsIII/LinearModelsIII_practical.html">Practical</a></h1>