Anova para métodos robustos

160 views
Skip to first unread message

Miriam López

unread,
Nov 16, 2015, 8:43:41 AM11/16/15
to sevillarusers
Hola, quiero hacer un ANOVA con cuatro grupo de datos, pero para el cálculo del ANOVA, los grupos han de seguir una distribución normal, por lo que antes he de comprobar su distribución, el método a usar sería el Shapiro-Wilk test (para comprobar si son o no distribuciones normales cd n<30). Si no siguen una distribución normal (que no la siguen) hay que calcular el ANOVA para métodos ROBUSTOS, esta función en R es: t1way(x,tr,grp). Siendo x los datos en modo lista, tr la proporción de recorte y grp, es opcional y se usa para elegir las distintas poblaciones de la lista.

El problema es que no consigo echar a funcionar la función t1way. Consultando internet, he visto algunas soluciones, pero ninguna me resuelve el problema. A ver si tengo suerte aquí ;-).
Un saludo y gracias de antemano.

Ignasi Bartomeus

unread,
Nov 16, 2015, 8:50:59 AM11/16/15
to sevillarusers
Miriam, (y en general)

Lo más fácil cuando se pide ayuda es especificar el mensaje de error, y lo mejor es incluir un ejemplo reproducible, para ver que variables estas usando. Sino es casi imposible saber que falla.



--
www.sevillarusers.wordpress.com
---
Has recibido este mensaje porque estás suscrito al grupo "sevillarusers" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a sevillaruser...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a sevill...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/sevillarusers.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
-- 
Ignasi Bartomeus PhD
www.bartomeuslab.com
@ibartomeus
Skype: nachobartomeus

Dpto. Ecología Integrativa
Estación Biológica de Doñana (EBD-CSIC)
Avda. Américo Vespucio s/n
Isla de la Cartuja
41092, Sevilla (Spain)

Manuel Morales

unread,
Nov 16, 2015, 8:53:44 AM11/16/15
to Miriam López, sevillarusers

El ANOVA es bastante robusto ante alejamientos de la normalidad. La distribución tiene que ser muy asimétrica para que afecte a la estimación de los parámetros del ANOVA.
Saludos

Miriam López

unread,
Nov 16, 2015, 9:04:38 AM11/16/15
to sevillarusers
Ok,cierto, copio lo que he hecho:
>x1<-c(4,9,9,9,9,9,8,9,8,9,9,9,9,9,9,8,6,8,7,8)
>x2<-c(9,9,9,9,6,7,7,6,9,8,7,7,6,6,8,8,8,7,8,6)
>x3<-c(9,9,9,9,9,9,9,7,8,9,8,9,6,9,8,4,8,9,9,9)
> x4<-c(9,6,8,8,9,9,5,8,9,5,8,9,9,9,9,9,9,7,9,8)
> x<-list(x1,x2,x3,x4)

> shapiro.test(x1)

        Shapiro-Wilk normality test

data:  x1
W = 0.64538, p-value = 9.03e-06

> shapiro.test(x2)

        Shapiro-Wilk normality test

data:  x2
W = 0.86335, p-value = 0.008997

> shapiro.test(x3)

        Shapiro-Wilk normality test

data:  x3
W = 0.61648, p-value = 4.383e-06

> shapiro.test(x4)

        Shapiro-Wilk normality test

data:  x4
W = 0.70496, p-value = 4.483e-05

> t1way(x,0.1)
Error: could not find function "t1way"

Lo busco en las bibliotecas :

 install.packages("WRS", repos="http://R-Forge.R-project.org", type="source"), pero aún así sigue sin funcionar.

Un saludo y gracias

Ignasi Bartomeus

unread,
Nov 16, 2015, 9:17:34 AM11/16/15
to sevillarusers
llamas a libreria primero?

library(WRS)

PD: como dice Manuel, hay otras alternativas a tu pregunta desde el punto de vista estadístico.

mor...@us.es

unread,
Nov 16, 2015, 11:58:21 AM11/16/15
to sevill...@googlegroups.com, Miriam López

Hola, si tus distribuciones son muy sesgadas el procedimiento para realizar el análisis que indicas sería de la siguiente forma:

x1<-c(4,9,9,9,9,9,8,9,8,9,9,9,9,9,9,8,6,8,7,8)
x2<-c(9,9,9,9,6,7,7,6,9,8,7,7,6,6,8,8,8,7,8,6)
x3<-c(9,9,9,9,9,9,9,7,8,9,8,9,6,9,8,4,8,9,9,9)
x4<-c(9,6,8,8,9,9,5,8,9,5,8,9,9,9,9,9,9,7,9,8)

x<-c(x1,x2,x3,x4)
vi<- gl(4,20)

library(WRS2)
t1way(x~vi)

Saludos,

eg...@us.es

unread,
Nov 17, 2015, 2:47:39 AM11/17/15
to sevill...@googlegroups.com

