transfer analysis from github repo
This commit is contained in:
parent
2a15d62dbe
commit
72c11ff25d
10 changed files with 1269 additions and 75 deletions
237
00-exploration.qmd
Normal file
237
00-exploration.qmd
Normal file
|
|
@ -0,0 +1,237 @@
|
|||
---
|
||||
title: "Local-IT Bedarfsanalyse"
|
||||
format:
|
||||
html:
|
||||
code-fold: true
|
||||
code-summary: "Show the code"
|
||||
---
|
||||
# Analyse
|
||||
<details>
|
||||
<summary>Datenbereinigung</summary>
|
||||
```{r import data, message=FALSE}
|
||||
# Datenbereinigung
|
||||
library(tidyverse)
|
||||
library(janitor)
|
||||
survey_raw <- readr::read_rds(here::here("data", "processed", "survey_with_labels.rds"))
|
||||
```
|
||||
|
||||
```{r wrangle data}
|
||||
survey <- survey_raw %>%
|
||||
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)
|
||||
G1Q06_SQ001 == "Ja" & G1Q06_SQ002 == "Ja" ~ "ehrenamtlich",
|
||||
G1Q06_SQ001 == "Ja" ~ "ehrenamtlich",
|
||||
G1Q06_SQ002 == "Ja" ~ "hauptamlich",
|
||||
# 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.
|
||||
G1Q06_SQ001 == "Nicht gewählt" & G1Q06_SQ002 == "Nicht gewählt" ~ NA_character_,
|
||||
is.na(G1Q06_SQ001) & is.na(G1Q06_SQ002) ~ NA_character_,
|
||||
TRUE ~ "error")
|
||||
)
|
||||
```
|
||||
|
||||
|
||||
## G1Q06_SQ001 filter
|
||||
|
||||
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.
|
||||
|
||||
```{r explore G1Q06_SQ001 filter, inlcude = FALSE}
|
||||
survey_raw %>% tabyl(G1Q04, G1Q06_SQ001)
|
||||
#TODO wurde der Filter auch für G1Q05 gesetzt? Sieht nicht so aus ()
|
||||
survey_raw %>% tabyl(G1Q05, G1Q06_SQ002)
|
||||
```
|
||||
|
||||
36 Personen haben angegeben, dass sich keine Hauptamtlichen in der Org. befinden -> die wollen wir recodieren
|
||||
|
||||
```{r}
|
||||
survey %>% tabyl(G1Q06_SQ001, G1Q06_SQ002)
|
||||
```
|
||||
|
||||
```{r}
|
||||
testthat::expect_equal(survey %>% filter(role_respondent == "error") %>% nrow(), 0)
|
||||
```
|
||||
</details>
|
||||
|
||||
# Stichprobe
|
||||
```{r}
|
||||
# TODO: Analyse der Missings (wie weit sind Fragebögen ausgefuellt? schmeißen wir sie alle weg?)
|
||||
```
|
||||
|
||||
## Rolle der befragten Personen
|
||||
```{r}
|
||||
survey %>% count(role_respondent)
|
||||
```
|
||||
|
||||
|
||||
## Anzahl Hauptamtlicher und Ehrenamtlicher
|
||||
```{r}
|
||||
# facet wrap plot: beide Fragen haben die gleiche Skala
|
||||
tmp_long <- survey %>%
|
||||
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()
|
||||
```
|
||||
|
||||
|
||||
```{r}
|
||||
create_dot_plot <- function(data, x_var, y_var) {
|
||||
tmp <- data %>%
|
||||
count({{ x_var }}, {{ y_var }}) %>%
|
||||
drop_na({{ x_var }}, {{ y_var }})
|
||||
|
||||
x_var_pos <- which(attributes(survey)$names == enexpr(x_var))
|
||||
x_var_lab <- attributes(survey)$variable.labels[x_var_pos] %>%
|
||||
str_replace(pattern = "\\?.+$", replacement = "?")
|
||||
|
||||
y_var_pos <- which(attributes(survey)$names == enexpr(y_var))
|
||||
y_var_lab <- attributes(survey)$variable.labels[y_var_pos] %>%
|
||||
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)
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
# Hypothesen
|
||||
|
||||
1. Grundsätzlich
|
||||
|
||||
Gibt es signifikante Zusammenhänge zwischen
|
||||
- G1Q04 Anzahl Hauptamtlicher
|
||||
- G1Q05 Anzahl Ehrenamtlicher
|
||||
- G5Q04 Bereich (Sport/ Bidung etc)
|
||||
Und allen anderen Fragen.
|
||||
|
||||
|
||||
```{r}
|
||||
tmp <- survey_raw %>%
|
||||
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()
|
||||
```
|
||||
|
||||
```{r}
|
||||
ggplot(tmp) +
|
||||
aes(x = G1Q05, y = G1Q04, size = n) +
|
||||
geom_point() +
|
||||
labs(y = "Anzahl Hauptamtlicher", x = "Anzahl Ehrenamtlicher") +
|
||||
scale_fill_viridis_c()+
|
||||
theme_minimal()
|
||||
|
||||
|
||||
p <- survey_raw %>%
|
||||
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
|
||||
```
|
||||
|
||||
|
||||
```{r}
|
||||
survey_raw %>%
|
||||
select(G4Q02, G1Q04) %>%
|
||||
drop_na() %>%
|
||||
janitor::tabyl(G4Q02, G1Q04) %>%
|
||||
janitor::adorn_totals() %>%
|
||||
janitor::adorn_percentages() %>%
|
||||
janitor::adorn_pct_formatting()
|
||||
```
|
||||
|
||||
|
||||
Erklärungsansaetze für Ergebnisse:
|
||||
- Sampling Bias in der Umfrage
|
||||
-
|
||||
|
||||
## Anzahl ehrenamtliche
|
||||
```{r}
|
||||
|
||||
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() %>%
|
||||
janitor::tabyl(G4Q02, G1Q05) %>%
|
||||
janitor::adorn_totals() %>%
|
||||
janitor::adorn_percentages(denominator = "col") %>%
|
||||
janitor::adorn_pct_formatting()
|
||||
```
|
||||
|
||||
Chi-Square Test, um zu sehen, ob zw. den zwei kategorialen Variablen ein signifikanter Zusammenhang besteht:
|
||||
|
||||
```{r}
|
||||
chisq.test(survey$G4Q02, survey$G1Q05)
|
||||
```
|
||||
|
||||
Werden Cluster sichtbar?
|
||||
|
||||
|
||||
|
||||
2. Für welche Organisationen ist SKA interessant?
|
||||
Hypothesen:
|
||||
1. Große Organisationen mit vielen Hauptamtlichen und eigenen IT Abteilungen haben kein Interessen an Open Source Lösungen sondern entscheiden sich für bekannte, teure propritäre Tools
|
||||
2. Organisationen mit eigenen IT Abteilungen haben Wissen und Kompetenz selbst Open Source Lösungen aufzusetzen (also Zugang) und nutzen sie somit häufiger.
|
||||
|
||||
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)
|
||||
Reference in a new issue