Skip to content

[R-es] Detectar outliers en un gráfico de dispersión

2 messages · Xavi de Blas, Carlos J. Gil Bellosta

#
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
#
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ó: