En esta práctica se repasan algunos contrastes de hipótesis no paramétricos de una y dos poblaciones
Recuerda que para tener un nivel de significación a lo sumo \(\alpha\), se debe definir el procedimiento: RECHAZAR \(H_0\) si \(p\)-valor MENOR QUE \(\alpha\).
Son contrastes para decidir entre:
\[ \begin{array}{|c||c|c|c|} \hline x_i & x_1 & \cdots & x_k \\ \hline n_i & n_1 & \cdots & n_k \\ \hline \end{array} \]
\[ \left\{ \begin{array}{ll} H_0: & X \sim \begin{array}{|c||c|c|c|} \hline x_i & x_1 & \cdots & x_k \\ \hline p_i & p_1 & \cdots & p_k \\ \hline \end{array} \\ H_1: & \text{no } H_0 \end{array} \right. \]
chisq.test(x, p)
x
: vector con frecuencias de las categorías (tabla de frecuencias).p
: vector con probabilidades de las categorías (por defecto uniforme).p.value
, base de la decisión del contraste.\[ \left\{ \begin{array}{ll} H_0: & F_X = F_0 \\ H_1: & F_X \neq F_0 \end{array} \right. \]
ks.test(x, y)
x
: vector con datos de la muestra.y
: nombre (entrecomillado) de la función \(F_0\) (según esté programada en R).p.value
, base de la decisión del contraste.\[ \left\{ \begin{array}{ll} H_0: & X \text{ sigue un modelo normal} \\ H_1: & X \text{ no sigue ningún modelo normal} \end{array} \right. \]
lillie.test(x)
del package nortest
. Hay que (instalar y) cargar el paquete desde el menú.x
: vector con datos de la muestra.p.value
, base de la decisión del contraste.Asumimos que tenemos una variable aleatoria \(X\) de la que se ha extraído “secuencialmente” una muestra. Todos los datos se han obtenido de \(X\), pero no sabemos si esos datos son independientes entre sí.
Son contrastes para decidir entre:
Una racha es algo que se puede definir de varias formas:
Cuando hay verdadera aleatoriedad, no es habitual que haya rachas muy largas, ni tampoco que haya muchas rachas muy cortas. El “número de rachas” es el estadístico “sensible” a que la muestra sea aleatoria.
Los datos numéricos se tranforman en signos (según el criterio elegido), y los signos permiten contar las rachas (cada cadena máxima de signos iguales es una racha).
\[ \left\{ \begin{array}{ll} H_0: & \text{datos aleatorios, independientes entre sí} \\ H_1: & \text{datos con cierta dependencia entre sí, no aleatorios} \end{array} \right. \]
runs.test(x)
del package ‘tseries’.x
: vector con los “signos”.p.value
, base de la decisión del contraste.Si \(X\) expresa una variable aleatoria, su cuantil de orden \(p_0\) se representa por \(X_{p_0}\).
\[ \left\{ \begin{array}{ll} H_0: & X_{p_0} = x_0 \\ H_1: & X_{p_0} (\neq, <, >) x_0 \end{array} \right. \]
binom.test(x, n, p, alternative)
x
: número de signos +
(que serían datos inferiores o iguales a \(x_0\)).n
: número total de datos.p
: orden del cuantil, es decir, \(p_0\), por defecto \(0.5\).alternative
: dirección de \(H_1\) (two.sided
por defecto para \(\neq\), y atención a less
para \(>\) o greater
para \(<\)).p.value
, base de la decisión del contraste.Son contrastes para decidir si 2 ó mas poblaciones mantienen la misma distribución (variable aleatoria) o no.
Se aplica sobre las tablas de frecuencias de las muestras, por lo que deben ser cualitativas, o si no, agrUparse los datos en intervalos, para poder hacer las tablas de frecuencias.
\[ \left\{ \begin{array}{ll} H_0: & \text{misma distribución para todas} \\ H_1: & \text{no } H_0 \end{array} \right. \]
chisq.test(x, y)
.x
: puede ser una matriz con las tablas de frecuencias pegadas, o un vector con los datos de la primera variable.y
: nada (por defecto), si ‘x’ lo tiene todo, o los datos de la segunda variable.p.value
, base de la decisión del contraste.Se aplica sobre 2 poblaciones numéricas independientes.
\[ \left\{ \begin{array}{ll} H_0: & F_X = F_Y \text{ (es decir, misma distribución)} \\ H_1: & \text{no } H_0 \end{array} \right. \]
ks.test(x, y)
x
: vector con datos de una muestra.y
: vector con datos de la otra muestra.p.value
, base de la decisión del contraste.\[ \left\{ \begin{array}{ll} H_0: & \text{Me}_X = \text{Me}_Y \\ H_1: & \text{Me}_X (\neq, <, >) \text{Me}_Y \end{array} \right. \]
binom.test(x, n, p, alternative)
.x
: recuento de comparaciones +
(datos que de la primera a la segunda población aumentan).n
: número de parejas de datos.p
: dejar por defecto, \(0.5\).alternative
: dirección de \(H_1\) (two.sided
por defecto para \(\neq\), y atención a less
para \(>\) o greater
para \(<\)).p.value
, base de la decisión del contraste.\[ \left\{ \begin{array}{ll} H_0: & \text{Me}_X = \text{Me}_Y \\ H_1: & \text{Me}_X (\neq, <, >) \text{Me}_Y \end{array} \right. \]
wilcox.test(x, y, alternative, paired)
.x
: datos de 1 muestra, o ya las diferencias (si no se pone nada en y
).y
: datos de la otra muestra (o nada si van las diferencias en x
).paired
: poner a TRUE
(ya que por defecto está a FALSE
).alternative
: dirección de \(H_1\) (two.sided
por defecto para \(\neq\), y atención a less
para \(>\) o greater
para \(<\)).p.value
, base de la decisión del contraste.\[ \left\{ \begin{array}{ll} H_0: & \text{Me}_X = \text{Me}_Y \\ H_1: & \text{Me}_X (\neq, <, >) \text{Me}_Y \end{array} \right. \]
wilcox.test(x, y, alternative, paired)
.x
: datos de 1 muestra, o ya las diferencias (si no se pone nada en y
).y
: datos de la otra muestra, o nada si van las diferencias en x
).paired
: dejar su valor por defecto (FALSE
).alternative
: dirección de \(H_1\) (two.sided
por defecto para \(\neq\), y atención a less
para \(>\) o greater
para \(<\)).p.value
, base de la decisión del contraste.Se deben contestar respondiendo a lo que se pregunta con palabras relativas al enunciado (prohibido mencionar \(H_0\) o \(H_1\) en las respuestas finales).
Carga el espacio de trabajo mt1021-1415-labo-s1-data.RData
. En él están definidas ciertas variables para resolver los ejercicios
7.1. Simula 50 datos de un dado imperfecto definido por la tabla
X 1 2 3 4 5 6
f(X) 0.15 0.13 0.20 0.15 0.17 0.20
y luego contrasta si esa muestra es compatible con un dado perfecto, comentando el resultado, refiriendo al nivel de significación que se pueda utilizar. Usa alguna semilla para la simulación.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
7.2. Averigua si los datos de la variable ‘x72’ son compatibles con el modelo de Poisson de media 2.5, comentando el resultado, refiriendo al nivel de significación que se pueda utilizar.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
7.3. Simula 30 datos del modelo uniforme en el intervalo (0,1) y luego contrasta si esa muestra es compatible con el modelo normal de media 0.5 y varianza 0.25, comentando el resultado, refiriendo al nivel de significación que se pueda utilizar. Usa alguna semilla para la simulación.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
7.4. Contrasta si los datos de la variable ‘x74’ son compatibles con el modelo normal de media 5 y varianza 1, comentando el resultado, refiriendo al nivel de significación que se pueda utilizar.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
7.5. En caso de incompatibilidad en el ejercicio anterior, ¿se podría admitir al menos que los datos de la variable ‘x74’ son compatibles con el modelo normal? Comenta el resultado, refiriendo al nivel de significación que se pueda utilizar.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
7.6. Sospechando sobre la falta de independencia entre las observaciones sucesivas de una variable aleatoria, se compara cada dato con el anterior, dando lugar a la cadena de signos de la variable ‘x76’. Realiza un contraste que arroje luz sobre este asunto. Comenta el resultado, refiriendo al nivel de significación que se pueda utilizar.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
7.7. La mediana de la distribución de salarios en España se suponía de 650 EUR. Se sospecha que con la crisis ha disminuido. Se muestrea la población resultando los datos de la variable ‘x77’. Comenta el resultado, refiriendo al nivel de significación que se pueda utilizar.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
7.8. Contrasta si las distribuciones de usuarios de Windows, Linux y Mac son prácticamente la mismas en los grados A, B, C y D de la UJI. Los datos, para cada grado, vienen en la variables ‘x78A’, ‘x78B’, ‘x78C’ y ‘x78D’ respectivamente. Comenta el resultado, refiriendo al nivel de significación que se pueda utilizar.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
7.9. Contrasta si se puede asumir o no que los datos de dos grupos de población A y B, muestreados y almacenados en las variables ‘x79A’ y ‘x79B’, siguen la misma distribución de probabilidad o no. Comenta el resultado, refiriendo al nivel de significación que se pueda utilizar.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
7.10. Un grupo de personas prueba dos versiones de una pizza que la empresa fabricante quiere comercializar (A y B). Para determinar si hay alguna de las dos que es fuertemente preferida sobre la otra, pide que cada uno se pronuncie sobre la que le ha gustado más. Los resultados están en la variable ‘x710’. La pizza A es la que se comercializa actualmente, y la B es una variante para sustituir a la A, si es sensiblemente mejor para el público ¿Qué resulta de la prueba experimental? Comenta el resultado, refiriendo al nivel de significación que se pueda utilizar.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
7.11. Un grupo de personas prueba dos versiones de una pizza que la empresa fabricante quiere comercializar (A y B). Para determinar si hay alguna de las dos que es fuertemente preferida sobre la otra, pide que cada uno valore su calidad de 0 a 10. Los resultados están en la variable ‘x711’. La pizza A es la que se comercializa actualmente, y la B es una variante para sustituir a la A si es sensiblemente mejor para el público ¿Qué resulta de la prueba experimental? Comenta el resultado, refiriendo al nivel de significación que se pueda utilizar.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
7.12. Un grupo de personas se divide en dos subgrupos, cada uno de los cuales está destinado a probar una versión de pizza que la empresa fabricante quiere comercializar (A y B). Para determinar si hay alguna de las dos que es fuertemente preferida sobre la otra, pide que cada uno valore su calidad de 0 a 10. Los resultados están en las variables ‘x712A’ y ‘x712B’. La pizza A es la que se comercializa actualmente, y la B es una variante para sustituir a la A si es sensiblemente mejor para el público ¿Qué resulta de la prueba experimental? Comenta el resultado, refiriendo al nivel de significación que se pueda utilizar.
# Escribe aquí tu codigo y compila con RStudio CTRL+SHIFT+K
# verás la salida de R
8.1. Implementa una función que realice el contraste de aleatoriedad (por rachas) para muestras pequeñas, según la estructura que se propone
runs.test = function(x, type='median') {
# Argumentos:
# x: vector de datos numéricos o signos
# type: forma de obtener los signos a partir de los datos
# "median" por comparación con mediana (por defecto)
# "trend" por comparación de cada dato con el anterior
# si `x` son signos ya no hay que hacer caso a `type`
# Devuelve: el número de rachas y su p-valor
# bloque 1: comprobar si `x` son signos o números
# bloque 2: construir cadena de signos (si procede)
# bloque 3: calcular número de rachas
# bloque 4: calcular su p-valor. Si hay más de 20 signos de
# cada tipo, usar aprox. normal (busca fórmula en teoría)
# y si no, la distribución exacta (busca fórmula en teoría)
# Al final:
# return(list(R=, p.value=))
# donde `R` es el valor del estadístico y
# `p.value` su p-valor
}