Miriam, creo que deberías analizar con los métodos no paramétricos. Con una mirada rápida a la base que nos envías creo que no vas a conseguir la normalización que pretendes.  

Miriam López

unread,
Nov 17, 2015, 3:25:00 AM11/17/15
to sevillarusers, lopez....@gmail.com, mor...@us.es
Morales muchas gracias por la respuesta, pero lo he probado y sigue sin funcionarme :-(.
Copio lo hecho y las respuestas del programa:

> x1<-c(4,9,9,9,9,9,8,9,8,9,9,9,9,9,9,8,6,8,7,8)
> x2<-c(9,9,9,9,6,7,7,6,9,8,7,7,6,6,8,8,8,7,8,6)
> x3<-c(9,9,9,9,9,9,9,7,8,9,8,9,6,9,8,4,8,9,9,9)
> x4<-c(9,6,8,8,9,9,5,8,9,5,8,9,9,9,9,9,9,7,9,8)
> x<-list(x1,x2,x3,x4)
> x<-c(x1,x2,x3,x4)
> vi<- gl(4,20)
> library(WRS2)
Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) :
  there is no package called ‘reshape’
Error: package or namespace load failed for ‘WRS2’
>

El WRSs, me lo he instalado desde un zip local:
y esto es lo que dice el programa:
utils:::menuInstallLocal()
package ‘WRS2’ successfully unpacked and MD5 sums checked


Un saludo y mil gracias, a vers i entre todos podemos :-)

Vicente David Canto Casasola

unread,
Nov 17, 2015, 3:36:48 AM11/17/15
to sevill...@googlegroups.com
Miriam, parece que el paquete WRS2 depende de uno llamado reshape. ¿Lo tienes instalado?


Date: Tue, 17 Nov 2015 00:24:59 -0800
From: lopez....@gmail.com
To: sevill...@googlegroups.com
CC: lopez....@gmail.com; mor...@us.es
Subject: Re: [SeR] Anova para métodos robustos

Ignasi Bartomeus

unread,
Nov 17, 2015, 3:36:49 AM11/17/15
to sevillarusers, lopez....@gmail.com, mor...@us.es
Miriam, 

La función install.packages , con dependencies = TRUE te instalara el paquete, y los paquetes de los que dependa este (en tu caso reshape) http://www.inside-r.org/r-doc/utils/install.packages

Lo mejor, de todas maneras es si puedes pillar a alguien que use R para que te enseñe lo básico sobre cargar paquetes, etc... en 5 minutos.

Un saludo,
Nacho


Miriam López

unread,
Nov 17, 2015, 4:02:11 AM11/17/15
to sevill...@googlegroups.com
Muchas gracias Vicente :-), tenía instalado el reshape2, así que me acabo de instalar el reshape, parece que todo ha ido bien, pero sigo sin poder hacer esto :-(. Creo que voy a tener que dejar R, con las ganas ilusión que tenía de usarlo...
AHora el programa simplemente no hace nada:

> x1<-c(4,9,9,9,9,9,8,9,8,9,9,9,9,9,9,8,6,8,7,8)
> x2<-c(9,9,9,9,6,7,7,6,9,8,7,7,6,6,8,8,8,7,8,6)
> x3<-c(9,9,9,9,9,9,9,7,8,9,8,9,6,9,8,4,8,9,9,9)
> x4<-c(9,6,8,8,9,9,5,8,9,5,8,9,9,9,9,9,9,7,9,8)
> x<-list(x1,x2,x3,x4)
> x<-c(x1,x2,x3,x4)
> vi<- gl(4,20)
> library(WRS2)
>

--
www.sevillarusers.wordpress.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "sevillarusers" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/sevillarusers/WheJm4r-utM/unsubscribe.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a sevillaruser...@googlegroups.com.

Para publicar en este grupo, envía un correo electrónico a sevill...@googlegroups.com.

Visita este grupo en http://groups.google.com/group/sevillarusers.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

mor...@us.es

unread,
Nov 17, 2015, 4:09:12 AM11/17/15
to sevill...@googlegroups.com, Miriam López

Te falta la llamada a la funcion t1way().Aqui tienes el resultado:

> x1<-c(4,9,9,9,9,9,8,9,8,9,9,9,9,9,9,8,6,8,7,8)

> x2<-c(9,9,9,9,6,7,7,6,9,8,7,7,6,6,8,8,8,7,8,6)

> x3<-c(9,9,9,9,9,9,9,7,8,9,8,9,6,9,8,4,8,9,9,9)

> x4<-c(9,6,8,8,9,9,5,8,9,5,8,9,9,9,9,9,9,7,9,8)

> x<-list(x1,x2,x3,x4)

> x<-c(x1,x2,x3,x4)

> vi<- gl(4,20)

> library(WRS2)

> t1way(x~vi)
Call:
t1way(formula = x ~ vi)

Test statistic: 2.2642
Degrees of Freedom 1: 3
Degrees of Freedom 2: 23.93
p-value: 0.10687

Reply all
Reply to author
Forward
0 new messages