Saltar al contenido principal
LibreTexts Español

12.8: La prueba McNemar

  • Page ID
    151274
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Supongamos que te han contratado para trabajar para el Partido Político Genérico Australiano (AGPP), y parte de tu trabajo es averiguar qué tan efectivos son los anuncios políticos de AGPP. Entonces, lo que haces, es armar una muestra de N=100 personas, y pedirles que vean los anuncios de AGPP. Antes de que vean algo, les preguntas si pretenden votar por la AGPP; y luego después de mostrar los anuncios, les vuelves a preguntar, para ver si alguien ha cambiado de opinión. Obviamente, si eres bueno en tu trabajo, también harías muchas otras cosas también, pero consideremos solo este simple experimento. Una forma de describir sus datos es a través de la siguiente tabla de contingencia:

    Antes Después Total
    30 10 40
    No 70 90 160
    Total 100 100 200

    Al primer paso, se podría pensar que esta situación se presta a la prueba de independencia de Pearson χ2 (según la Sección 12.2). No obstante, un poco de pensamiento revela que tenemos un problema: tenemos 100 participantes, pero 200 observaciones. Esto se debe a que cada persona nos ha proporcionado una respuesta tanto en la columna antes como en la columna después. Lo que esto significa es que las 200 observaciones no son independientes entre sí: si el votante A dice “sí” la primera vez y el elector B dice “no”, entonces se esperaría que el votante A tenga más probabilidades de decir “sí” la segunda vez que el elector B! La consecuencia de esto es que la prueba habitual de χ2 no dará respuestas confiables debido a la violación del supuesto de independencia. Ahora bien, si esta fuera una situación muy poco común, no me molestaría en perder el tiempo hablando de ello. Pero no es raro en absoluto: se trata de un diseño estándar de medidas repetidas, y ninguna de las pruebas que hemos considerado hasta ahora puede manejarlo. Eek.

    La solución al problema fue publicada por McNemar (1947). El truco es comenzar tabulando tus datos de una manera ligeramente diferente:

    Antes: Sí Antes: No Total
    Después: Sí 5 5 10
    Después: No 25 65 90
    Total 30 70 100

    Estos son exactamente los mismos datos, pero se han reescrito para que cada uno de nuestros 100 participantes aparezca en una sola celda. Debido a que hemos escrito nuestros datos de esta manera, el supuesto de independencia ahora está satisfecho, y esta es una tabla de contingencia que podemos usar para construir una estadística de bondad de ajuste X 2. No obstante, como veremos, tenemos que hacerlo de una manera ligeramente no estándar. Para ver lo que está pasando, ayuda etiquetar las entradas en nuestra tabla de manera un poco diferente:

    Antes: Sí Antes: No Total
    Después: Sí a b a+b
    Después: No c d c+d
    Total a+c b+d n

    A continuación, pensemos cuál es nuestra hipótesis nula: es que la prueba del “antes” y la prueba del “después” tienen la misma proporción de personas que dicen “Sí, votaré por AGPP”. Debido a la forma en que hemos reescrito los datos, significa que ahora estamos probando la hipótesis de que los totales de fila y los totales de columna provienen de la misma distribución. Así, la hipótesis nula en la prueba de McNemar es que tenemos “homogeneidad marginal”. Es decir, los totales de fila y los totales de columna tienen la misma distribución: P a +P b =P a +P c, y de manera similar que P c +P d =P b +P d. Observe que esto significa que la hipótesis nula en realidad simplifica a P b =P c. En otras palabras, en lo que respecta a la prueba McNemar, ¡son solo las entradas fuera de la diagonal en esta tabla (es decir, b y c) las que importan! Después de darse cuenta de esto, la prueba McNemar de homogeneidad marginal no es diferente a una prueba habitual de χ2. Después de aplicar la corrección de Yates, nuestro estadístico de prueba se convierte en:

    \(X^{2}=\dfrac{(|b-c|-0.5)^{2}}{b+c}\)

    o, para volver a la notación que usamos anteriormente en este capítulo:

    \(X^{2}=\dfrac{\left(\left|O_{12}-O_{21}\right|-0.5\right)^{2}}{O_{12}+O_{21}}\)

    y este estadístico tiene una distribución (aproximadamente) χ2 con df=1. Sin embargo, recuerde que —al igual que las otras pruebas χ2— es solo una aproximación, por lo que necesita tener recuentos de celdas esperados razonablemente grandes para que funcione.

    Haciendo la prueba McNemar en R

    Ahora que ya sabes de qué se trata la prueba de McNemar, vamos a ejecutar una. El archivo AGPP.rData contiene los datos sin procesar que comenté anteriormente, así que vamos a echarle un vistazo:

    load("./rbook-master/data/agpp.Rdata")
    str(agpp)  
    ## 'data.frame':    100 obs. of  3 variables:
    ##  $ id             : Factor w/ 100 levels "subj.1","subj.10",..: 1 13 24 35 46 57 68 79 90 2 ...
    ##  $ response_before: Factor w/ 2 levels "no","yes": 1 2 2 2 1 1 1 1 1 1 ...
    ##  $ response_after : Factor w/ 2 levels "no","yes": 2 1 1 1 1 1 1 2 1 1 ...

    El marco de datos agpp contiene tres variables, una variable id que etiqueta a cada participante en el conjunto de datos (veremos por qué es útil en un momento), una variable response_before que registra la respuesta de la persona cuando se le hizo la pregunta la primera vez, y una response_after variable que muestra la respuesta que dieron cuando se les hizo la misma pregunta por segunda vez. Como de costumbre, aquí están las primeras 6 entradas:

    head(agpp)
    ##       id response_before response_after
    ## 1 subj.1              no            yes
    ## 2 subj.2             yes             no
    ## 3 subj.3             yes             no
    ## 4 subj.4             yes             no
    ## 5 subj.5              no             no
    ## 6 subj.6              no             no

    y aquí hay un resumen:

    summary(agpp) 
    ##         id     response_before response_after
    ##  subj.1  : 1   no :70          no :90        
    ##  subj.10 : 1   yes:30          yes:10        
    ##  subj.100: 1                                 
    ##  subj.11 : 1                                 
    ##  subj.12 : 1                                 
    ##  subj.13 : 1                                 
    ##  (Other) :94

    Observe que cada participante aparece sólo una vez en este marco de datos. Cuando tabulamos este marco de datos usando xtabs (), obtenemos la tabla apropiada:

    right.table <- xtabs( ~ response_before + response_after, data = agpp)
    print( right.table )
    ##                response_after
    ## response_before no yes
    ##             no  65   5
    ##             yes 25   5

    y a partir de ahí, podemos ejecutar la prueba McNemar usando la función mcnemar.test ():

    mcnemar.test( right.table )
    ## 
    ##  McNemar's Chi-squared test with continuity correction
    ## 
    ## data:  right.table
    ## McNemar's chi-squared = 12.033, df = 1, p-value = 0.0005226

    Y ya terminamos. Acabamos de hacer una prueba de McNemar para determinar si las personas tenían la misma probabilidad de votar AGPP después de los anuncios como lo eran de antes. La prueba fue significativa (χ2 (1) =12.04, p<.001), sugiriendo que no lo fueron. Y de hecho, parece que los anuncios tuvieron un efecto negativo: la gente tenía menos probabilidades de votar AGPP después de ver los anuncios. Lo cual tiene mucho sentido cuando se considera la calidad de un anuncio político típico.


    This page titled 12.8: La prueba McNemar is shared under a CC BY-SA 4.0 license and was authored, remixed, and/or curated by Danielle Navarro via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.