Puedo demostrar que es parcial (creo), pero no puedo explicar por qué. Espero que alguien pueda ver mi respuesta y ayudar a explicarla más.
Como en muchos metanálisis y la imagen que publicó, muchas personas interpretan el BESD como: Si dividiera ambas variables, colocaría con precisión a las personas en las celdas "correctas" de una tabla de contingencia 2 x 2, un porcentaje dado de el tiempo.
Entonces, si , la gente podría decir: "Dada esta observada , puedes pensarlo así: las personas que están por encima de la mediana en X también estarían por encima de la mediana en Y el 70% del tiempo. " Así es como Kraus (1995, p. 69) lo interpreta (se basa en una situación hipotética en la que una variable es verdaderamente dicotómica, mientras que la otra es una división mediana):r.50+r/2=.70r
Las personas han utilizado a menudo metáforas médicas, también: "Este corresponde a una diferencia de 40 puntos porcentuales entre las personas en un control y condición experimental."r
Para ver si la interpretación de esqueleto dividido en mediana es sesgada, simulé una población de 1,000,000 de casos donde la población verdadera . Luego dibujé a 100 personas de esta población, calculé la "tasa correcta" de BESD (es decir, ), y luego calculé las celdas divididas medianas reales para una tabla de contingencia 2 x 2, como la descrita anteriormente para categorizar personas "correctamente". Hice esto 10,000 veces..50 + r / 2r=.38.50+r/2
Luego tomé la media y la desviación estándar de cada uno de estos vectores de 10,000 de longitud. El código:
library(MASS)
# set population params
mu <- rep(0,2)
Sigma <- matrix(.38, nrow=2, ncol=2) + diag(2)*.62
# set seed
set.seed(1839)
# generate population
pop <- as.data.frame(mvrnorm(n=1000000, mu=mu, Sigma=Sigma))
# initialize vectors
besd_correct <- c()
actual_correct <- c()
# actually break up raw data by median split, see how it works
for (i in 1:10000) {
samp <- pop[sample(1:1000000, 100),]
besd_correct[i] <- round(100*(.50 + cor(samp)[1,2]/2),0)
samp$V1_split <- ifelse(samp$V1 > median(samp$V1), 1, 0)
samp$V2_split <- ifelse(samp$V2 > median(samp$V2), 1, 0)
actual_correct[i] <- with(samp, table(V1_split==V2_split))[[2]]
}
# cells for BESD
mean(besd_correct)
100 - mean(besd_correct)
# cells for actual 2 x 2 table with median split
mean(actual_correct)
100 - mean(actual_correct)
Basado en BESD, obtenemos esta tabla, donde v1
y nos v2
referimos a variables low
y nos high
referimos a debajo y arriba de la mediana, respectivamente:
+---------+--------+---------+
| | v2 low | v2 high |
+---------+--------+---------+
| v1 low | 69 | 31 |
+---------+--------+---------+
| v1 high | 31 | 69 |
+---------+--------+---------+
Basado en hacer una división mediana con los datos en bruto, obtenemos esta tabla:
+---------+--------+---------+
| | v2 low | v2 high |
+---------+--------+---------+
| v1 low | 62 | 38 |
+---------+--------+---------+
| v1 high | 38 | 62 |
+---------+--------+---------+
Entonces, si bien alguien podría argumentar, utilizando BESD, que hay una "diferencia de 38 puntos porcentuales en control y experimental", la división mediana real tiene este número en 24.
No estoy seguro de por qué sucede esto, o si depende del tamaño de la muestra y la correlación (uno podría hacer más simulaciones para descubrirlo), creo que esto muestra que está sesgado. Me encantaría que alguien pudiera intervenir con una explicación matemática, en lugar de computacional.