Tabele podsumowujące znajdują się pod kodem!
Przebadano 12 sędziów kompetentnych, którymi byli mężczyźni. Badanie składało się z czterech pytań:
O neutralność obrazków neutralnych (kodowane jako neutrality);
O czytelność (tj. czy widać homoseksualność) obrazków homoseksualnych (kodowane jako clarity);
O trafność obrazków homoseksualnych (kodowane jako validity);
Uszeregowanie pytań od najlepszego, do najgorszego (kodowane jako question_fit).
Obrazki neutralne mają nazwy na N (N1, N2…), a obrazki homoseksualne mają nazwy na H (H1, H2…). W tabelach podsumowujących obecne jest oznaczenie obrazka (lub propozycja pytania), średnia ocen danego obrazka (M) i jej odchylenie standardowe (SD) oraz średnia ocena standaryzowana względem innych obrazków (Z). W tabeli podsumowującej czytelność i trafność wartości M, SD i Z odnoszą się do czytelności, zaś CVR (Lawshe, 1975) do trafności. Przy 12 sędziach minimalny CVR wg Lawshe (1975, s. 568) to 0,56. Domyślnie tabela posortowana jest malejąco według CVR. Dodatkowo przy każdym pytaniu policzono zgodność sędziów kompetentnych testem W Kendalla.
Odpowiedzi na pytania 1. i 2. udzielane były na skali od 1 (zdecydowanie neutralne/czytelne) do 6 (zdecydowanie nieneutralne/nieczytelne). Te skale zostały później odwrócone. Pytanie o trafność miało 3 możliwe opcje odpowiedzi: 3 – obrazek ma zasadnicze znaczenie w mierzeniu homofobii, 2 – obrazek może być użyteczny w mierzeniu homofobii, ale nie ma zasadniczego znaczenia, 1 – obrazek nie powinien znaleźć się w teście homofobii. W 4. pytaniu osoba badana miała uszeregować propozycje pytań od najlepszego do najgorszego. Potem najlepsze pytanie otrzymywało 4 punkty, drugie 3 punkty itd.
Analizę statystyczną wykonano w języku R (R Core Team, 2021) i z użyciem jego pakietów, ze szczególnym uwzględnieniem tidyverse (Wickham i in., 2019) i rstatix (Kassambara, 2021).
### ANALIZA BADANIA SĘDZIÓW KOMPETENTNYCH ###
pacman::p_load(rstatix, tidyverse, magrittr)
# Definicje funkcji ----
parse_long <- function(df, name) {
df %>%
set_names(
c(
"ID", paste0(name, 1:(ncol(df)-1))
)) %>%
mutate(
across(where(is_character), parse_number)
) %>%
pivot_longer(
cols = 2:ncol(df), # tj. wszystkie poza ID
names_to = "pic",
values_to = "rate")
}
std_mean <- function(df, rate, group) {
df %>%
group_by({{group}}) %>%
summarise(
M = mean(rate),
SD = sd(rate)
) %>%
mutate(
Z = (M - mean(M)) / sd(M)
) %>%
arrange(desc(Z))
}
flip_scale <- function(x, range) {
2 * mean(range) - x
# case_when(
# (2 * mean(range) - x) %in% 4:6 ~ 1,
# (2 * mean(range) - x) %in% 1:3 ~ 0)
}
# Zmienne z danymi ----
raw_data <- readxl::read_excel("sedziowie-dane.xlsx") %>%
discard(~all(is.na(.)))
neutrality <- raw_data %>%
select(ID, starts_with("Czy ten obrazek jest neutralny?"))
clarity <- raw_data %>%
select(ID, starts_with("Na ile czytelne jest, że osoby na obrazku są homoseksualne?"))
validity <- raw_data %>%
select(ID, starts_with("Czy ten obrazek może znaleźć się w teście mierzącym homofobię?"))
question_fit <- raw_data %>%
select(ID, starts_with("Mając na względzie cel pomiaru, uszereguj podane niżej propozycje w kolejności od najlepszej do najgorszej"))
# Neutralność ----
neutrality %<>%
parse_long("N") %>%
mutate(rate = flip_scale(rate, 1:6))
neutrality_sum <- neutrality %>% std_mean(rate, pic)
neutrality_W <- neutrality %>%
friedman_effsize(rate ~ pic | ID) %>%
mutate(`.y.` = "neutrality")
# Czytelność ----
clarity %<>%
parse_long("H") %>%
mutate(rate = flip_scale(rate, 1:6))
clarity_sum <- clarity %>% std_mean(rate, pic)
clarity_W_gay <- clarity %>%
filter(pic %in% paste0("H", 1:24)) %>%
friedman_effsize(rate ~ pic | ID) %>%
mutate(`.y.` = "clarity_gay")
clarity_W_lasbian <- clarity %>%
filter(pic %in% paste0("H", 25:42)) %>%
friedman_effsize(rate ~ pic | ID) %>%
mutate(`.y.` = "clarity_lesbian")
# Trafność ----
validity %<>% parse_long("H")
validity_CVR <- validity %>%
group_by(pic) %>%
count(rate) %>%
filter(rate == "3") %>%
mutate(CVR =
(n - 0.5 * nrow(raw_data)) / (0.5 * nrow(raw_data)) # nrow(raw_data) to liczba sędziów
) %>%
select(pic, CVR) %>%
arrange(desc(CVR))
validity_W_gay <- validity %>%
filter(pic %in% paste0("H", 1:24)) %>%
friedman_effsize(rate ~ pic | ID) %>%
mutate(`.y.` = "validity_gay")
validity_W_lesbian <- validity %>%
filter(pic %in% paste0("H", 25:42)) %>%
friedman_effsize(rate ~ pic | ID) %>%
mutate(`.y.` = "validity_lesbian")
# Ocena pytań ----
question_fit %<>%
separate(
col = 2,
into =
as.character(
str_count(question_fit[[1,2]], ";"):1 # liczba średników jest równa liczbie pytań do uszeregowania, ciąg N od liczby średników do 1
),
sep = ";") %>%
pivot_longer(
2:ncol(.),
names_to = "rate",
values_to = "question") %>%
mutate(
rate = as.double(rate),
across(where(is_character), str_trim))
question_fit_sum <- question_fit %>% std_mean(rate, question)
question_fit_W <- question_fit %>%
friedman_effsize(rate ~ question | ID) %>%
mutate(`.y.` = "question_fit")
# W Kendalla ----
Kendall_W <- bind_rows(neutrality_W, clarity_W_gay, clarity_W_lasbian, validity_W_gay, validity_W_lesbian, question_fit_W)
Niezadowalające wartości CVR bodźców z lesbijkami w pierwszym badaniu wymusiły powtórzenie badania trafności z nowym zestawem bodźców. Przebadanych zostało 12 mężczyzn. Badanie składało się z dwóch pytań, analogicznych do tych z pierwszego badania:
O czytelność (tj. czy widać homoseksualność) obrazków homoseksualnych (kodowane jako clarity2);
O trafność obrazków homoseksualnych (kodowane jako validity2).
Celem uspójnienia kodowania, bodźce w drugim badaniu zostały nazwane od H43 (H43, H44…). Jednocześnie bodziec H27 (CVR = 0,67 w pierwszym badaniu) został powtórnie sprawdzony, otrzymując nazwę kodową H59.
Minimalny CVR to ponownie 0,56 (Lawshe, 1975, s. 568).
Analizę statystyczną wykonano w języku R (R Core Team, 2021) i z użyciem jego pakietów, ze szczególnym uwzględnieniem tidyverse (Wickham i in., 2019) i rstatix (Kassambara, 2021).
### ANALIZA BADANIA SĘDZIÓW KOMPETENTNYCH – POWTÓRNA ###
pacman::p_load(rstatix, tidyverse, magrittr)
# Definicje funkcji ----
parse_long2 <- function(df) {
df %>%
set_names(
str_extract(names(validity2), "H\\d{2}") %>% str_replace_na("ID")) %>%
mutate(across(where(is_character), parse_number)) %>%
pivot_longer(
cols = 2:ncol(df), # tj. wszystkie poza ID
names_to = "pic",
values_to = "rate")
}
std_mean <- function(df, rate, group) {
df %>%
group_by({{group}}) %>%
summarise(
M = mean(rate),
SD = sd(rate)
) %>%
mutate(
Z = (M - mean(M)) / sd(M)
) %>%
arrange(desc(Z))
}
# Zmienne z danymi ----
raw_data2 <- readxl::read_excel("sedziowie-dane-2.xlsx") %>%
discard(~all(is.na(.))) %>%
filter(Wiek >= 18)
clarity2 <- raw_data2 %>%
select(ID, starts_with("Na ile czytelne jest, że osoby na obrazku są homoseksualne"))
validity2 <- raw_data2 %>%
select(ID, starts_with("Czy ten obrazek może znaleźć się w teście mierzącym homofobię?"))
# Czytelność ----
clarity2 %<>% parse_long2()
clarity2_sum <- clarity2 %>% std_mean(rate, pic)
clarity2_W_lesbian <- clarity2 %>%
friedman_effsize(rate ~ pic | ID) %>%
mutate(`.y.` = "clarity2_lesbian")
# Trafność ----
validity2 %<>% parse_long2()
validity2_CVR <- validity2 %>%
group_by(pic) %>%
count(rate) %>%
filter(rate == "3") %>%
mutate(CVR =
(n - 0.5 * nrow(raw_data2)) / (0.5 * nrow(raw_data2)) # nrow(raw_data2) to liczba sędziów
) %>%
select(pic, CVR) %>%
arrange(desc(CVR))
validity2_W_lesbian <- validity2 %>%
friedman_effsize(rate ~ pic | ID) %>%
mutate(`.y.` = "validity2_lesbian")
# W Kendalla ----
Kendall_W_2 <- bind_rows(clarity2_W_lesbian, validity2_W_lesbian)