Escolar Documentos
Profissional Documentos
Cultura Documentos
4. ANOVA: 2 Factores
*Tan solo una rplica por condicin experimental ser un diseo por bloques
(no podemos comparar las medias, pues no hay varianza).
*Un modelo es cruzado cuando ambos factores interaccionan sobre las
mismas casillas (celdas). Cuando no est anidado; es decir, cuando todo se
cruza con todo.
Nombre.aov <- aov(Datos~Factor1*Factor2, data=Nombre) Modelo
completo con interaccin(*).
Nombre.aov <- aov(Datos~Factor1+Factor2, data=Nombre) Modelo
completo sin interaccin (+). Esto es obligatorio cuando tan solo hay una
rplica por condicin (el mismo R no te deja hacerlo).
Ahora tenemos que instalar la library(AnovaTools), y:
Anova2cross(Nombre.aov, random = Factor(es)Aleatorio(s),
restricted=T/F). **El modelo restringido es un concepto que solo se aplica a
diseos mixtos, y se basa en restringuir que el sumatorio de los efectos del
factor fijo sumen cero o no. El modelo restringido es problemtico cuando
no est balanceado, y solo se prefiere cuando observamos una correlacin
entre interacciones. En caso contrario, se utiliza el no restringido que es
ms abierto.
*Covarianza: encontrar correlacin: cmo se comporta una variable con
otra. Cuando es 1, es perfecta. Se mira entre dos replicas de la misma
condicin, o en diferentes condiciones. No lo usamos.
*Si se cumple todo, diremos que los errores cumplen las condiciones de
Gauss-Markov: ~N(0,sigma) i.i.d.
6. Comparaciones mltiples
Plot(datos~factor) De manera grfica algo se puede ver, y nos hace un
box-plot.
Se puede hacer por t.test:
Pairwise.t.test(Datos$valor, Datos$factor, p.adj =none).
Sino pasamos a diferentes test que hay que hacer para comparar todos los
pares. Lo primero es cargar el paquete agricolae.
Fisher LSD: LSD.test(nombre.aov, p.adj=c(Bonferroni/nada/holm),
console=T) Es el menos aconsejable.
Tukey HSD: HSD.test(nombre.aov, console=T)? Est bastante bien.
TukeyHSD(nombre.aov,Factor, console=T).
Ducan(rango mltiple): Duncan.test(nombre.aov, console=T) aumenta
mucho error I.
SNK: SNK.test (nombre.aov, console=T): Newman-Keules.
Scheffe: scheffe.test (nombre.aov, console=T) Bastante bien, junto con
HSD.
Comparacin con control: Dunnet. Primero cargamos librera multcomp. Y
hacemos:
Mc = glht(nombre.aov, mcp(grupo=Dunnett))
Summary(mc,test=adjusted(single-step))
Tambin: nombre.glht <- glht(nombre.aov,linfct=mcp(color=Dunnet));
summary(nombre.glht).
TUKEY factores aleatorios: TukeyHSD(nombre.aov, which = "Factor")
Importante en 2 factores especificar con which qu factor NO? queremos
analizar. *No tiene sentido hacer un estudio de comparacin mltiple,
puesto no hay efecto en funcin del nivel de factor.
Determinar mejor condicin experimental (grficamente):
interaction.plot(nombre$Factor1,nombre$Factor2, nombre$datos). Es
importante ver que el primer factor (Factor1) queda en el eje de las x, el
factor2 es el que ser representado con lneas diferentes, y por ltimo la
respuesta.* Si las lneas se cruzan, quiere decir que la interaccin es
significativa.
Sin interaccin: En el caso que no haya interaccion, no tiene mucho
sentido hacer comparaciones mltiples para cada factor. As haremos
comparaciones entre niveles de un factor por separado dentro de cada nivel
del otro factor (ejemplo del blat).
blatA.aov <- aov(Produccio ~ Fertilitzant, data = blat, subset = blat$Varietat
== "A")
comp.mult <- TukeyHSD(blatA.aov, which="Fertilitzant")
comp.mult
inter.aov = aov(Produccio ~ Fertilitzant:Varietat, data = blat)
model.tables(inter.aov, type="means", cterms = "Fertilitzant:Varietat",
se=TRUE)
comp.mult <- TukeyHSD(inter.aov)
comp.mult
7. Test no paramtrico
Kruskal.test(datos~factor, data=nombre). S o no. Tiene menos potencia
que ANOVA.
Kruskal(datos, factor, console=T).
*Otros expertos hablan de test de permutaciones (no pierden potencia, pero
son largos).
8. Estimacin de parmetros
Dummy.coef(nombre.aov) Nos da los valores de la media general y la media
de los efectos de cada uno de los niveles de cada factor (si hubiera
interaccin tambin de esta).
Model.tables(nombre.aov, type=effects/mean, se=T). Obtener valores
de los efectos/las medias de cada nivel de cada factor en el anlisis ANOVA
realizado. se nos pregunta si queremos que nos muestre los errores
estndar de los efectos.
Para poder estimar las varianzas, hay que utilizar los parmetros MS de la
tabla ANOVA, y seguir la siguiente tabla para calcular lo que necesitemos en
funcin del caso en el que estemos.
9. Clculo probabilidad
Si es una variable que sigue una distribucin normal (como casi siempre),
utilizaremos:
pnorm(q=X, \mu, \sigma), con esto calculamos la probabilidad de que
dentro de una distribucin N(\mu,\sigma) tengamos un valor menor o igual a
X. Si fuera mayor o igual, recordar que sera (1- pnorm(q=X, \mu,
\sigma))=1-P(X). Importante poner la desvest y no la varianza.
qnorm: mirar
Cluster
datos.scaled <- scale(datos[, -5]). Escalar datos: si es necesario quitar
alguna columna.
km.res <- kmeans(datos.scaled, 3, nstart = 25). Nstart no es necesario, y 3
son las clases que queremos.
km.res$cluster : vemos en qu cluster est cada uno.
El mtodo kmeans utiliza un nmero al azar como centro.
Esto es para hacerlo con el mtodo Pam (utiliza un dato real como centro)
library(cluster)
pam.res <- pam(datos.scaled, 3)
pam.res$cluster
clusplot(pam.res)
ss <- silhoutte(pam.res)
plot(ss)
*Para ver cul es el ptimo mirar el plot(ss) y la amplitude media del sil, si
es mayor es major (siempre tiene un pico).
plot(ss, col=gcol)
Mtodo silhouette
k.max <- 15
data <- datos.scaled
sil <- rep(0, k.max)
for(i in 2:k.max){
km.res <- kmeans(data, centers = i, nstart = 25)
ss <- silhouette(km.res$cluster, dist(data))
sil[i] <- mean(ss[, 3])
}
plot(ss, col=gcol)
plot(1:k.max, sil, type = "b", pch = 19,
frame = FALSE, xlab = "Number of clusters k")
abline(v = which.max(sil), lty = 2)