Report with UPNUMBERorig
Application de la procédure normale (division 2022 ; CoefRed 2009
Rappel méthodologie UP des NCS2 s’agissant du redressement des variables numériques
Benchmarks
Non-catholiques
Pour pouvoir évaluer si la procédure normale donne lieu à des chiffres crédibles, il nous faut disposer de points de référence. Voyons d’abord l’évolution des variables concernées chez les non-catholiques.
Moyenne sans weight coefTrad12
Code
# without trad weight
data %>%
group_by (YEAR) %>%
filter (TRAD12 != "Catholiques romaines" ) %>%
summarise (across (all_of (varsToCompare),
~ mean (.x, na.rm = T))) %>%
pivot_longer (cols = - YEAR, names_to = "VARIABLE" , values_to = "MEAN" ) %>%
arrange (VARIABLE, YEAR) %>%
pivot_wider (names_from = YEAR,
values_from = MEAN) %>%
clean_names () %>%
mutate (changePerc = paste (round (100 * ((x2022 - x2009) / x2009)),"%" ),
changePerc = ifelse (! str_detect (changePerc, "^-" ),
paste0 ("+" , changePerc),
changePerc)) %>%
arrange (- str_detect (variable, "^NUM" )) %>%
tab_df (alternate.rows = T, title = "Means among non-Catholics (w/out trad12-weight)" )
Means among non-Catholics (w/out trad12-weight)
variable
x2009
x2022
changePerc
NUMADLTS
87.17
98.53
+13 %
NUMATTND
78.83
69.05
-12 %
NUMREGLR
122.22
141.42
+16 %
NUMTOTAL
514.30
395.90
-23 %
BOARDGEN
3.06
3.12
+2 %
BOARDNUM
7.38
7.43
+1 %
FTSTAFF
1.35
1.19
-12 %
FTSTAFFWM
0.43
0.73
+71 %
STAFFGEN
2.83
3.75
+33 %
STAFFNUM
3.23
4.54
+40 %
TEENRGLR
20.52
21.99
+7 %
VLTRS
NaN
69.50
+NaN %
WMVLTRS
NaN
43.81
+NaN %
Moyenne avec coefTrad12
Code
# with trad weight
data %>%
group_by (YEAR) %>%
filter (TRAD12 != "Catholiques romaines" ) %>%
summarise (across (all_of (varsToCompare),
~ weighted.mean (.x, w = coefTrad12, na.rm = T))) %>%
pivot_longer (cols = - YEAR, names_to = "VARIABLE" , values_to = "MEAN" ) %>%
arrange (VARIABLE, YEAR) %>%
pivot_wider (names_from = YEAR,
values_from = MEAN) %>%
clean_names () %>%
mutate (changePerc = paste (round (100 * ((x2022 - x2009) / x2009)),"%" ),
changePerc = ifelse (! str_detect (changePerc, "^-" ),
paste0 ("+" , changePerc),
changePerc)) %>%
arrange (- str_detect (variable, "^NUM" )) %>%
tab_df (alternate.rows = T, title = "Means among non-Catholics (w/ trad12-weight)" )
Means among non-Catholics (w/ trad12-weight)
variable
x2009
x2022
changePerc
NUMADLTS
90.22
98.31
+9 %
NUMATTND
79.60
73.99
-7 %
NUMREGLR
126.06
138.16
+10 %
NUMTOTAL
524.41
355.71
-32 %
BOARDGEN
3.12
3.06
-2 %
BOARDNUM
7.43
7.60
+2 %
FTSTAFF
1.39
1.16
-16 %
FTSTAFFWM
0.43
0.73
+70 %
STAFFGEN
2.99
3.30
+10 %
STAFFNUM
3.37
3.92
+16 %
TEENRGLR
21.12
20.15
-5 %
VLTRS
NaN
68.05
+NaN %
WMVLTRS
NaN
42.10
+NaN %
L’ajout de coefTrad12 a tendance à rendre les choses plus crédibles, ce qui tend à valider ce weight. En revanche, on notera que certaines différences sont étranges, notamment NUMREG, censée être plus fiable que les autres. L’augmentation FTSTAFFWM est assez énorme, et on la constate aussi chez les catholiques
Catholiques “normaux”
Voyons maintenant l’évolution des variables au sein des paroisses catholiques ‘normales’, c’est-à-dire pour lesquelles aucun traitement n’est appliqué, ni par le NCS 1, ni par le NCS 2.
Code
keep2009 <- data %>%
filter (CoefRed_MEMBER == 1 ,
CoefRed_STAFF == 1 ,
TRAD12 == "Catholiques romaines" ,
YEAR == "2009" ) %>%
pull (LINKCODE)
keep2022 <- data %>%
filter (UP_n_parish == 1 ,
TRAD12 == "Catholiques romaines" ,
YEAR == "2022" ) %>%
pull (LINKCODE)
# length(keep2009)
# length(keep2022)
keep <- append (keep2009, keep2022)
data %>%
filter (LINKCODE %in% keep) %>%
group_by (YEAR) %>%
summarise (across (all_of (varsToCompare),
~ mean (.x, na.rm = T))) %>%
pivot_longer (cols = - YEAR, names_to = "VARIABLE" , values_to = "MEAN" ) %>%
arrange (VARIABLE, YEAR) %>%
pivot_wider (names_from = YEAR,
values_from = MEAN) %>%
clean_names () %>%
mutate (changePerc = paste (round (100 * ((x2022 - x2009) / x2009)),"%" ),
changePerc = ifelse (! str_detect (changePerc, "^-" ),
paste0 ("+" , changePerc),
changePerc)) %>%
arrange (- str_detect (variable, "^NUM" )) %>%
tab_df (alternate.rows = T, title = "Means among 'normal' caths (without up Weight)" )
Means among 'normal' caths (without up Weight)
variable
x2009
x2022
changePerc
NUMADLTS
214.85
218.37
+2 %
NUMATTND
162.86
110.24
-32 %
NUMREGLR
287.91
303.34
+5 %
NUMTOTAL
1888.50
1059.17
-44 %
BOARDGEN
4.75
4.66
-2 %
BOARDNUM
9.37
9.48
+1 %
FTSTAFF
1.97
2.19
+11 %
FTSTAFFWM
1.08
0.88
-18 %
STAFFGEN
5.75
6.23
+8 %
STAFFNUM
8.89
9.67
+9 %
TEENRGLR
39.37
45.04
+14 %
VLTRS
NaN
81.66
+NaN %
WMVLTRS
NaN
54.90
+NaN %
On notera que l’ajout ou non de coefUp ne change rien (cf. filtres).
Moyennes parmis les catholiques et avec coefUp
Le but de cette section est de voir si les moyennes, en appliquant la procédure prévue, est crédible. Les plots et tableaux suivants prennent toutes les congrégations catholiques en compte (mais uniquement les catholiques).
Pas de traitement du tout
Code
compare_meansV2 (data = data, n_up_apply = T) %>%
tab_df (alternate.rows = T, title = "No treatment at all (caths only)" )
No treatment at all (caths only)
variable
x2009
x2022
changePerc
NUMADLTS
222.83
255.50
+15 %
NUMATTND
151.74
103.69
-32 %
NUMREGLR
174.28
376.98
+116 %
NUMTOTAL
1572.84
1186.59
-25 %
BOARDGEN
4.61
5.49
+19 %
BOARDNUM
9.03
10.41
+15 %
FTSTAFF
2.01
3.19
+59 %
FTSTAFFWM
0.64
1.07
+69 %
STAFFGEN
5.13
8.00
+56 %
STAFFNUM
8.60
10.27
+19 %
TEENRGLR
35.94
49.37
+37 %
VLTRS
NaN
111.17
+NaN %
WMVLTRS
NaN
75.45
+NaN %
Code
compare_dists (data = data, coefUp = T)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Warning: Removed 366 rows containing non-finite values (`stat_bin()`).
Uniquement traitement 2009
Code
# both red.
compare_meansV2 (data = DATA_only_Coefred, n_up_apply = T) %>%
tab_df (alternate.rows = T, title = "2009 treatment only (caths only)" )
2009 treatment only (caths only)
variable
x2009
x2022
changePerc
NUMADLTS
126.32
255.50
+102 %
NUMATTND
82.84
103.69
+25 %
NUMREGLR
130.92
376.98
+188 %
NUMTOTAL
893.88
1186.59
+33 %
BOARDGEN
4.61
5.49
+19 %
BOARDNUM
9.03
10.41
+15 %
FTSTAFF
1.27
3.19
+151 %
FTSTAFFWM
0.48
1.07
+123 %
STAFFGEN
3.77
8.00
+112 %
STAFFNUM
6.18
10.27
+66 %
TEENRGLR
35.94
49.37
+37 %
VLTRS
NaN
111.17
+NaN %
WMVLTRS
NaN
75.45
+NaN %
Code
compare_dists (data = DATA_only_Coefred, coefUp = T)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Warning: Removed 366 rows containing non-finite values (`stat_bin()`).
Uniquement traitement 2022
Code
compare_meansV2 (data = DATA_only_2022_Red, T) %>%
tab_df (alternate.rows = T, title = "2020 treatment only (caths only)" )
2020 treatment only (caths only)
variable
x2009
x2022
changePerc
NUMADLTS
222.83
255.50
+15 %
NUMATTND
151.74
103.69
-32 %
NUMREGLR
174.28
376.98
+116 %
NUMTOTAL
1572.84
1186.59
-25 %
BOARDGEN
4.61
1.19
-74 %
BOARDNUM
9.03
2.35
-74 %
FTSTAFF
2.01
0.84
-59 %
FTSTAFFWM
0.64
0.31
-52 %
STAFFGEN
5.13
2.20
-57 %
STAFFNUM
8.60
2.83
-67 %
TEENRGLR
35.94
12.53
-65 %
VLTRS
NaN
30.16
+NaN %
WMVLTRS
NaN
20.31
+NaN %
Code
compare_dists (data = DATA_only_2022_Red, coefUp = T)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Warning: Removed 366 rows containing non-finite values (`stat_bin()`).
Les deux traitements
Code
compare_meansV2 (data = DATA_bothWavesRed, T) %>%
tab_df (alternate.rows = T,
title = "Both treatments (caths only" )
Both treatments (caths only
variable
x2009
x2022
changePerc
NUMADLTS
126.32
255.50
+102 %
NUMATTND
82.84
103.69
+25 %
NUMREGLR
130.92
376.98
+188 %
NUMTOTAL
893.88
1186.59
+33 %
BOARDGEN
4.61
1.53
-67 %
BOARDNUM
9.03
3.06
-66 %
FTSTAFF
1.27
0.92
-28 %
FTSTAFFWM
0.48
0.32
-34 %
STAFFGEN
3.77
2.63
-30 %
STAFFNUM
6.18
3.54
-43 %
TEENRGLR
35.94
13.79
-62 %
VLTRS
NaN
34.53
+NaN %
WMVLTRS
NaN
23.04
+NaN %
Code
compare_dists (data = DATA_bothWavesRed, coefUp = T)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Warning: Removed 366 rows containing non-finite values (`stat_bin()`).
Rappel : le traitement prévu pour 2022 (la division par le nombre de paroisses dans l’UP) s’applique aux variables STAFF, mais pas PARTICIPANTS.
On voit que les résultats ne sont pas très crédibles, notamment au vu des augmentations drastiques des moyennes pour les variables PARTICIPANTS.
Une hypothèse probable est que certains répondants UP ont répondu à ces questions comme si on leur posait la question pour tout l’UP. En effet, les questions STAFF (posées par UP) viennent avant les questions PART.
En revanche, l’inverse n’est pas très crédible : la baisse dans les variables STAFF ne peut pas s’expliquer par le fait que les répondants n’auraient pas compris qu’on parle.
Traitement division 2022 appliqué aux variables PART.
En partant de l’hypothèse mentionnée, voyons ce que cela donne si l’on faisait comme si nous avions posé les questions PART. par UP :
Code
compare_meansV2 (data = DATA_bothWavesRed_UpDivMbrs22, T) %>%
tab_df (alternate.rows = T, title = "extra division for PART. in 2022" )
extra division for PART. in 2022
variable
x2009
x2022
changePerc
NUMADLTS
126.32
61.60
-51 %
NUMATTND
82.84
26.90
-68 %
NUMREGLR
130.92
86.95
-34 %
NUMTOTAL
893.88
283.80
-68 %
BOARDGEN
4.61
1.53
-67 %
BOARDNUM
9.03
3.06
-66 %
FTSTAFF
1.27
0.92
-28 %
FTSTAFFWM
0.48
0.32
-34 %
STAFFGEN
3.77
2.63
-30 %
STAFFNUM
6.18
3.54
-43 %
TEENRGLR
35.94
13.79
-62 %
VLTRS
NaN
34.53
+NaN %
WMVLTRS
NaN
23.04
+NaN %
Code
compare_dists (data = DATA_bothWavesRed_UpDivMbrs22, coefUp = T)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Warning: Removed 366 rows containing non-finite values (`stat_bin()`).
Moyennes parmis les catholiques et sans coefUp
Le but de cette section est de voir si les moyennes, en appliquant la procédure prévue, est crédible.
Pas de traitement du tout
Code
compare_meansV2 (data = data, n_up_apply = F) %>%
tab_df (alternate.rows = F,
title = "No treatment at all (caths only)" )
No treatment at all (caths only)
variable
x2009
x2022
changePerc
NUMADLTS
222.83
218.00
-2 %
NUMATTND
151.74
98.49
-35 %
NUMREGLR
174.28
316.45
+82 %
NUMTOTAL
1572.84
1031.55
-34 %
BOARDGEN
4.61
4.78
+4 %
BOARDNUM
9.03
9.45
+5 %
FTSTAFF
2.01
3.26
+62 %
FTSTAFFWM
0.64
1.22
+92 %
STAFFGEN
5.13
8.52
+66 %
STAFFNUM
8.60
11.37
+32 %
TEENRGLR
35.94
50.91
+42 %
VLTRS
NaN
120.16
+NaN %
WMVLTRS
NaN
81.25
+NaN %
Code
compare_dists (data = data, coefUp = F)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Warning: Removed 366 rows containing non-finite values (`stat_bin()`).
Uniquement traitement 2009
Code
# both red.
compare_meansV2 (data = DATA_only_Coefred, n_up_apply = F) %>%
tab_df (alternate.rows = T,
title = "2009 treatment only (caths only)" )
2009 treatment only (caths only)
variable
x2009
x2022
changePerc
NUMADLTS
126.32
218.00
+73 %
NUMATTND
82.84
98.49
+19 %
NUMREGLR
130.92
316.45
+142 %
NUMTOTAL
893.88
1031.55
+15 %
BOARDGEN
4.61
4.78
+4 %
BOARDNUM
9.03
9.45
+5 %
FTSTAFF
1.27
3.26
+156 %
FTSTAFFWM
0.48
1.22
+154 %
STAFFGEN
3.77
8.52
+126 %
STAFFNUM
6.18
11.37
+84 %
TEENRGLR
35.94
50.91
+42 %
VLTRS
NaN
120.16
+NaN %
WMVLTRS
NaN
81.25
+NaN %
Code
compare_dists (data = DATA_only_Coefred, coefUp = F)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Warning: Removed 366 rows containing non-finite values (`stat_bin()`).
Uniquement traitement 2022
Code
compare_meansV2 (data = DATA_only_2022_Red, F) %>%
tab_df (alternate.rows = T,
title = "2020 treatment only (caths only)" )
2020 treatment only (caths only)
variable
x2009
x2022
changePerc
NUMADLTS
222.83
218.00
-2 %
NUMATTND
151.74
98.49
-35 %
NUMREGLR
174.28
316.45
+82 %
NUMTOTAL
1572.84
1031.55
-34 %
BOARDGEN
4.61
2.38
-48 %
BOARDNUM
9.03
4.77
-47 %
FTSTAFF
2.01
1.45
-28 %
FTSTAFFWM
0.64
0.55
-13 %
STAFFGEN
5.13
3.92
-24 %
STAFFNUM
8.60
5.67
-34 %
TEENRGLR
35.94
26.43
-26 %
VLTRS
NaN
55.12
+NaN %
WMVLTRS
NaN
36.97
+NaN %
Code
compare_dists (data = DATA_only_2022_Red, coefUp = F)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Warning: Removed 366 rows containing non-finite values (`stat_bin()`).
Les deux traitements
Code
compare_meansV2 (data = DATA_bothWavesRed, F) %>%
tab_df (alternate.rows = T,
title = "Both treatments (caths only" )
Both treatments (caths only
variable
x2009
x2022
changePerc
NUMADLTS
126.32
218.00
+73 %
NUMATTND
82.84
98.49
+19 %
NUMREGLR
130.92
316.45
+142 %
NUMTOTAL
893.88
1031.55
+15 %
BOARDGEN
4.61
2.45
-47 %
BOARDNUM
9.03
4.95
-45 %
FTSTAFF
1.27
1.43
+12 %
FTSTAFFWM
0.48
0.53
+11 %
STAFFGEN
3.77
4.02
+7 %
STAFFNUM
6.18
5.83
-6 %
TEENRGLR
35.94
25.99
-28 %
VLTRS
NaN
56.19
+NaN %
WMVLTRS
NaN
37.46
+NaN %
Code
compare_dists (data = DATA_bothWavesRed, coefUp = F)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Warning: Removed 366 rows containing non-finite values (`stat_bin()`).
Rappel : le traitement prévu pour 2022 (la division par le nombre de paroisses dans l’UP) s’applique aux variables STAFF, mais pas PARTICIPANTS.
On voit que les résultats ne sont pas très crédibles, notamment au vu des augmentations drastiques des moyennes pour les variables PARTICIPANTS.
Une hypothèse probable est que certains répondants UP ont répondu à ces questions comme si on leur posait la question pour tout l’UP. En effet, les questions STAFF (posées par UP) viennent avant les questions PART.
En revanche, l’inverse n’est pas très crédible : la baisse dans les variables STAFF ne peut pas s’expliquer par le fait que les répondants n’auraient pas compris qu’on parle.
Traitement division 2022 appliqué aux variables PART.
En partant de l’hypothèse mentionnée, voyons ce que cela donne si l’on faisait comme si nous avions posé les questions PART. par UP :
Code
compare_meansV2 (data = DATA_bothWavesRed_UpDivMbrs22, F) %>%
tab_df (alternate.rows = T,
title = "extra division for PART. in 2022" )
extra division for PART. in 2022
variable
x2009
x2022
changePerc
NUMADLTS
126.32
114.47
-9 %
NUMATTND
82.84
52.69
-36 %
NUMREGLR
130.92
161.17
+23 %
NUMTOTAL
893.88
550.17
-38 %
BOARDGEN
4.61
2.45
-47 %
BOARDNUM
9.03
4.95
-45 %
FTSTAFF
1.27
1.43
+12 %
FTSTAFFWM
0.48
0.53
+11 %
STAFFGEN
3.77
4.02
+7 %
STAFFNUM
6.18
5.83
-6 %
TEENRGLR
35.94
25.99
-28 %
VLTRS
NaN
56.19
+NaN %
WMVLTRS
NaN
37.46
+NaN %
Code
compare_dists (data = DATA_bothWavesRed_UpDivMbrs22, coefUp = F)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Warning: Removed 366 rows containing non-finite values (`stat_bin()`).
Conclusions provisoires
coefTrad12 semble validé
Au sein des non-catholiques et des catholiques ‘normaux’, les différences semblent environ crédibles
La procédure normale aboutit à des résultats qui ne sont pas très crédibles si l’on prend en compte uniquement (tous) les catholiques
Vrai procédure normale (pas de division en 2022 pour les variables PART.) : variables PART. augment trop
Si on applique en plus la division aux variables PART. en 2022, les résultats sont relativement crédibles (avec coefUp)
Pas vraiment pour les deux variables BOARD (elle ne sont pas divisées par les coefficient en 2009, ce qui explique probablement pourquoi elles sont toujours plus hautes pour cette année. Essayer d’applique le coeff STAFF à ces variables).
Tâches futures
Solution 1 : identifier les paroisses qui répondent par UP dans PART., et leur appliquer un correctif (redressement par groupe), ou une imputation (redressement individuel des valeurs.
Comment les identifier ?
Qui a des chiffres demesurées
ensuite créer un weight de démesure
soit imputation,
soit coefficient de redressemen
Autre diée : diviser les vars PART par le nomb de paroisses représentées, mais uniquement chez eux, et regarder ce que cela fait aux moyennes
Solution 2 (pas orthogonale à 1) : division par le vrai UPNUMBER. Mais au juste, pourquoi pas essayer avec ce que le répondant pensait. ... BACK TO RAW UPNUMBER.R refait tout depuis le checkpoint, mais avec cette hypothèse.
C’est déjà fait, et les chiffre sont meilleirs
Autres pistes
exclure mission de UPNUMBER
être plus stricte sur les limites aux moyennes
Remarques supplémentaires
Pour la division, je suis revenu à UPNUMBER tel que formulé par le répondant
Variable en question UPNUMBERorig
Identificaton de ceux qui n’ont ‘pas compris’
Parmis ceux à qui on pose certaines questions par UP, qui a compris les PART. comme portant sur l’UP et non la paroisse seule ?
Idée :
Code
output4 <- read_excel ("c:/Users/jsenn2/Desktop/VIRTUAL/env/trueScripts/Word/summarize codebook/output4.xlsx" )
New names:
• `` -> `...9`
• `` -> `...10`
• `` -> `...11`
Code
vars <- output4 %>%
filter (Name %in% varsToCompare) %>%
select (Code) %>%
mutate (trueCode = if_else (str_detect (Code, "^[0-9]" ),
paste0 ("Q" , Code),
Code)) %>%
pull (trueCode)
Caths <- orig_ncs2 %>%
select (Q850, Q860, all_of (vars)) %>%
mutate (Q850 = trimws (Q850)) %>%
filter (Q850 != "" )
Caths$ Q860 <- ifelse (is.na (Caths$ Q860),
1 ,
Caths$ Q860)
Caths %>%
select (- Q850) %>%
pivot_longer (- Q860) %>%
ggplot (aes (x = Q860, y = value, color = Q860 == 1 )) +
geom_point () +
facet_wrap (~ name, scales = "free" ) +
scale_x_log10 () +
ggtitle ("Caths before any treatment (completely raw ncs2 data, only caths)" )
Warning: Removed 252 rows containing missing values (`geom_point()`).
Code
# data %>%
# count(YEAR, UPNUMBERorig)
Code
orig_ncs2$ NUMREGLR <- orig_ncs2$ Q1300
Ratio entre NUMREGLR et STAFFNUM
NCS2 raw
Code
Caths <- orig_ncs2 %>%
select (username, Q850, Q860, all_of (vars)) %>%
mutate (Q850 = trimws (Q850)) %>%
filter (Q850 != "" )
Caths$ Q860 <- ifelse (is.na (Caths$ Q860),
1 ,
Caths$ Q860)
manualCheck <- Caths %>%
select (username, HASUP = Q850, UPNUMBER = Q860, NUMREGLR = Q1300, STAFFNUM = Q4110, everything ())
# manualCheck %>%
# mutate(HASUP = ifelse(HASUP != "Non", "Oui", HASUP)) %>%
# # na.omit() %>%
# mutate(ratio = NUMREGLR / STAFFNUM) %>%
# arrange(HASUP, ratio) %>%
# select(1:5, ratio, everything()) %>%
# writexl::write_xlsx("c:/Users/jsenn2/OneDrive - Université de Lausanne/___whoGotItWrong.xlsx")
cathsRatio <- Caths %>%
select (username, HASUP = Q850, UPNUMBER = Q860, NUMREGLR = Q1300, STAFFNUM = Q4110) %>%
mutate (HASUP = ifelse (HASUP != "Non" , "Oui" , HASUP)) %>%
na.omit () %>%
mutate (ratio = NUMREGLR / STAFFNUM) %>%
mutate (` normalized NUMREGLR / STAFFNUM ` = (ratio - min (ratio)) / (max (ratio) - min (ratio)))
cathsRatio %>%
select (UPNUMBER, HASUP, STAFFNUM, NUMREGLR, ratio) %>%
arrange (HASUP, ratio) %>%
tab_df (alternate.rows = T)
UPNUMBER
HASUP
STAFFNUM
NUMREGLR
ratio
1
Non
10
10
1.00
1
Non
10
40
4.00
1
Non
15
100
6.67
1
Non
6
40
6.67
1
Non
14
100
7.14
1
Non
7
50
7.14
1
Non
10
80
8.00
1
Non
8
70
8.75
1
Non
4
35
8.75
1
Non
22
200
9.09
1
Non
3
28
9.33
1
Non
30
300
10.00
1
Non
20
200
10.00
1
Non
10
100
10.00
1
Non
7
70
10.00
1
Non
5
50
10.00
1
Non
4
40
10.00
1
Non
19
200
10.53
1
Non
11
120
10.91
1
Non
35
400
11.43
1
Non
35
400
11.43
1
Non
13
150
11.54
1
Non
5
60
12.00
1
Non
12
150
12.50
1
Non
15
200
13.33
1
Non
7
100
14.29
1
Non
7
100
14.29
1
Non
20
300
15.00
1
Non
10
150
15.00
1
Non
4
60
15.00
1
Non
12
200
16.67
1
Non
9
150
16.67
1
Non
34
600
17.65
1
Non
17
300
17.65
1
Non
10
180
18.00
1
Non
5
100
20.00
1
Non
17
360
21.18
1
Non
3
65
21.67
1
Non
30
700
23.33
1
Non
3
70
23.33
1
Non
60
1500
25.00
1
Non
12
300
25.00
1
Non
8
200
25.00
1
Non
8
200
25.00
1
Non
2
60
30.00
1
Non
13
400
30.77
1
Non
3
100
33.33
1
Non
10
345
34.50
1
Non
7
250
35.71
1
Non
4
150
37.50
1
Non
1
40
40.00
1
Non
9
400
44.44
1
Non
10
500
50.00
1
Non
8
400
50.00
1
Non
4
200
50.00
1
Non
7
360
51.43
1
Non
11
600
54.55
1
Non
8
450
56.25
1
Non
7
400
57.14
1
Non
4
250
62.50
1
Non
2
150
75.00
1
Non
20
2000
100.00
1
Non
4
400
100.00
1
Non
1
100
100.00
1
Non
1
105
105.00
1
Non
1
150
150.00
1
Non
15
2500
166.67
1
Non
4
700
175.00
1
Non
1
200
200.00
1
Non
4
900
225.00
1
Non
1
250
250.00
1
Non
9
3000
333.33
1
Non
0
300
Inf
1
Non
0
130
Inf
1
Non
0
200
Inf
1
Non
0
50
Inf
1
Non
0
10
Inf
1
Non
0
55
Inf
1
Non
0
70
Inf
4
Oui
120
25
0.21
5
Oui
300
75
0.25
5
Oui
80
25
0.31
4
Oui
150
270
1.80
13
Oui
8
15
1.88
6
Oui
25
50
2.00
4
Oui
15
30
2.00
5
Oui
10
20
2.00
3
Oui
40
100
2.50
5
Oui
18
50
2.78
3
Oui
11
40
3.64
3
Oui
80
300
3.75
2
Oui
13
55
4.23
4
Oui
60
300
5.00
6
Oui
10
50
5.00
3
Oui
5
25
5.00
2
Oui
36
200
5.56
3
Oui
35
200
5.71
7
Oui
7
40
5.71
3
Oui
5
30
6.00
5
Oui
40
250
6.25
5
Oui
45
300
6.67
20
Oui
6
40
6.67
1
Oui
11
75
6.82
2
Oui
10
70
7.00
2
Oui
28
200
7.14
3
Oui
21
150
7.14
7
Oui
7
50
7.14
10
Oui
20
150
7.50
5
Oui
4
30
7.50
5
Oui
5
40
8.00
5
Oui
6
50
8.33
3
Oui
13
110
8.46
4
Oui
70
600
8.57
2
Oui
8
70
8.75
7
Oui
10
90
9.00
3
Oui
8
75
9.38
4
Oui
100
1000
10.00
2
Oui
20
200
10.00
7
Oui
10
100
10.00
7
Oui
10
100
10.00
4
Oui
10
100
10.00
4
Oui
10
100
10.00
7
Oui
8
80
10.00
4
Oui
3
30
10.00
3
Oui
29
300
10.34
3
Oui
57
600
10.53
2
Oui
19
200
10.53
3
Oui
28
300
10.71
4
Oui
13
140
10.77
7
Oui
18
200
11.11
6
Oui
7
80
11.43
3
Oui
30
350
11.67
5
Oui
10
120
12.00
1
Oui
20
250
12.50
3
Oui
20
250
12.50
2
Oui
8
100
12.50
7
Oui
8
100
12.50
5
Oui
60
800
13.33
5
Oui
15
200
13.33
5
Oui
9
120
13.33
6
Oui
6
80
13.33
9
Oui
6
80
13.33
7
Oui
3
40
13.33
3
Oui
70
1000
14.29
4
Oui
21
300
14.29
1
Oui
14
200
14.29
2
Oui
30
450
15.00
8
Oui
20
300
15.00
5
Oui
20
300
15.00
5
Oui
10
150
15.00
5
Oui
2
30
15.00
3
Oui
24
400
16.67
4
Oui
3
50
16.67
2
Oui
20
350
17.50
2
Oui
2
35
17.50
8
Oui
24
450
18.75
2
Oui
37
700
18.92
1
Oui
25
500
20.00
6
Oui
10
200
20.00
2
Oui
7
140
20.00
12
Oui
5
100
20.00
4
Oui
4
80
20.00
5
Oui
12
250
20.83
8
Oui
7
150
21.43
2
Oui
9
200
22.22
3
Oui
12
280
23.33
3
Oui
20
500
25.00
14
Oui
12
300
25.00
2
Oui
10
250
25.00
2
Oui
8
200
25.00
3
Oui
2
50
25.00
5
Oui
2
50
25.00
12
Oui
3
80
26.67
5
Oui
7
200
28.57
3
Oui
50
1500
30.00
8
Oui
5
150
30.00
8
Oui
2
60
30.00
7
Oui
12
400
33.33
1
Oui
6
200
33.33
7
Oui
6
200
33.33
3
Oui
8
300
37.50
3
Oui
5
200
40.00
2
Oui
5
200
40.00
4
Oui
5
200
40.00
3
Oui
3
120
40.00
3
Oui
2
80
40.00
5
Oui
2
80
40.00
2
Oui
7
300
42.86
6
Oui
7
300
42.86
2
Oui
7
300
42.86
10
Oui
7
300
42.86
5
Oui
7
310
44.29
2
Oui
7
350
50.00
3
Oui
4
200
50.00
3
Oui
3
150
50.00
5
Oui
2
100
50.00
9
Oui
11
600
54.55
7
Oui
3
170
56.67
4
Oui
14
800
57.14
2
Oui
5
300
60.00
5
Oui
1
60
60.00
2
Oui
8
500
62.50
1
Oui
3
200
66.67
22
Oui
3
200
66.67
7
Oui
16
1200
75.00
2
Oui
4
300
75.00
1
Oui
5
400
80.00
2
Oui
1
80
80.00
4
Oui
1
80
80.00
1
Oui
1
80
80.00
3
Oui
10
900
90.00
10
Oui
6
600
100.00
2
Oui
2
200
100.00
4
Oui
4
500
125.00
4
Oui
2
250
125.00
2
Oui
14
2000
142.86
2
Oui
2
300
150.00
22
Oui
2
320
160.00
5
Oui
8
1500
187.50
21
Oui
3
600
200.00
9
Oui
3
600
200.00
11
Oui
7
2000
285.71
30
Oui
5
1450
290.00
2
Oui
1
300
300.00
5
Oui
1
300
300.00
2
Oui
1
300
300.00
6
Oui
17
6000
352.94
9
Oui
1
400
400.00
4
Oui
1
400
400.00
13
Oui
6
2600
433.33
1
Oui
1
500
500.00
5
Oui
1
500
500.00
6
Oui
1
600
600.00
2
Oui
2
1500
750.00
17
Oui
2
3500
1750.00
2
Oui
0
20
Inf
2
Oui
0
60
Inf
3
Oui
0
400
Inf
5
Oui
0
15
Inf
12
Oui
0
8
Inf
1
Oui
0
200
Inf
5
Oui
0
80
Inf
12
Oui
0
600
Inf
9
Oui
0
40
Inf
4
Oui
0
250
Inf
Code
caths2020inUp <- cathsRatio %>%
filter (HASUP == "Oui" )
caths2020NotinUp <- cathsRatio %>%
filter (HASUP == "Non" )
cathsRatio %>%
ggplot (aes (x = ratio,
fill = HASUP)) +
geom_boxplot ()
Warning: Removed 17 rows containing non-finite values (`stat_boxplot()`).
Code
cathsRatio %>%
group_by (HASUP) %>%
filter (ratio != Inf ) %>%
summarise (` NUMREGLR/ STAFFNUM ` = mean (ratio))
# A tibble: 2 × 2
HASUP `NUMREGLR/ STAFFNUM`
<chr> <dbl>
1 Non 45.8
2 Oui 75.0
Code
orig_ncs2 %>%
filter (Q1300 == 3000 ) %>%
select (Q4110)
# A tibble: 1 × 1
Q4110
<dbl>
1 9
Code
# data %>%
# filter(TRAD12 == "Catholiques romaines") %>%
# select(YEAR, LINKCODE, UPNUMBERorig, all_of(varsToCompare)) %>%
# mutate(ratio = NUMREGLR / STAFFNUM,
# HASUP = ifelse(UPNUMBERorig > 1, T, F)) %>%
# select(1:3, HASUP, NUMREGLR, STAFFNUM, ratio, everything()) %>%
# arrange(YEAR, HASUP, ratio) %>%
# writexl::write_xlsx("c:/Users/jsenn2/OneDrive - Université de Lausanne/___whoGotItWrongWholeData.xlsx")
NCS1 treated (v2009)
Code
# is the ratio acceptable in `ncs1_treated`
ncs1_treated %>%
summarise (ratio = NUMREGLR / STAFFNUM) %>%
na.omit () %>%
ggplot (aes (x= ratio)) +
geom_histogram () +
scale_x_log10 ()
Warning: Returning more (or less) than 1 row per `summarise()` group was deprecated in
dplyr 1.1.0.
ℹ Please use `reframe()` instead.
ℹ When switching from `summarise()` to `reframe()`, remember that `reframe()`
always returns an ungrouped data frame and adjust accordingly.
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Warning: Removed 314 rows containing non-finite values (`stat_bin()`).
Corrélation entre STAFFNUM et NUMREGLR
Code
cor.test (ncs1_treated$ STAFFNUM, ncs1_treated$ NUMREGLR)
Pearson's product-moment correlation
data: ncs1_treated$STAFFNUM and ncs1_treated$NUMREGLR
t = 15.224, df = 1029, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.3775798 0.4773088
sample estimates:
cor
0.4287496
Code
cor.test (cathsRatio$ STAFFNUM, cathsRatio$ NUMREGLR)
Pearson's product-moment correlation
data: cathsRatio$STAFFNUM and cathsRatio$NUMREGLR
t = 0.9466, df = 243, p-value = 0.3448
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.06521112 0.18454001
sample estimates:
cor
0.06061307
Code
cor.test (caths2020inUp$ STAFFNUM, caths2020inUp$ NUMREGLR)
Pearson's product-moment correlation
data: caths2020inUp$STAFFNUM and caths2020inUp$NUMREGLR
t = 0.30932, df = 164, p-value = 0.7575
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.1286477 0.1758218
sample estimates:
cor
0.02414699
Code
cor.test (caths2020NotinUp$ STAFFNUM, caths2020NotinUp$ NUMREGLR)
Pearson's product-moment correlation
data: caths2020NotinUp$STAFFNUM and caths2020NotinUp$NUMREGLR
t = 3.3134, df = 77, p-value = 0.001406
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.1433360 0.5327495
sample estimates:
cor
0.3532508
Code
cathsRatio %>%
ggplot (aes (x = STAFFNUM, y = NUMREGLR, color = HASUP)) +
geom_point () +
scale_y_log10 () +
scale_x_log10 () +
facet_wrap (~ HASUP) +
ggtitle ("ncs2 raw: Corrélation entre STAFFNUM et NUMREGLR" )
Warning: Transformation introduced infinite values in continuous x-axis
Code
ncs1_treated %>%
ggplot (aes (x = STAFFNUM, y = NUMREGLR)) +
geom_point () +
scale_y_log10 () +
scale_x_log10 () +
ggtitle ("ncs1 treated (v2009): Corrélation entre STAFFNUM et NUMREGLR" )
Warning: Transformation introduced infinite values in continuous x-axis
Warning: Removed 9 rows containing missing values (`geom_point()`).
Corrélation entre UPNUMBER et les variables
Code
data_before_UP_treat$ UPNUMBERorig <- ifelse (is.na (data_before_UP_treat$ UPNUMBERorig),
1 ,
data_before_UP_treat$ UPNUMBERorig)
data_before_UP_treat %>%
filter (TRAD12 == "Catholiques romaines" ) %>%
select (YEAR, UPNUMBERorig, all_of (varsToCompare)) %>%
gather (variable, value, - YEAR, - UPNUMBERorig) %>%
filter (! is.na (value)) %>%
nest (data = c (UPNUMBERorig, value)) %>%
group_by (YEAR, variable) %>%
mutate (model = map (data, ~ lm (value ~ UPNUMBERorig, data = .x))) %>%
mutate (tidied = map (model, broom:: tidy)) %>%
unnest (tidied) %>%
filter (term == "UPNUMBERorig" ) %>%
arrange (YEAR) %>%
mutate (p_value_stars = case_when (
p.value < 0.001 ~ "***" ,
p.value < 0.01 ~ "**" ,
p.value < 0.05 ~ "*" ,
p.value < 0.1 ~ "." ,
TRUE ~ ""
)) %>%
mutate (PART = ifelse (variable %nin% upDivide | variable == "TEENRGLR" ,
"Members" ,
"Staff" )) %>%
arrange (YEAR, PART) %>%
select (PART, YEAR, variable, term, estimate, p_value_stars) %>%
tab_df ()
PART
YEAR
variable
term
estimate
p_value_stars
Members
2009
NUMTOTAL
UPNUMBERorig
-43.80
Members
2009
NUMADLTS
UPNUMBERorig
-6.12
Members
2009
NUMREGLR
UPNUMBERorig
-28.86
***
Members
2009
NUMATTND
UPNUMBERorig
-7.70
*
Members
2009
TEENRGLR
UPNUMBERorig
-3.93
**
Staff
2009
STAFFNUM
UPNUMBERorig
-0.79
***
Staff
2009
STAFFGEN
UPNUMBERorig
-0.57
***
Staff
2009
FTSTAFF
UPNUMBERorig
-0.15
.
Staff
2009
FTSTAFFWM
UPNUMBERorig
-0.10
Staff
2009
BOARDNUM
UPNUMBERorig
-0.08
Staff
2009
BOARDGEN
UPNUMBERorig
-0.05
Members
2022
NUMTOTAL
UPNUMBERorig
50.85
.
Members
2022
NUMADLTS
UPNUMBERorig
11.61
*
Members
2022
NUMREGLR
UPNUMBERorig
17.69
**
Members
2022
NUMATTND
UPNUMBERorig
2.60
Members
2022
TEENRGLR
UPNUMBERorig
0.42
Staff
2022
STAFFNUM
UPNUMBERorig
-0.27
Staff
2022
STAFFGEN
UPNUMBERorig
-0.16
Staff
2022
FTSTAFF
UPNUMBERorig
-0.00
Staff
2022
FTSTAFFWM
UPNUMBERorig
-0.02
Staff
2022
VLTRS
UPNUMBERorig
-1.37
Staff
2022
WMVLTRS
UPNUMBERorig
-0.65
Staff
2022
BOARDNUM
UPNUMBERorig
0.26
**
Staff
2022
BOARDGEN
UPNUMBERorig
0.22
***
Ce tableau tend à confirmer qu’une bonne partie des lignes 2022 ont répondu par référence aux UP y-c s’agissant des PART.
Qu’en est-il des missions spécifiquement ?
Conclusions pour le redressement NCS2
Piste a)
Au-dessus d’un certain ratio, partir du principe que les questions PART ont été comprises par référence à l’UP (en 2022).
Dans ces cas : diviser eg NUMREGLR par le nombre de paroisses représentées.