Hola de nuevo,

Ya esta solucionado era cualquier error en el archivo que ya corregi.

Muchas gracias, un saludo


El 14 de julio de 2014, 16:40, Marta valdes lopez <[email protected]>
escribió:

> 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

Responder a