раскраска точек данных в R

здесь я сгенерировал две случайные переменные, отсортировал их и поместил их в линейную логистическую регрессию. затем покрасил их в синий и красный, но проблема в том, что я не могу установить точки данных под подобранной линией как красные, а значения выше - как синие. Вот мой код, любая помощь будет оценена по достоинству.

A<-rnorm(100)
B<-runif(100)

r<-sort(A)
s<-sort(B)

reg<- lm(r ~ s)

plot(reg,which=1)
plot(predict(reg),residuals(reg))
plot(predict(reg),residuals(reg),col=c("blue","red"))
abline(h=0,lty=2,col="grey")
lines(lowess(predict(reg),residuals(reg)),col="black",lwd=2)
lines(lowess(s[r==0],residuals(reg)[r==0]),col="red")
lines(lowess(s[r==1],residuals(reg)[r==1]),col="blue")

См. график здесь: кажется, что цветовую окраску сложно назначить


person user3023871    schedule 09.03.2015    source источник


Ответы (1)


Это делает то, что вы хотите?

plot(predict(reg),residuals(reg),col=ifelse(residuals(reg)<0,"blue","red"))

Я просто проверяю, больше ли остаток 0 или нет. Основная идея - создать вектор цвета той же длины, что и ваши данные.

person xraynaud    schedule 09.03.2015
comment
баллов (прогноз (reg), остатки (reg), col = ifelse (остатки (reg) == 0, красный, синий)), я использовал это, я понял глупую ошибку. Большое спасибо. - person user3023871; 10.03.2015