84 Baustelle
Letzte Änderung am 22. October 2025 um 16:30:20
VorsichtStand des Kapitels: Konstruktion (seit 07.2025)
Dieses Kapitel wird in den nächsten Wochen geschrieben. Ich plane zum Beginn des WiSe 2025/26 eine neue Version des Kapitels erstellt zu haben. Während das Kapitel entsteht, funktioniert so manches dann nicht so wie es soll.
rnorm(): Erzeugt Zufallszahlen aus einer Normalverteilung.runif(): Erzeugt Zufallszahlen aus einer Gleichverteilung.rbinom(): Generiert Zufallszahlen aus einer Binomialverteilung.rpois(): Erzeugt Zufallszahlen aus einer Poisson-Verteilung.rgamma(): Generiert Zufallszahlen aus einer Gamma-Verteilung.rexp(): Erzeugt Zufallszahlen aus einer Exponentialverteilung.rt(): Generiert Zufallszahlen aus einer Student’s t-Verteilung.rchisq(): Erzeugt Zufallszahlen aus einer Chi-Quadrat-Verteilung.rbeta(): Erzeugt Zufallszahlen aus einer Beta-Verteilung.rf(): Erzeugt Zufallszahlen aus einer F-Verteilung.rlogis(): Erzeugt Zufallszahlen aus einer logistischen Verteilung.rweibull(): Erzeugt Zufallszahlen aus einer Weibull-Verteilung.
84.1 Genutzte R Pakete
Wir wollen folgende R Pakete in diesem Kapitel nutzen.
R Code [zeigen / verbergen]
pacman::p_load(tidyverse, gtsummary, marginaleffects, emmeans, scales,
ggpmisc, readxl, conflicted)
conflicts_prefer(dplyr::mutate)
conflicts_prefer(dplyr::summarize)
conflicts_prefer(dplyr::filter)
conflicts_prefer(ggplot2::annotate)
cb_pal <- c("#000000", "#E69F00", "#56B4E9",
"#009E73", "#F0E442", "#F5C710",
"#0072B2", "#D55E00", "#CC79A7")
##
nice_number <- label_number(style_negative = "minus", accuracy = 0.01)
nice_p <- label_pvalue(prefix = c("p < ", "p = ", "p > "))
find_intercept <- function(x1, y1, slope) {
intercept <- slope * (-x1) + y1
return(intercept)
}An der Seite des Kapitels findest du den Link Quellcode anzeigen, über den du Zugang zum gesamten R-Code dieses Kapitels erhältst.
84.2 Daten
R Code [zeigen / verbergen]
flea_model_tbl <- read_excel("data/fleas_model_data.xlsx") |>
mutate(feeding = as_factor(feeding),
stage = as_factor(stage),
bonitur = as.numeric(bonitur),
infected = factor(infected, labels = c("healthy", "infected"))) |>
select(feeding, stage, jump_length, weight, hatched, count_leg, bonitur, infected)84.3 Prädiktion
R Code [zeigen / verbergen]
simple_2_tbl <- flea_model_tbl |>
filter(stage == "adult")
simple_2_fit <- lm(jump_length ~ weight*feeding, simple_2_tbl)
coef(simple_2_fit) (Intercept) weight feedingblood
43.21968178 2.11178610 29.67377681
feedingketchup weight:feedingblood weight:feedingketchup
43.24721935 -0.03097599 -1.65129790
R Code [zeigen / verbergen]
simple_2_fit |> broom::augment()# A tibble: 24 × 9
jump_length weight feeding .fitted .resid .hat .sigma .cooksd .std.resid
<dbl> <dbl> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 77.2 16.4 sugar_wat… 77.9 -0.695 0.128 25.0 2.30e-5 -0.0306
2 56.2 12.6 sugar_wat… 69.9 -13.6 0.350 24.7 4.34e-2 -0.695
3 73.4 15.6 sugar_wat… 76.1 -2.68 0.147 25.0 4.11e-4 -0.119
4 85.2 24.4 sugar_wat… 94.7 -9.56 0.797 24.5 5.01e-1 -0.874
5 79.3 16.4 sugar_wat… 78.0 1.32 0.128 25.0 8.28e-5 0.0582
6 77.3 14.8 sugar_wat… 74.5 2.87 0.180 25.0 6.21e-4 0.130
7 90.2 17.0 sugar_wat… 79.2 11.0 0.125 24.8 5.57e-3 0.484
8 93.0 18.2 sugar_wat… 81.6 11.4 0.144 24.8 7.19e-3 0.506
9 150. 11.1 blood 96.1 54.3 0.139 20.6 1.56e-1 2.41
10 94.4 9.77 blood 93.2 1.15 0.169 25.0 9.08e-5 0.0518
# ℹ 14 more rows
R Code [zeigen / verbergen]
predictions(simple_2_fit)
Estimate Std. Error z Pr(>|z|) S 2.5 % 97.5 %
77.9 8.70 8.96 <0.001 61.4 60.8 94.9
69.9 14.37 4.86 <0.001 19.7 41.7 98.0
76.1 9.33 8.16 <0.001 51.4 57.8 94.4
94.7 21.70 4.37 <0.001 16.3 52.2 137.2
78.0 8.69 8.98 <0.001 61.6 60.9 95.0
74.5 10.31 7.23 <0.001 40.9 54.3 94.7
79.2 8.59 9.21 <0.001 64.8 62.3 96.0
81.6 9.22 8.85 <0.001 60.0 63.6 99.7
96.1 9.06 10.61 <0.001 84.9 78.3 113.8
93.2 9.98 9.34 <0.001 66.5 73.7 112.8
99.4 8.59 11.56 <0.001 100.3 82.5 116.2
126.4 22.64 5.58 <0.001 25.3 82.1 170.8
98.2 8.67 11.33 <0.001 96.5 81.3 115.2
86.3 13.58 6.35 <0.001 32.2 59.7 112.9
101.0 8.65 11.68 <0.001 102.3 84.1 118.0
97.1 8.84 10.99 <0.001 90.9 79.8 114.4
90.1 12.68 7.11 <0.001 39.6 65.2 114.9
90.8 10.59 8.57 <0.001 56.4 70.0 111.5
96.3 20.50 4.70 <0.001 18.5 56.1 136.4
92.7 8.91 10.40 <0.001 81.8 75.2 110.1
93.0 9.34 9.95 <0.001 75.1 74.7 111.3
92.6 8.81 10.51 <0.001 83.5 75.3 109.8
91.9 8.70 10.56 <0.001 84.2 74.8 108.9
90.0 12.95 6.95 <0.001 38.0 64.6 115.4
Type: response
R Code [zeigen / verbergen]
predictions(simple_2_fit, by = "feeding")
feeding Estimate Std. Error z Pr(>|z|) S 2.5 % 97.5 %
sugar_water 79.0 8.59 9.19 <0.001 64.5 62.1 95.8
blood 99.7 8.59 11.61 <0.001 101.1 82.9 116.5
ketchup 92.1 8.59 10.73 <0.001 86.8 75.3 109.0
Type: response
R Code [zeigen / verbergen]
tibble(weight = simple_2_tbl$weight,
jump_length = simple_2_tbl$jump_length,
feeding = simple_2_tbl$feeding,
estimate = predictions(simple_2_fit)$estimate) |>
ggplot(aes(weight, estimate, shape = feeding)) +
geom_point(aes(weight, jump_length), color = "blue") +
geom_point(color = "red") +
geom_line(aes(y = predict(simple_2_fit))) +
geom_hline(yintercept = avg_predictions(simple_2_fit, by = "feeding")$estimate)84.4 Weitere R Pakete
84.5 Analyse von Zeitreihen
Hier nochmal {mgcv} und {gamm4}
Introduction to Generalized Additive Mixed Models
s() und Interaktion mit s(x_1, by = f_1)
84.6 Links
- Mixed
- Mixed II
- Marginal and conditional effects for GLMMs with {marginaleffects} | Andrew Heiss – Andrew Heiss
- R Paket
{gapminder} - Gapminder
- Lists are my secret weapon for reporting stats with knitr - Higher Order Functions
- Visualizing {dplyr}’s mutate(), summarize(), group_by(), and ungroup() with animations | Andrew Heiss – Andrew Heiss




