查看原文
其他

Y叔 2018-06-07

虽然R提供了很多作图函数,但自己实现一下,是非常好的体验,而且能够让我们了解其中的细节。

我在《ggplot2作图5招:《R入门25个菜谱》中所有图片的ggplot2版本》中就实现了可视化诊断线性回归。

2011在读<Modern Applied Statistics With S-PLUS>,115页讲到Q-Q图时,书中给出了一个Trellis的实现。(Trellis是S/S-PLUS的可视化系统,在R里的对等实现是lattice包)。

我们知道一组数字,可以算4分位数,分别是25%, 50%(中位数), 75%,它等于该组数字中所有数值由小到大排列后第X%的数字,事实上每个数字都可以对应一个X%,Q-Q图很简单,把样本数据和理论分布算出来的quantiles,画个散点图而已。分别用base graph和ggplot2实现,图中三个图分别由系统函数qqnorm,和这里定义的qqplot, qqplot2画出来。

qqplot <- function(y, distribution=qnorm) {  x <- distribution(ppoints(y))  plot(x, sort(y),       xlab="Theoretical Quantiles",       ylab="Sample Quantiles",       main="Normal Q-Q Plot"       )  lines(y,y) } qqplot2 <- function(y, distribution=qnorm) {
 require(ggplot2)  x <- distribution(ppoints(y))  d <- data.frame(x=x, y=sort(y))  p <- ggplot(d, aes(x=x, y=y)) +    geom_point() +      geom_line(aes(x=x, y=x)) +        ggtitle(title="Normal Q-Q Plot") +          xlab("Theoretical Quantiles") +            ylab("Sample Quantiles")
   return(p) }

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存