Show the code
# Datenbereinigung
library(tidyverse)
library(janitor)
<- readr::read_rds(here::here("data", "processed", "survey_with_labels.rds")) survey_raw
# Datenbereinigung
library(tidyverse)
library(janitor)
<- readr::read_rds(here::here("data", "processed", "survey_with_labels.rds")) survey_raw
<- survey_raw %>%
survey mutate(
# G1Q06_SQ001 = ehrenamtlich engagiert fix missings
G1Q06_SQ001 = case_when(is.na(G1Q06_SQ001) & G1Q04 == "Keine" ~ "Ja",
TRUE ~ as.character(G1Q06_SQ001)
),# G1Q06_SQ002 = hauptamtlich engagiert fix missings
G1Q06_SQ002 = case_when(is.na(G1Q06_SQ002) & G1Q04 == "Keine" ~ "Nicht gewählt",
TRUE ~ as.character(G1Q06_SQ002)
),G1Q06_SQ001 = as_factor(G1Q06_SQ001),
G1Q06_SQ002 = as_factor(G1Q06_SQ002),
# generate one variable that combines the multiple choice information about the role of the respondent
role_respondent = case_when(
# decision: Teilnehmende die beide Rollen angegeben haben werden zu hauptamtlich gezählt (es sind nur 6 und eine binary Variable ist besser geeignet für Gruppenvergleiche)
== "Ja" & G1Q06_SQ002 == "Ja" ~ "ehrenamtlich",
G1Q06_SQ001 == "Ja" ~ "ehrenamtlich",
G1Q06_SQ001 == "Ja" ~ "hauptamlich",
G1Q06_SQ002 # decision: Teilnehmende die keine der Kategorien angegeben haben werden zu NA anstatt eine vierte Kategorie "keine" einzuführen, da das wahrcheinlich nicht von Interesse ist.
== "Nicht gewählt" & G1Q06_SQ002 == "Nicht gewählt" ~ NA_character_,
G1Q06_SQ001 is.na(G1Q06_SQ001) & is.na(G1Q06_SQ002) ~ NA_character_,
TRUE ~ "error")
)
Wir sind daran interessiert zu wissen, ob die Teilnehmenden selbst ehrenamtlich, hauptamtlich oder in beiden Positionen arbeiten. Diese Information findet sich in der Frage G1Q06
: “Welche Rolle(n) haben sie in der Organisation. Die Filterführung des Fragebogens hat allerdings dazu geführt, dass Personen die angegeben haben, dass in ihrer Organisation keine hauptamtlichen Mitarbeiten vorhanden, sind die G1Q06
Frage nicht bekommen haben, da schon klar ist, dass sie dann ehrenamtlich sind. Dadurch haben sie momentan Missings auf den Variablen die zur G1Q06
Frage gehören. Die logische Verbindung zwischen G1Q04
und G1Q06
wollen wir also im Nachhinein recoden.
%>% tabyl(G1Q04, G1Q06_SQ001) survey_raw
G1Q04 Ja Nicht gewählt NA_
Keine 0 0 36
< 5 10 22 0
5-10 9 16 0
11-50 2 29 0
> 50 5 21 0
<NA> 0 8 26
#TODO wurde der Filter auch für G1Q05 gesetzt? Sieht nicht so aus ()
%>% tabyl(G1Q05, G1Q06_SQ002) survey_raw
G1Q05 Ja Nicht gewählt NA_
Keine 7 0 1
< 5 9 0 5
5 - 10 10 8 15
11 - 50 26 4 10
> 50 41 8 5
<NA> 1 8 26
36 Personen haben angegeben, dass sich keine Hauptamtlichen in der Org. befinden -> die wollen wir recodieren
%>% tabyl(G1Q06_SQ001, G1Q06_SQ002) survey
G1Q06_SQ001 Ja Nicht gewählt NA_
Ja 6 56 0
Nicht gewählt 88 8 0
<NA> 0 0 26
::expect_equal(survey %>% filter(role_respondent == "error") %>% nrow(), 0) testthat
# TODO: Analyse der Missings (wie weit sind Fragebögen ausgefuellt? schmeißen wir sie alle weg?)
%>% count(role_respondent) survey
role_respondent n
1 ehrenamtlich 62
2 hauptamlich 88
3 <NA> 34
# facet wrap plot: beide Fragen haben die gleiche Skala
<- survey %>%
tmp_long select(id, G1Q05, G1Q04) %>%
pivot_longer(-id, names_to = "var", values_to = "value")
%>%
tmp_long ggplot(aes(x = value)) +
geom_bar()+
facet_wrap(~var)+
labs(caption = "G1Q04 Anzahl Hauptamtlicher\nG1Q05 Anzahl Ehrenamtlicher",
title = "Anzahl Hauptamtlicher (G1Q04) \n und Anzahl Ehrenamtlicher (G1Q05)")+
coord_flip()
<- function(data, x_var, y_var) {
create_dot_plot <- data %>%
tmp count({{ x_var }}, {{ y_var }}) %>%
drop_na({{ x_var }}, {{ y_var }})
<- which(attributes(survey)$names == enexpr(x_var))
x_var_pos <- attributes(survey)$variable.labels[x_var_pos] %>%
x_var_lab str_replace(pattern = "\\?.+$", replacement = "?")
<- which(attributes(survey)$names == enexpr(y_var))
y_var_pos <- attributes(survey)$variable.labels[y_var_pos] %>%
y_var_lab str_replace(pattern = "\\?.+$", replacement = "?")
# plot
ggplot(tmp) +
aes(x = {{ x_var }},
y = {{ y_var }},
size = n,
label = n) +
geom_point() +
labs(caption = glue::glue("{enexpr(x_var)}: {x_var_lab} \n {enexpr(y_var)}: {y_var_lab}")) +
scale_fill_viridis_c() +
theme_minimal()
}
create_dot_plot(survey, G1Q04, G1Q05)
Gibt es signifikante Zusammenhänge zwischen - G1Q04 Anzahl Hauptamtlicher - G1Q05 Anzahl Ehrenamtlicher - G5Q04 Bereich (Sport/ Bidung etc) Und allen anderen Fragen.
<- survey_raw %>%
tmp count(G1Q05, G1Q04) %>%
drop_na(G1Q05, G1Q04)
ggplot(tmp) +
aes(x = G1Q05, y = G1Q04, fill = n) +
geom_tile(size = 1.2) +
labs(y = "Anzahl Hauptamtlicher", x = "Anzahl Ehrenamtlicher") +
scale_fill_viridis_c()+
theme_minimal()
ggplot(tmp) +
aes(x = G1Q05, y = G1Q04, size = n) +
geom_point() +
labs(y = "Anzahl Hauptamtlicher", x = "Anzahl Ehrenamtlicher") +
scale_fill_viridis_c()+
theme_minimal()
<- survey_raw %>%
p count(G4Q02, G1Q04) %>%
drop_na() %>%
ggplot() +
aes(x = G4Q02, y = G1Q04, size = n) +
geom_point() +
labs(y = "Anzahl Hauptamtlicher", x = "Nutzung") +
coord_flip()+
theme_light()
p
%>%
survey_raw select(G4Q02, G1Q04) %>%
drop_na() %>%
::tabyl(G4Q02, G1Q04) %>%
janitor::adorn_totals() %>%
janitor::adorn_percentages() %>%
janitor::adorn_pct_formatting() janitor
G4Q02 Keine < 5 5-10 11-50
nutzen wir in unserer Organisation aktuell 40.5% 21.4% 11.9% 11.9%
haben wir mal genutzt oder ausprobiert 25.0% 18.8% 18.8% 31.2%
nutzen wir nicht in unserer Organisation 15.8% 28.9% 21.1% 18.4%
ich weiß nicht ob wir sie nutzen oder genutzt haben 6.2% 18.8% 6.2% 37.5%
ich kenne den Begriff nicht 0.0% 33.3% 33.3% 33.3%
Total 24.3% 23.5% 15.7% 20.9%
> 50
14.3%
6.2%
15.8%
31.2%
0.0%
15.7%
Erklärungsansaetze für Ergebnisse: - Sampling Bias in der Umfrage -
%>%
survey_raw count(G4Q02) %>%
drop_na() %>%
ggplot(aes(x = G4Q02, y = n))+
geom_col()+
coord_flip()
%>%
survey_raw count(G4Q02, G1Q05) %>%
drop_na() %>%
ggplot() +
aes(x = G4Q02, y = G1Q05, size = n) +
geom_point() +
labs(y = "Anzahl Ehrenamtlicher", x = "Nutzung") +
coord_flip()+
theme_minimal()
%>%
survey_raw select(G4Q02, G1Q05) %>%
drop_na() %>%
::tabyl(G4Q02, G1Q05) %>%
janitor::adorn_totals() %>%
janitor::adorn_percentages(denominator = "col") %>%
janitor::adorn_pct_formatting() janitor
G4Q02 Keine < 5 5 - 10
nutzen wir in unserer Organisation aktuell 33.3% 45.5% 37.0%
haben wir mal genutzt oder ausprobiert 0.0% 0.0% 11.1%
nutzen wir nicht in unserer Organisation 50.0% 36.4% 44.4%
ich weiß nicht ob wir sie nutzen oder genutzt haben 16.7% 18.2% 7.4%
ich kenne den Begriff nicht 0.0% 0.0% 0.0%
Total 100.0% 100.0% 100.0%
11 - 50 > 50
40.7% 30.2%
22.2% 16.3%
25.9% 27.9%
7.4% 20.9%
3.7% 4.7%
100.0% 100.0%
Chi-Square Test, um zu sehen, ob zw. den zwei kategorialen Variablen ein signifikanter Zusammenhang besteht:
chisq.test(survey$G4Q02, survey$G1Q05)
Warning in stats::chisq.test(x, y, ...): Chi-squared approximation may be
incorrect
Pearson's Chi-squared test
data: survey$G4Q02 and survey$G1Q05
X-squared = 12.462, df = 16, p-value = 0.7116
Werden Cluster sichtbar?
G2Q02 Wer kümmert sich um eure digitale Infrastruktur G1Q04 Wie viele hauptamtlich Mitarbeitende hat deine Organisation? In Korrelation zu Bisherige Erfahrung mit Open Source (G4Q02) oder der Wichtigkeit bestimmter Eigenschaften des Tools (G03Q03 und G03Q03b)