如何更改库克距离图中特定点的颜色?

时间:2015-03-04 21:14:04

标签: r plot

我通过汽车套件绘制了库克的距离:

 library(car)
 influenceIndexPlot(model, id.n = 5, vars = c("Cook"))

http://gyazo.com/4b15671a0ee35944c4b5b273205f1b72

我想用红色绘制所有点和这些点的线,这些点都在0.01以上。

我有办法怎样做吗?非常感谢你提前!

1 个答案:

答案 0 :(得分:1)

我不确定如何使用car包中的特定功能来执行您的要求。它只是制作基础r图的包装器。

在这里,我向您展示如何在ggplot2中制作相同类型的情节。

示例:制作一些样本数据并运行线性模型:

set.seed(84)
df <- data.frame(x = rnorm(100, 10, 5), y = rnorm(100, 12, 5))

model <- lm(y ~ x, df)

现在我们得到Cook的距离,创建一个数据帧并分配组 - 0(低于0.01)或1(高于0.01):

N <- nrow(model$model) #this is just to get the number of observations - it's obvious it's 100 as we chose that, but put it here for automation

df <- data.frame(Index = 1:N,  Cook = cooks.distance(model))
df$group <- factor(ifelse(df$Cook > 0.01, 1, 0))

现在我们绘制它:

library(ggplot2)

ggplot(df, aes(Index, Cook, color=group, group=group)) +
  geom_point(size=3) +
  geom_segment(aes(Index, xend=Index, 0, yend=Cook, color=group), data=df)  +
  theme_bw() +
  scale_color_manual(values=c("black", "red1")) +
  ylab("Cook's Distance") +
  ggtitle("Diagnostic Plots") +
  theme(legend.position = "none")

看起来像这样:

enter image description here