Se quiere comparar la velocidad de tres algoritmos A, B y C para procesar imágenes. Se les pasa una batería de 10 imágenes, las procesan y se anota el tiempo que han tardado con cada una. Los tiempos medios por algoritmo son:
Algoritmo | Tiempo medio |
---|---|
A | 5.1 |
B | 5.0 |
C | 4.9 |
El algoritmo C ha sido “globalmente” más rápido con la muestra de imágenes, ¿pero lo seguirá siendo a largo plazo? Veamos dos situaciones extremas con esos valores medios:
CONCLUSIÓN: SE BUSCA TÉCNICA “OBJETIVA” (JUSTIFICADA ESTADÍSTICAMENTE) QUE PERMITA COMPARAR Y DECIDIR SOBRE SI LOS PROMEDIOS DE MÁS DE 2 POBLACIONES SON SIGNIFICATIVAMENTE DISTINTOS O NO (A PARTIR DE OBSERVAR MUESTRAS DE ELLAS). ES DECIR, QUE PERMITA DECIDIR ENTRE:
a
, b
,…). Letras compartidas por niveles del factor \(X\) significa que las medias de \(Y\) no son lo bastante diferentes.c()
.c(rep("x1", 10), rep("x2", 30),...)
.factor
en R. Comprobarlo con la función str()
aplicada a la hoja de datos, y si no lo es, forzarlo con la función factor()
. Por ejemplo: data.frame(X=factor(vectornivelesX), Y=vectordatosY)
boxplot(formula, data)
realiza cajas de la variable dependiente separada por niveles de la variable (o variables) independientes.formula
: expresión de la forma y ~ x
o bien y ~ x1 + x2
donde y
es la etiqueta de la columna numérica (dependiente) y x
(o x1
y x2
) es la etiqueta de la columna factor (independiente) que hace la separación en grupos.data
: hoja de datos con las columnas referidas en la formula
.boxplot(formula=Sepal.Lengty ~ Species, data=iris)
boxplot(formula=vocab~nativeBorn, data=carData::GSSvocab)
boxplot(formula=vocab~nativeBorn+gender, data=carData::GSSvocab)
aggregate(formula, data, FUN)
formula
: expresión de la forma y ~ x
o bien y ~ x1 + x2
donde y
es la etiqueta de la columna numérica (dependiente) y x
(o x1
y x2
) es la etiqueta de la columna factor (independiente) que hace la separación en grupos.data
: hoja de datos con las columnas referidas en la formula
.FUN
: función a calcular sobre los datos de la columna y
para cada grupo indicado por la columna x
(o columnas x1
y x2
)aggregate(formula=Sepal.Lengty ~ Species, data=iris, FUN="mean")
aggregate(formula=Sepal.Lengty ~ Species, data=iris, FUN="sd")
aggregate(formula=vocab~nativeBorn+gender, data=carData::GSSvocab, FUN="mean")
aov()
y luego summary()
aov( formula, data,... )
:
formula
: expresión que indica, primero, la variable depemndiente, después el símbolo ~
(que indica la dependencia), y después la (o las) variables factor, de la forma:
y ~ x
, en el modelo de un factory ~ x1 + x2
, en el modelo de dos factores sin interacción,y ~ x1 * x2
, en el modelo de dos factores con interacción,data
: si los datos están en dos vectores suelto, no utilizar. Si los datos están en dos columnas de una hoja de datos, poner el nombre de la hoja de datos.anova(object)
:
object
, el objeto devuelto por aov()
Df
), las sumas de cuadrados (Sum Sq
) inter (con el nombre de cada factor) e intra (con el nombre Residuals
), las medias de cuadrados (Mean Sq
), el valor (o valores) del estadístico de contraste (F
) para cada factor, y su \(p\)-valor (Pr(>F)
). Si se quiere acceder al \(p\)-valor exacto, poner anova(object)[1,5]
(etc.)interaction.plot(x.factor, trace.factor, response,...)
.x.factor
: columna de datos del factor (cuyos niveles formarán el eje x).trace.factor
: columna de datos del otro factor.response
: columna de datos de la variable respuesta \(Y\).shapiro.test()
y ver si se acepta la hipótesis nula, que es la normalidadaov()
), hacerle un plot()
, cuya figura Normal Q-Q
(la segunda), relaciona los cuantiles teóricos de la normal con los de los errores estimados y:
bartlett.test(formula, data)
o bien bartlett.test(x,...)
:
formula
: la misma que en aov()
data
: el mismo que aov()
x,...
: los vectores con los datos de \(Y\) para los diversos niveles del factor \(X\)aov()
), hacerle un plot()
, cuya figura Residuals vs Factor Levels
(la cuarta) muestra las desviaciones de los datos respecto de la media del nivel, permitiendo comparar las varianzas (amplitud vertical de los puntos).LSD.test(y, trt, alpha, console)
, perteneciente al paquete agricolae
, que se debe cargar (e instalar si no lo está).y
: objeto devuelto por la función aov()
.trt
: nombre (etiqueta entrecomillada) del factor (la \(X\)) o vector de nombres de los factores si hay varios.alpha
: nivel de significación deseado (\(0.05\) por defecto).console
: poner a TRUE si se quiere ver en la R Console el resultado.a
, b
, etc.) asignado por valor de media,Carga el espacio de trabajo mt1021-2021-la-5-anova.RData
, y en él encontrarás las variables que necesitas para los ejercicios.
# despeja esta linea cuando tengas el archivo
#load("mt1021-1415-la-4-anova.RData")
La variable tiempos
recoge los tiempos de realización de una misma tarea informática de varios operadores (de características muy similares) bajo 3 sistemas operativos, para comparar sobre cuál es más rápida.
# Escribe aquí el codigo R de lo que se pide
Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN
# Escribe aquí el codigo R de lo que se pide
Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN
# Escribe aquí el codigo R de lo que se pide
Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN
# Escribe aquí el codigo R de lo que se pide
Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN
# Escribe aquí el codigo R de lo que se pide
Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN
Las variables prodA
, prodB
, prodC
y prodD
recogen la producción (en miles de unidades) de 4 líneas en las que se aplican métodos distintos (A
, B
, C
y D
) que se quieren comparar. A partir de ellos crea una única hoja de datos que reúna todos los datos, con dos columnas bien emparejadas: metodo
(que indique el método usado, "A"
, "B"
, "C"
o "D"
), y prod
que tenga los datos de la producción. Repite todos los apartados del problema anterior.
# Escribe aquí el codigo R de lo que se pide
Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN
# Escribe aquí el codigo R de lo que se pide
Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN
# Escribe aquí el codigo R de lo que se pide
Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN
# Escribe aquí el codigo R de lo que se pide
Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN
# Escribe aquí el codigo R de lo que se pide
Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN
La variable Test
recoge las puntuaciones en una prueba nacional tipo test de vocabulario con 10 preguntas. Analiza si los factores género ( Gender
) y nivel educativo (educGroup
) tienen separadamente y/o conjuntamente un efecto diferenciador sobre la puntuación media en el test (columna vocab
). Estudia la posible interacción enter los factores.
# Escribe aquí el codigo R de lo que se pide
Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN
set.seed()
pvalor
donde vas a guardar 10000 p-valores de 10000 aplicaciones del ANOVA, que harás en un bucle for
pvalor
# aqui la programacion
2.1. En el modelo ANOVA programado, ¿\(Y\) depende de \(X\)? ¿Por qué?
AQUÍ TU RESPUESTA, NO VALE SI NO SE RAZONA
2.2. Si hubieras usado una significación del 5% con las 10000 muestras simuladas, ¿en qué porcentaje de ellas te habría resultado “rechazar que las medias de \(Y\) son iguales”?