Hola,
Si entiendo lo que quieres decirme, el problema es que hago lo que tu haces
y me sale este error:
Error in if (xor(((x[n] - mean(x)) < (mean(x) - x[1])), opposite)) { :
missing value where TRUE/FALSE needed
Entonces no se porque no me sale el test, muchas gracias por tu ayuda.
Un saludo
El 14 de julio de 2014, 12:31, Javier Villacampa González <
[email protected]> escribió:
> Hola Marta,
>
> si observas cualquier artÃculo de psicologÃa esto es una práctica tÃpica.
> Te digo psicologÃa porque creo que tus datos son de ese tipo. Tienes
> bibiligrafÃa de artÃculos cientificos en las que se quitan valores
> siguiendo los criterios que te he dicho solo has de buscar bibliografÃa del
> campo en el que te mueces. Osea que nos quitarlos por que sÃ, aunque en
> cada area de ciencia tienes una serie de criterios para acabar con los
> ouliers. Yo personalmente me fio más de mi buena intuición(y validación)
> que de un test. De todas maneras seguro que tienes un informe de como
> recogiste los datos y puedes trazar el origen de este dato en concreto.
> Creo que eso es mejor que cualquier test. De todas maneras a mi el test me
> sale:
>
> > setwd(dir="c:/Users/usuario/Desktop/")> library(outliers)>
> > filename<-"timediff.csv"> time<-read.csv(filename,
> > sep=";",header=TRUE,dec=".") # Esto es lo que has de cambiar>
> > chisq.out.test(time$TimeDiff)
>
> chi-squared test for outlier
>
> data: time$TimeDiff
> X-squared = 73260.07, p-value < 2.2e-16
> alternative hypothesis: highest value 14478.4 is an outlier
>
>
> No se si te he sido de mucha ayuda.
>
> Un saludo
>
>
>
>
>
>
>
> 2014-07-14 12:03 GMT+02:00 Marta valdes lopez <[email protected]>:
>
> Hola!
>>
>> Muchas gracias por la ayuda, pero lo que quiero hacer es que yo se cual
>> es el outlier, es el numero 14478 puede ser un error de transcripcion o lo
>> que sea pero lo que me gustaria hacer seria que a traves de algun tipo de
>> test me dijera que esse es el outlier y poder borrarlo de la base de datos
>> porque no puedo borrarlo porque si; no se si me explico.
>>
>> Y cuando hago la chi cuadrado me sale esto pero no es el numero que quiero
>>
>> > chisq.out.test(as.numeric(time$TimeDiff))
>> chi-squared test for outlier
>> data: as.numeric(time$TimeDiff)
>> X-squared = 24.9399, p-value = 5.915e-07
>> alternative hypothesis: highest value 435 is an outlier
>>
>> Entonces no se como podria hacer para poder borrarlo de forma logica.
>>
>> Muchas gracias, un saludo
>>
>>
>> 2014-07-11 18:23 GMT+00:00 Javier Villacampa González <
>> [email protected]>:
>>
>> Tu fichero tiene los decimales como puntos y no como comas como tu le
>>> indicas. Te dejo un ejemplo
>>>
>>>
>>> #---------------------------------------------------------------------------------------------------------------------
>>> setwd(dir="c:/Users/usuario/Desktop/")
>>> library(outliers)
>>> filename<-"timediff.csv"
>>> time<-read.csv(filename, sep=";",header=TRUE,dec=".") # Esto es lo que
>>> has de cambiar
>>> chisq.out.test(time$TimeDiff)
>>>
>>>
>>> # Ayuda adicional
>>> #---------------------------------------------------------------------
>>> # Si no supones normalidad
>>> #---------------------------------------------------------------------
>>> time.without.outs <- data.frame(row.names= 1:dim(time)[1], dif = time )
>>>
>>>
>>> x <- boxplot(time.without.outs$TimeDiff,range= 1.5) # Quita los outliers
>>> que se van más de 1.5 rangos itercuartilicios. Puedes poner otro criterio
>>> pero este es el habitual
>>>
>>> time.without.outs$out.rg <- F
>>> time.without.outs[ time.without.outs$TimeDiff %in% x$out,]$out.rg <- T #
>>> Localizamos los outliers con la condición elegida
>>>
>>> time.without.outs$TimeDiff.without.out.rg <- time.without.outs$TimeDiff
>>> time.without.outs[ time.without.outs$out.rg,]$TimeDiff.without.out.rg <-
>>> NA # Borramos los outliers
>>>
>>> #---------------------------------------------------------------------
>>> # Si supones normalidad bien lo puedes hacer asà también
>>> #---------------------------------------------------------------------
>>>
>>>
>>> time.without.outs$out.rg.norm <- F
>>> time.without.outs[ time.without.outs$TimeDiff %in% x$out,]$out.rg.norm
>>> <- T
>>> x <- abs(scale(time.without.outs$TimeDiff)) # Normalizamos la variable
>>>
>>> time.without.outs$out.rg.norm <- F
>>> time.without.outs[ x >= qnorm(0.995),]$out.rg.norm <- T # Quitmos los
>>> datos que estén alejados 99.5 % en la distro (suponiedo normalidad)
>>>
>>> time.without.outs$TimeDiff.without.out.norm <- time.without.outs$TimeDiff
>>> time.without.outs[
>>> time.without.outs$out.rg.norm,]$TimeDiff.without.out.norm <- NA
>>>
>>>
>>> #---------------------------------------------------------------------
>>> # Si quieres quitar ambos
>>> #---------------------------------------------------------------------
>>>
>>> time.without.outs$TimeDiff.without.out.norm.rg <-
>>> time.without.outs$TimeDiff
>>> time.without.outs[ time.without.outs$out.rg |
>>> time.without.outs$out.rg.norm,]$TimeDiff.without.out.norm.rg <- NA
>>>
>>> summary(time.without.outs)
>>>
>>> # Donde
>>>
>>> # TimeDiff.without.out.rg Son los datos sin outliers utilizando un
>>> criterio tÃpico cuando no se sabe la distribución de tus datos
>>> # TimeDiff.without.out.norm Son los datos sin outliers asumiendo la
>>> normalidad de tus datos
>>> qqnorm(time.without.outs$TimeDiff.without.out.rg);
>>> qqline(time.without.outs$TimeDiff.without.out.rg, col = 2, lwd = 2)
>>> qqnorm(time.without.outs$TimeDiff.without.out.norm);
>>> qqline(time.without.outs$TimeDiff.without.out.norm, col = 2, lwd =2)
>>>
>>> hist(time.without.outs$TimeDiff.without.out.rg)
>>> hist(time.without.outs$TimeDiff.without.out.norm)
>>> ks.test(x= time$TimeDiff, "pnorm", mean(time$TimeDiff),
>>> sd(time$TimeDiff))
>>> # A la vista de estos exploratorios yo no lo supondrÃa.
>>> # TimeDiff.without.out.norm.rg son los datos sin outliers según los dos
>>> criterios
>>>
>>> # De todas maneras tienes un valor que yo creo que has introducido mal
>>> max(time.without.outs$TimeDiff) # Este valor es claramente un error de
>>> transcripción de datos.
>>>
>>> --
>>>
>>>
>>
>
>
> --
>
>
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-help-es