我通过汽车套件绘制了库克的距离:
library(car)
influenceIndexPlot(model, id.n = 5, vars = c("Cook"))
http://gyazo.com/4b15671a0ee35944c4b5b273205f1b72
我想用红色绘制所有点和这些点的线,这些点都在0.01以上。
我有办法怎样做吗?非常感谢你提前!
答案 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")
看起来像这样: