Saltar al contenido principal
LibreTexts Español

7.5: Uso de R para pruebas de significancia y análisis de varianza

  • Page ID
    69332
  • \( \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}}\)

    La instalación base de R tiene funciones para la mayoría de las pruebas de significación cubiertas en el Capítulo 7.2 - Capítulo 7.4.

    Uso de R para comparar varianzas

    La función R para comparar varianzas es var.test () que toma la siguiente forma

    var.test (x, y, ratio = 1, alternativa = c (“dos.sided”, “menos”, “mayor”), conf.level = 0.95,...)

    donde x e y son vectores numéricos que contienen las dos muestras, ratio es la relación esperada para la hipótesis nula (que por defecto es 1), alternativa es una cadena de caracteres que establece la hipótesis alternativa (que por defecto es de dos caras o dos colas), y un nivel conf.level que da el tamaño del intervalo de confianza, que por defecto es 0.95, o 95%, o\(\alpha = 0.05\). Podemos usar esta función para comparar las varianzas de dos muestras,\(s_1^2\) vs\(s_2^2\), pero no la varianza de una muestra y la varianza para una población\(s^2\) vs\(\sigma^2\).

    Usemos R en los datos del Ejemplo 7.2.3, que considera dos juegos de centavos de Estados Unidos.

    # crear vectores para almacenar los datos

    muestra1 = c (3.080, 3.094, 3.107, 3.056, 3.112, 3.174, 3.198)

    muestra2 = c (3.052, 3.141, 3.083, 3.083, 3.048)

    # ejecutar prueba de varianza de dos lados con alfa = 0.05 y nula hipótesis de que las varianzas son iguales

    var.test (x = muestra1, y = muestra2, relación = 1, alternativa = “dos.caras”, conf.nivel = 0.95)

    El código anterior produce la siguiente salida

    Prueba F para comparar dos varianzas

    datos: muestra1 y muestra2

    F = 1.8726, num df = 6, denom df = 4, valor p = 0.5661

    hipótesis alternativa: la relación verdadera de varianzas no es igual a 1

    Intervalo de confianza del 95 por ciento:

    0.2036028 11.6609726

    estimaciones muestrales: relación de varianzas

    1.872598

    Dos partes de esta salida nos llevan a retener la hipótesis nula de varianzas iguales. Primero, el valor p reportado de 0.5661 es mayor que nuestro valor crítico para\(\alpha\) de 0.05, y segundo, el intervalo de confianza del 95% para la relación de las varianzas, que va de 0.204 a 11.7 incluye la hipótesis nula de que es 1.

    R no incluye una función\(s^2\) para comparar con\(\sigma^2\).

    Uso de R para comparar medias

    La función R para comparar medias es t.test () y toma la siguiente forma

    t.test (x, y = NULL, alternativa = c (“dos.sided”, “menos”, “mayor”), mu = 0,

    pareado = FALSO, var.igual = FALSO, conf.level = 0.95,...)

    donde x es un vector numérico que contiene los datos de una muestra e y es un vector opcional que contiene datos para una segunda muestra, alternativa es una cadena de caracteres que establece la hipótesis alternativa (que por defecto es de dos colas), mu es el la media esperada de la población o la diferencia esperada en las medias de las dos muestras, emparejado es un valor lógico que indica si los datos están emparejados, var.equal es un valor lógico que indica si las varianzas para dos muestras se tratan como iguales o desiguales (basado en un prior var.test ()), y conf.level da el tamaño del intervalo de confianza (que por defecto es 0.95, o 95%, o\(\alpha = 0.05\)).

    Uso de R para comparar\(\overline{X}\) con\(\mu\)

    Usemos R en los datos del Ejemplo 7.2.1, que considera la determinación del\(\% \text{Na}_2 \text{CO}_3\) en una muestra estándar que se sabe que es 98.76% w/w\(\text{Na}_2 \text{CO}_3\).

    # crear vector para almacenar los datos

    Na2co3 = c (98.71, 98.59, 98.62, 98.44, 98.58)

    # ejecutar una prueba t de dos caras, usando mu para definir la media esperada; porque los valores predeterminados

    # para emparejados y var.equal son FALSOS, podemos omitirlos aquí

    t.test (x = Na2CO3, alternativa = “dos lados”, mu = 98.76, conf.nivel = 0.95)

    El código anterior produce la siguiente salida

    Prueba t de una muestra

    datos: Na2CO3

    t = -3.9522, df = 4, valor p = 0.01679

    hipótesis alternativa: la media verdadera no es igual a 98.76

    Intervalo de confianza del 95 por ciento:

    98.46717 98.70883

    estimaciones de la muestra:

    media de x

    98.588

    Dos partes de esta salida nos llevan a rechazar la hipótesis nula de varianzas iguales. Primero, el valor p reportado de 0.01679 es menor que nuestro valor crítico para\(\alpha\) de 0.05, y segundo, el intervalo de confianza de 95% para la media experimental de 98.588, que va de 98.467 a 98.709, no incluye la hipótesis nula de que es 98.76.

    Uso de R para comparar medias para dos muestras

    Al comparar las medias para dos muestras, tenemos que tener cuidado de considerar si los datos están desapareados o emparejados, y para los datos no emparejados debemos determinar si podemos juntar las varianzas para las dos muestras.

    Datos no emparejados

    Usemos R en los datos del Ejemplo 7.2.4, que considera dos juegos de centavos de Estados Unidos. Estos datos están desapareados y, como mostramos anteriormente, no hay evidencia que sugiera que las varianzas de las dos muestras sean diferentes.

    # crear vectores para almacenar los datos

    muestra1 = c (3.080, 3.094, 3.107, 3.056, 3.112, 3.174, 3.198)

    muestra2 = c (3.052, 3.141, 3.083, 3.083, 3.048)

    # ejecutar una prueba t de dos lados, estableciendo mu en 0 como la hipótesis nula es que las medias son las mismas, y estableciendo var.equal a TRUE

    t.test (x = muestra1, y = muestra2, alternativa = “dos.caras”, mu = 0, var.igual = VERDADERO, conf.level = 0.95)

    El código anterior produce la siguiente salida

    Prueba t de dos muestras

    datos: muestra1 y muestra2

    t = 1.3345, df = 10, valor p = 0.2116

    hipótesis alternativa: la verdadera diferencia en medias no es igual a 0

    Intervalo de confianza del 95 por ciento:

    -0.02403040 0.09580182

    estimaciones de la muestra:

    media de x media de y

    3.117286 3.081400

    Dos partes de esta salida nos llevan a retener la hipótesis nula de medias iguales. Primero, el valor p reportado de 0.2116 es mayor que nuestro valor crítico para\(\alpha\) de 0.05, y segundo, el intervalo de confianza del 95% para la diferencia en las medias experimentales, que va de -0.0240 a 0.0958, incluye la hipótesis nula de que es 0.

    Datos emparejados

    Usemos R en los datos del Ejemplo 7.2.1, que compara dos métodos para determinar la concentración del antibiótico monensina en cubas de fermentación.

    # crear vectores para almacenar los datos

    microbiológico = c (129.5, 89.6, 76.6, 52.2, 110.8, 50.4, 72.4, 141.4, 75.0, 34.1, 60.3)

    electroquímico = c (132.3, 91.0, 73.6, 58.2, 104.2, 49.9, 82.1, 154.1, 73.4, 38.1, 60.1)

    # ejecutar una prueba t de dos colas, estableciendo mu en 0 ya que la hipótesis nula es que las medias son las mismas, y estableciendo emparejado a TRUE

    t.test (x = microbiológico, y = electroquímico, alternativa = “de dos lados”, mu = 0, emparejado = VERDADERO, conf.nivel = 0.95)

    El código anterior produce la siguiente salida

    Prueba t pareada

    datos: microbiológicos y electroquímicos

    t = -1.3225, df = 10, valor p = 0.2155

    hipótesis alternativa: la verdadera diferencia en medias no es igual a 0

    Intervalo de confianza del 95 por ciento:

    -6.028684 1.537775

    estimaciones de la muestra:

    media de las diferencias

    -2.245455

    Dos partes de esta salida nos llevan a retener la hipótesis nula de medias iguales. Primero, el valor p reportado de 0.2155 es mayor que nuestro valor crítico para\(\alpha\) de 0.05, y segundo, el intervalo de confianza del 95% para la diferencia en la media experimental, que va de -6.03 a 1.54, incluye la hipótesis nula de que es 0.

    Uso de R para detectar valores atípicos

    La instalación base de R no incluye pruebas de valores atípicos, pero el paquete de valores atípicos proporcionó funciones para la prueba Q de Dixon y la prueba de Grubb. Para instalar el paquete, utilice las siguientes líneas de código

    install.packages (“valores atípicos”)

    biblioteca (valores atípicos)

    Solo necesitas instalar el paquete una vez, pero debes usar library () para que el paquete esté disponible cuando comiences una nueva sesión R.

    Prueba Q de Dixon

    La función R para la prueba Q de Dixon es dixon.test () y toma la siguiente forma

    dixon.test (x, tipo, dos.sided)

    donde x es un vector numérico con los datos que estamos considerando, type define el (los) valor (s) específico (es) que estamos probando (usaremos type = 10, que prueba para un único valor atípico en cualquiera de los extremos de los datos clasificados), y dos.sided, lo que indica si usamos un prueba de una o dos colas (usaremos dos.sided = FALSO ya que nos interesa si el valor más pequeño es demasiado pequeño o el valor más grande es demasiado grande).

    Usemos R en los datos del Ejemplo 7.2.7, que considera las masas de un conjunto de centavos de Estados Unidos.

    penique = c (3.067, 2.514, 3.094, 3.049, 3.048, 3.109, 3.039, 3.079, 3.102)

    dixon.test (x = centavo, dos.caras = FALSO, tipo = 10)

    El código anterior produce la siguiente salida

    Prueba de Dixon para valores atípicos

    data: penique Q = 0.88235, valor p < 2.2e-16

    hipótesis alternativa: el valor más bajo 2.514 es un valor atípico

    El valor p reportado menor que\(2.2 \times 10^{-16}\) es menor que nuestro valor crítico para\(\alpha\) de 0.05, lo que sugiere que el centavo con una masa de 2.514 g se extrae de una población diferente a la de los otros centavos.

    Prueba de Grubb

    La función R para la prueba de Grubb es grubbs.test () y toma la siguiente forma

    gurbbs.test (x, tipo, dos.caras)

    donde x es un vector numérico con los datos que estamos considerando, type define el (los) valor (s) específico (es) que estamos probando (usaremos type = 10, que prueba para un único valor atípico en cualquiera de los extremos de los datos clasificados), y dos.sided, que indicaba si usamos un prueba de una o dos colas (usaremos dos.sided = FALSO ya que nos interesa si el valor más pequeño es demasiado pequeño o el valor más grande es demasiado grande).

    Usemos R en los datos del Ejemplo 7.2.7, que considera las masas de un conjunto de centavos de Estados Unidos.

    penique = c (3.067, 2.514, 3.094, 3.049, 3.048, 3.109, 3.039, 3.079, 3.102)

    grubbs.test (x = centavo, dos.caras = FALSO, tipo = 10)

    El código anterior produce la siguiente salida

    Prueba de Grubbs para un valor atípico

    datos: penny

    G = 2.64300, U = 0.01768, valor p = 9.69e-07

    hipótesis alternativa: el valor más bajo 2.514 es un valor atípico

    El valor p reportado de\(9.69 \times 10^{-7}\) es menor que nuestro valor crítico para\(\alpha\) de 0.05, lo que sugiere que el centavo con una masa de 2.514 g se extrae de una población diferente a la de los otros centavos.

    Uso de R para completar pruebas de significancia no paramétricas

    La función R para completar la prueba de rango firmado de Wilcoxson y la prueba de suma de rangos de Wilcoxson es wilcox.test (), que toma la siguiente forma

    wilcox.test (x, y = NULL, alternativa = c (“dos.sided”, “menos”, “mayor”), mu = 0,

    pareado = FALSO, conf.nivel = 0.95,...)

    donde x es un vector numérico que contiene los datos de una muestra e y es un vector opcional que contiene datos para una segunda muestra, alternativa es una cadena de caracteres que establece la hipótesis alternativa (que por defecto es de dos colas), mu es el la media esperada de la población o la diferencia esperada en las medias de las dos muestras, emparejado es un valor lógico que indica si los datos están emparejados, y conf.level da el tamaño del intervalo de confianza (que por defecto es 0.95, o 95%, o\(\alpha = 0.05\)).

    Uso de R para completar una prueba de rango firmado de Wilcoxson

    Usemos R en los datos del Ejemplo 7.3.1, que compara dos métodos para determinar la concentración del antibiótico monensina en cubas de fermentación.

    # crear vectores para almacenar los datos

    microbiológico = c (129.5, 89.6, 76.6, 52.2, 110.8, 50.4, 72.4, 141.4, 75.0, 34.1, 60.3)

    electroquímico = c (132.3, 91.0, 73.6, 58.2, 104.2, 49.9, 82.1, 154.1, 73.4, 38.1, 60.1)

    # ejecutar una prueba de rango firmado de wilcoxson de dos colas, estableciendo mu en 0 ya que la hipótesis nula es que

    # las medias son las mismas y la configuración emparejada a VERDADERO

    wilcox.test (x = microbiológico, y = electroquímico, alternativa = “dos.caras”, mu = 0, pareado = VERDADERO, conf.nivel = 0.95)

    El código anterior produce la siguiente salida

    Wilcoxon firmó prueba de rango

    datos: microbiológicos y electroquímicos

    V = 22, valor p = 0.3652

    hipótesis alternativa: el verdadero desplazamiento de ubicación no es igual a 0

    donde el valor V es el menor de los dos rangos firmados. El valor p reportado de 0.3652 es mayor que nuestro valor crítico para\(\alpha\) de 0.05, lo que significa que no tenemos evidencia que sugiera que existe una diferencia entre los valores medios para los dos métodos.

    Uso de R para completar una prueba de suma de rangos de Wilcoxson

    Usemos R en los datos del Ejemplo 7.3.2, que compara dos métodos para determinar la cantidad de aspirina en tabletas de dos lotes de producción.

    # crear vectores para almacenar los datos

    lot1 = c (256, 248, 245, 244, 248, 261)

    lot2= c (241, 258, 241, 256, 254)

    # ejecutar una prueba de rango firmado de wilcoxson de dos colas, estableciendo mu en 0 ya que la hipótesis nula es

    # que las medias son las mismas, y estableciendo emparejado a TRUE

    wilcox.test (x = lot1, y = lot2, alternativa = “dos.sided”, mu = 0, pareado = FALSO, conf.level = 0.95)

    El código anterior produce la siguiente salida

    Prueba de suma de rangos de Wilcoxon con corrección de continuidad

    datos: lot1 y lot2

    W = 16.5, valor p = 0.8541

    hipótesis alternativa: el verdadero desplazamiento de ubicación no es igual a 0

    Mensaje de advertencia:

    En wilcox.test.default (x = lot1, y = lot2, alternative = “dos.sided”,: no se puede calcular el valor p exacto con lazos

    donde el valor W es la mayor de las dos sumas clasificadas. El valor p reportado de 0.8541 es mayor que nuestro valor crítico para\(\alpha\) de 0.05, lo que significa que no tenemos evidencia que sugiera que existe una diferencia entre los valores medios para los dos métodos. Nota: podemos ignorar el mensaje de advertencia aquí ya que nuestro valor calculado para p es muy grande en relación con un\(\alpha\) de 0.05.

    Uso de R para completar un análisis de varianza

    Usemos los datos del Ejemplo 7.3.1 para mostrar cómo completar un análisis de varianza en R. Primero, necesitamos crear vectores numéricos individuales para cada tratamiento y luego combinar estos vectores en un solo vector numérico, al que llamaremos recuperación, que contenga los resultados para cada tratamiento.

    a = c (101, 101, 104)

    b = c (100, 98, 102)

    c = c (90, 92, 94)

    recuperación = c (a, b, c)

    También necesitamos crear un vector de cadenas de caracteres que identifique los tratamientos individuales para cada elemento en la recuperación del vector.

    tratamiento = c (rep (“a”, 3), rep (“b”, 3), rep (“c”, 3))

    La función R para completar un análisis de varianza es aov (), que toma la siguiente forma

    aov (fórmula,...)

    donde fórmula es una forma de decirle a R que “explique esta variable usando esa variable”. Examinaremos las fórmulas con más detalle en el Capítulo 8, pero en este caso la sintaxis es recuperación ~ tratamiento, lo que significa modelar la recuperación con base en el tratamiento. En el siguiente código, asignamos la salida de la función aov () a una variable para que tengamos acceso a los resultados del análisis de varianza

    aov_output = aov (recuperación ~ tratamiento)

    a través de la función summary ()

    summary (aov_output)

    Df Suma Cuadrados Media Sq Valor F Pr (>F)

    tratamiento 2 168 84.00 22.91 0.00155 **

    Residuales 6 22 3.67

    — Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 '' 1

    Tenga en cuenta que lo que antes llamamos la varianza entre varianza se identifica aquí como la varianza debida a los tratamientos, y que antes llamamos la varianza interna se identifica como la varianza residual. Como vimos en el Ejemplo 7.3.1, el valor para F exp es significativamente mayor que el valor crítico para F at\(\alpha = 0.05\).

    Habiendo encontrado evidencia de que existe una diferencia significativa entre los tratamientos, podemos usar la función TukeyHSD () de R para identificar la (s) fuente (es) de esa diferencia (HSD significa Diferencia Honesta Significativa), que toma la forma general

    TukeyHSD (x, conf.nivel = 0.95,...)

    donde x es un objeto que contiene los resultados de un análisis de varianza.

    TukeyHSD (salida aov_)

    Tukey comparaciones múltiples de medias

    95% de nivel de confianza familiar

    Ajuste: aov (fórmula = recuperación ~ tratamiento)

    $tratamiento

    diff lwr upr p adj

    b-a -2 -6.797161 2.797161 0.4554965

    c-a -10 -14.797161 -5.202839 0.0016720

    c-b -8 -12.797161 -3.202839 0.0052447

    La tabla al final de la salida muestra, para cada par de tratamientos, la diferencia en sus valores medios, los valores inferior y superior para el intervalo de confianza sobre la media, y el valor para\(\alpha\), que en R se enumera como un valor p ajustado, para lo cual podemos rechazar el nulo hipótesis de que las medias son idénticas. En este caso, podemos ver que los resultados para el tratamiento C son significativamente diferentes de ambos tratamientos A y B.

    También podemos ver los resultados del análisis de TukeyHSD visualmente pasándolo a la función plot () de R.

    plot (TukeyHSD (aov_output))

    clipboard_efb74f4ba69090fcd0358d3b224ac5960.png
    Figura\(\PageIndex{1}\): Gráfica de los resultados de TukeyHSD. Los segmentos horizontales muestran el límite inferior y el límite superior para el intervalo de confianza sobre la diferencia entre los valores medios para cada par de tratamientos. La línea discontinua vertical muestra una diferencia de cero. Aquellos pares de tratamientos con intervalos de confianza que no incluyen una diferencia de cero son significativamente diferentes entre sí. Aquí vemos evidencia de que el tratamiento C es significativamente diferente de ambos tratamientos A y B, pero no hay evidencia de que los tratamientos A y B sean significativamente diferentes entre sí.


    This page titled 7.5: Uso de R para pruebas de significancia y análisis de varianza is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by David Harvey.