Hola amigos, esta es mi primera duda, espero que no sea demasiado fácil. Tengo unos datos de dos variables y quiero mostrar recta de regresión y valor de correlación serie0 <- c(0.651, 0.712, 0.614, 0.645, 0.559, 0.647, 0.642, 0.534, 0.616, 0.621, 0.623) serie1 <- c(0.572, 0.641, 0.565, 0.596, 0.518, 0.604, 0.602, 0.501, 0.58, 0.589, 0.596) data <- cbind(serie0, serie1) colnames(data) <- c('ABK', 'CMJ') rownames(data) <- c('CV', 'JN', 'MM', 'AT', 'NS', 'JA', 'SR', 'PC', 'JS', 'CB', 'AG') colors=gray.colors(length(rownames(data))) rang <- c(1:length(rownames(data))) plot(serie0, serie1, pch=rang, col='black', xlab='ABK', ylab='CMJ') abline(lm(serie1 ~ serie0),col='grey30') legend('bottomright' ,legend=rownames(data), pch=rang, col='black', cex=.7) title(main='IUB (abk-cmj)/cmj *100 (XY)', sub=paste('correlation:',cor(serie0,serie1)), cex.sub=0.75, font.sub=3, col.sub='grey30') ¿cómo podría identificar de forma automatizada los datos atípicos (outliers)?. Me gustaría poder: -pintarlos de otro color -excluirlos de la recta de regresión -excluirlos de la correlación me preocupa sólo la identificación, porque el resto de código ya puedo hacerlo. he cargado el paquete outliers, pero con lo poco que lo conozco sólo encuentro métodos que me devuelven un outlier y no varios (si los hay) http://rss.acs.unt.edu/Rdoc/library/outliers/html/00Index.html gracias, saludos
Carlos J. Gil Bellosta
2009-Dec-10 18:01 UTC
[R-es] Detectar outliers en un gráfico de dispersión
Hola, ¿qué tal? Si tu regresión es lm.00 <- lm(serie1 ~ serie0), entonces stdres( lm.00 ) es decir, los residuos estandarizados, "deberían" ser normales (de hecho, haz plot( lm.00 ) ) con media 0 y varianza unitaria. Si escribes which( abs( stdres( lm.00 ) ) > mi.umbral ) obtendrás los "outliers" dependiendo de tu umbral. Nada garantiza, sin embargo, que tus residuos sean normales... Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 10 de diciembre de 2009 18:19, Xavi de Blas <xaviblas en gmail.com> escribió:> Hola amigos, esta es mi primera duda, espero que no sea demasiado fácil. > > Tengo unos datos de dos variables y quiero mostrar recta de regresión > y valor de correlación > > serie0 <- c(0.651, 0.712, 0.614, 0.645, 0.559, 0.647, 0.642, 0.534, > 0.616, 0.621, 0.623) > serie1 <- c(0.572, 0.641, 0.565, 0.596, 0.518, 0.604, 0.602, 0.501, > 0.58, 0.589, 0.596) > data <- cbind(serie0, serie1) > colnames(data) <- c('ABK', 'CMJ') > rownames(data) <- c('CV', 'JN', 'MM', 'AT', 'NS', 'JA', 'SR', 'PC', > 'JS', 'CB', 'AG') > colors=gray.colors(length(rownames(data))) > rang <- c(1:length(rownames(data))) > plot(serie0, serie1, pch=rang, col='black', xlab='ABK', ylab='CMJ') > abline(lm(serie1 ~ serie0),col='grey30') > legend('bottomright' ,legend=rownames(data), pch=rang, col='black', cex=.7) > title(main='IUB (abk-cmj)/cmj *100 (XY)', > sub=paste('correlation:',cor(serie0,serie1)), cex.sub=0.75, > font.sub=3, col.sub='grey30') > > ¿cómo podría identificar de forma automatizada los datos atípicos > (outliers)?. Me gustaría poder: > -pintarlos de otro color > -excluirlos de la recta de regresión > -excluirlos de la correlación > > me preocupa sólo la identificación, porque el resto de código ya puedo hacerlo. > > he cargado el paquete outliers, pero con lo poco que lo conozco sólo > encuentro métodos que me devuelven un outlier y no varios (si los hay) > > http://rss.acs.unt.edu/Rdoc/library/outliers/html/00Index.html > > gracias, saludos > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >