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.Length ~ 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,Cambia el siguiente bloque a eval=TRUE
para que cargue
los datos necesarios.
# despeja esta linea cuando tengas el archivo
load("mt1021-2021-la-5-anova.RData")
ls()
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 entre 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”?