可视化ggplot2中的Kolmogorov-Smirnov统计量

时间:2014-12-03 22:07:52

标签: r ggplot2 statistics

Kolmogorov-Smirnov统计量被定义为经验累积分布函数和假设累积分布函数之间的最大距离。我认为使用图表找到最大差异更为可取,而不是查看数字。

我知道如何绘制经验分布函数

  

P1< -qplot(RNORM(30),STAT = “ECDF” 的geom = “步骤”)

但是请你告诉我如何在同一个图上添加理论分布的累积分布函数?对于我的情况,理论分布是标准正态分布,但我对每个分布函数的泛化感兴趣。

谢谢。

1 个答案:

答案 0 :(得分:4)

如果您想使用ggplot,请执行

set.seed(15)
dd <- data.frame(x=rnorm(30))
ggplot(dd, aes(x)) +
    stat_ecdf() + 
    stat_function(fun = pnorm, colour = "red")

如果您愿意,可以找到最大距离

ed <- ecdf(dd$x)
maxdiffidx <- which.max(abs(ed(dd$x)-pnorm(dd$x)))
maxdiffat <- dd$x[maxdiffidx]

并使用

将其添加到地块中
ggplot(dd, aes(x)) +
    stat_ecdf() + 
    stat_function(fun = pnorm, colour = "red") + 
    geom_vline(x=maxdiffat, lty=2)

enter image description here