lm-mario1

R
lm
predict
num
Published

May 17, 2023

Aufgabe

Sagen Sie den Verkaufspreis vorher für ein Spiel mit 2 Lenkrädern!

Hinweise:

  • Entfernen Sie Spiele mit einem Verkaufspreis von über 100 Euro aus dem Datensatz.











Lösung

Setup

mariokart <- read.csv("https://vincentarelbundock.github.io/Rdatasets/csv/openintro/mariokart.csv")

library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.3     ✔ readr     2.1.4
✔ forcats   1.0.0     ✔ stringr   1.5.0
✔ ggplot2   3.4.4     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.0
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(easystats)
# Attaching packages: easystats 0.6.0 (red = needs update)
✔ bayestestR  0.13.1   ✔ correlation 0.8.4 
✔ datawizard  0.9.0    ✔ effectsize  0.8.6 
✔ insight     0.19.6   ✔ modelbased  0.8.6 
✔ performance 0.10.8   ✔ parameters  0.21.3
✔ report      0.5.7    ✖ see         0.8.0 

Restart the R-Session and update packages in red with `easystats::easystats_update()`.

Bild der Daten

library(ggpubr)  # einmalig vorab installieren, nicht vergessen

Attaching package: 'ggpubr'
The following objects are masked from 'package:datawizard':

    mean_sd, median_mad
ggscatter(mariokart, x = "wheels", y = "total_pr")  # aus ggpubr

Oder mit DataExplorer visualisieren:

library(DataExplorer)

plot_scatterplot(mariokart, by = "total_pr")  # "by" ist Y-Achse

Extremwerte entfernen

mariokart2 <- 
  mariokart %>% 
  filter(total_pr < 100)  # alle Spiele teuerer als 100€ entfernen

ggscatter(mariokart2, x = "wheels", y = "total_pr")

Regressionsgerade eintragen in das Diagramm

ggscatter(mariokart2, 
          x = "wheels", 
          y = "total_pr",
          add = "reg.line")  # Dieser Schalter malt die Regr.gerade in das Diagramm

Regressionsgerade berechnen

lm_mariokart <- lm(total_pr ~ wheels, data = mariokart2)
lm_mariokart

Call:
lm(formula = total_pr ~ wheels, data = mariokart2)

Coefficients:
(Intercept)       wheels  
     37.502        8.643  

“lm” wie llineares Modell, also eine Gerade.

Vorhersagen

Vorhersagen funktionieren mit dem Befehl predict.

neues_spiel <-
  data.frame(
    wheels = 2
  )

neues_spiel
  wheels
1      2
predict(lm_mariokart, neues_spiel)  # predicte mir den Verkaufspreis
       1 
54.78743 

Categories:

  • R
  • lm
  • predict
  • num