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
