Call:
lm(formula = mpg_log ~ hp, data = mtcars)
Residuals:
Min 1Q Median 3Q Max
-0.41577 -0.06583 -0.01737 0.09827 0.39621
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.4604669 0.0785838 44.035 < 2e-16 ***
hp -0.0034287 0.0004867 -7.045 7.85e-08 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.1858 on 30 degrees of freedom
Multiple R-squared: 0.6233, Adjusted R-squared: 0.6107
F-statistic: 49.63 on 1 and 30 DF, p-value: 7.853e-08
Visualisieren wir die Vorhersagen des Modells:
mtcars <- mtcars %>%mutate(pred =predict(lm1))
mtcars %>%ggplot() +aes(x = hp) +geom_line(aes( y = pred), color ="blue") +geom_point(aes(y = mpg_log)) +labs(y ="log(mpg)",title ="Vorhersage von log-mpg in einem Log-Y-Modell")
Möchte man auf der Y-Achse mpg und nicht log(mpg) anzeigen, muss man den Logarithmus wieder “auflösen”, das erreicht man mit der Umkehrfunktion des Logarithmus, das Exponentieren (man “delogarithmiert”):
\[\begin{aligned}
log(y) &= x \qquad | \text{Y in Log-Form}\\
exp(log(y)) &= exp(x) \qquad | \text{Jetzt exponenzieren wir beide Seiten}\\
y = exp(x)
\end{aligned}\]
Dabei gilt \(exp(x) = e^x\), mit \(e\) als Eulersche Zahl (2.71…).
mtcars %>%ggplot() +aes(x = hp) +geom_line(aes( y = pred_delog), color ="blue") +geom_point(aes(y = mpg_log)) +labs(y ="mpg",title ="Vorhersage von mpg in einem Log-Y-Modell")
Categories:
lm
vis
qm2
regression
string
Source Code
---extype: stringexsolution: NAexname: nichtlineare-regr1expoints: 1categories:- lm- vis- qm2- regression- string- mtcarsdate: '2023-05-08'slug: nichtlineare-regr1title: nichtlineare-regr1---```{r global-knitr-options, include=FALSE}knitr::opts_chunk$set(fig.pos = 'H', fig.asp = 0.618, fig.width = 4, fig.cap = "", fig.path = "", cache = TRUE)```# Aufgabe```{r libs, include = FALSE}library(tidyverse)```Wir suchen ein Modell, das einen *nichtlinearen* Zusammenhang von PS-Zahl und Spritverbrauch darstellt (Datensatz `mtcars`).Geben Sie dafür ein mögliches Modell an! Nutzen Sie den R-Befehl `lm`. </br></br></br></br></br></br></br></br></br></br># Lösung```{r}mtcars <- mtcars %>%mutate(mpg_log =log(mpg)) lm1 <-lm(mpg_log ~ hp, data = mtcars)summary(lm1)```Visualisieren wir die Vorhersagen des Modells:```{r}mtcars <- mtcars %>%mutate(pred =predict(lm1))``````{r}mtcars %>%ggplot() +aes(x = hp) +geom_line(aes( y = pred), color ="blue") +geom_point(aes(y = mpg_log)) +labs(y ="log(mpg)",title ="Vorhersage von log-mpg in einem Log-Y-Modell")```Oder so visualisieren:```{r}library(easystats)estimate_expectation(lm1) %>%plot()```Möchte man auf der Y-Achse *mpg* und nicht log(mpg) anzeigen, muss man den Logarithmus wieder "auflösen", das erreicht man mit der Umkehrfunktion des Logarithmus, das Exponentieren (man "delogarithmiert"):$$\begin{aligned}log(y) &= x \qquad | \text{Y in Log-Form}\\ exp(log(y)) &= exp(x) \qquad | \text{Jetzt exponenzieren wir beide Seiten}\\ y = exp(x)\end{aligned}$$Dabei gilt $exp(x) = e^x$, mit $e$ als Eulersche Zahl (2.71...).```{r}mtcars <- mtcars %>%mutate(pred_delog =exp(pred)) # delogarithmieren``````{r}mtcars %>%ggplot() +aes(x = hp) +geom_line(aes( y = pred_delog), color ="blue") +geom_point(aes(y = mpg_log)) +labs(y ="mpg",title ="Vorhersage von mpg in einem Log-Y-Modell")```---Categories: - lm- vis- qm2- regression- string