Daten laden

# RData-Datei laden
setwd("C:/Users/schil/Documents/daten")
load("BTGDEUI3.Rdata")
ls()  # Objektname prüfen
## [1] "BTGDEUI3"
data <- BTGDEUI3

ICT-bezogene Lehrerfortbildung (IT3G08 A–H)

# Umkodieren
data <- data %>%
  mutate(across(starts_with("IT3G08"),
                ~ case_when(
                    . == 1 ~ 1L,               # Ja -> 1
                    . == 2 ~ 0L,               # Nein -> 0
                    . == 3 ~ NA_integer_,      # Weiß ich nicht -> NA
                    TRUE   ~ NA_integer_       # andere Werte -> NA
                  ),
                .names = "bin_{.col}"))


# Kontrolle der Rohwerte nach Umkodierung
data %>%
  select(starts_with("bin_IT3G08")) %>%
  summary()
##   bin_IT3G08A      bin_IT3G08B      bin_IT3G08C     bin_IT3G08D    
##  Min.   :0.0000   Min.   :0.0000   Min.   :0.000   Min.   :0.0000  
##  1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.000   1st Qu.:0.0000  
##  Median :0.0000   Median :0.0000   Median :0.000   Median :0.0000  
##  Mean   :0.3843   Mean   :0.3729   Mean   :0.381   Mean   :0.2819  
##  3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:1.000   3rd Qu.:1.0000  
##  Max.   :1.0000   Max.   :1.0000   Max.   :1.000   Max.   :1.0000  
##  NA's   :168      NA's   :232      NA's   :234     NA's   :202     
##   bin_IT3G08E      bin_IT3G08F      bin_IT3G08G      bin_IT3G08H    
##  Min.   :0.0000   Min.   :0.0000   Min.   :0.0000   Min.   :0.0000  
##  1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.0000  
##  Median :0.0000   Median :0.0000   Median :0.0000   Median :0.0000  
##  Mean   :0.1656   Mean   :0.2134   Mean   :0.2517   Mean   :0.2045  
##  3rd Qu.:0.0000   3rd Qu.:0.0000   3rd Qu.:1.0000   3rd Qu.:0.0000  
##  Max.   :1.0000   Max.   :1.0000   Max.   :1.0000   Max.   :1.0000  
##  NA's   :225      NA's   :240      NA's   :216      NA's   :263
# Fortbildungsindex: Anzahl verschiedener besuchter ICT-Fortbildungen
data <- data %>%
  mutate(ict_training_count = rowSums(select(., starts_with("bin_IT3G08")), na.rm = TRUE))

# Verteilung anzeigen
ggplot(data, aes(x = ict_training_count)) +
  geom_bar() +
  labs(title = "Anzahl besuchter ICT-Fortbildungen",
       x = "Fortbildungsarten (Anzahl)", 
       y = "Anzahl Lehrkräfte") +
  theme_minimal()

ICT-Nutzung im Unterricht (IT3G16 A–X)

# Nur die relevanten Variablen auswählen
ict_vars <- data %>% 
  select(starts_with("IT3G16"))

# Cronbach's Alpha berechnen
alpha_result <- psych::alpha(ict_vars)
alpha_result$total$raw_alpha
## [1] 0.9095189
# Nur wenn Alpha akzeptabel (> 0.7): Index berechnen
data <- data %>%
  mutate(ict_use_index = rowMeans(ict_vars, na.rm = TRUE))

# Verteilung anzeigen
ggplot(data, aes(x = ict_use_index)) +
  geom_histogram(bins = 20, fill = "darkgreen") +
  labs(title = "ICT-Nutzung im Unterricht", x = "Nutzungsindex", y = "Häufigkeit") +
  theme_minimal()

Zusammenhang zwischen Fortbildung und ICT-Nutzung

ggplot(data, aes(x = ict_training_count, y = ict_use_index)) +
  geom_jitter(width = 0.3, height = 0.1, alpha = 0.3) +
  geom_smooth(method = "lm", color = "blue") +
  labs(title = "Zusammenhang zwischen ICT-Fortbildung und ICT-Nutzung",
       x = "Anzahl besuchter verschiedener ICT-Fortbildungen",
       y = "Index: ICT-Nutzung im Unterricht") +
  theme_minimal()

Korrelation und lineare Regression

cor.test(data$ict_training_count, data$ict_use_index)
## 
##  Pearson's product-moment correlation
## 
## data:  data$ict_training_count and data$ict_use_index
## t = 3.3205, df = 2300, p-value = 0.0009126
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.02829752 0.10961676
## sample estimates:
##        cor 
## 0.06907188
model <- lm(ict_use_index ~ ict_training_count, data = data)
summary(model)
## 
## Call:
## lm(formula = ict_use_index ~ ict_training_count, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.3127 -0.4395 -0.1562  0.1765  4.7126 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        2.787371   0.023727 117.475  < 2e-16 ***
## ict_training_count 0.025352   0.007635   3.321 0.000913 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8585 on 2300 degrees of freedom
## Multiple R-squared:  0.004771,   Adjusted R-squared:  0.004338 
## F-statistic: 11.03 on 1 and 2300 DF,  p-value: 0.0009126

Fächerbezug: Unterschiede in der ICT-Nutzung nach Unterrichtsfach

fach_labels <- c(
  "1" = "Deutsch",
  "2" = "Fremdsprache",
  "3" = "Mathematik",
  "4" = "Naturwissenschaften",
  "5" = "Sozialkunde",
  "6" = "Kunst/Musik",
  "7" = "Informatik",
  "8" = "Berufsvorbereitung",
  "9" = "Andere"
)

data <- data %>%
  mutate(fach = as.factor(IT3G15),
         fach = fct_recode(fach, !!!fach_labels))

# Boxplot: ICT-Nutzung pro Fach
ggplot(data, aes(x = fach, y = ict_use_index)) +
  geom_boxplot(fill = "steelblue") +
  labs(
    title = "ICT-Nutzung im Unterricht nach Fach",
    x = "Unterrichtsfach",
    y = "Index: ICT-Nutzung"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))