码迷,mamicode.com
首页 > 其他好文 > 详细

R数据分析-------ggplot2工具箱二

时间:2017-04-24 00:06:18      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:cts   action   aes   error   数据   lower   例子   一点   有用   

本篇主要分为三部分:

  • 揭示不确定性
  • 统计摘要
  • 添加图形注解

1.揭示不确定性

关于不确定的信息,怎么展示很重要,在ggplot2中共有四类几何对象可以用于这项工作,具体使用取决于x的值是离散型还是连续型的。这些几何对象列于下表中:

变量X类型 仅展示区间 同时展示区间和中间值
连续型 geom_ribbon geom_smooth(stat = "identity")
离散型

geom_errorbar

geom_linerange

geom_crossbar

geom_pointrange

 

下例拟合了一个双因素含交互效应回归模型,并且展示了如何提取边际效应和条件效应,以及如何将其可视化。

> library(ggplot2)
> library(effects)
> d <- subset(diamonds , carat <2.5 & rbinom(nrow(diamonds),1,0.2)==1)
> d$lcarat <- log10(d$carat)
> d$lprice <- log10(d$price)
> qplot(lcarat,lprice,data=d)
> #剔除整体的线性趋势
> detrend <- lm(lprice ~ lcarat,data=d)
> d$lprices <- resid(detrend)
> mod <- lm(lprices ~ lcarat*color,data=d)
> effectdf <- function(...){
+ suppressWarnings(as.data.frame(effect(...)))
+ }
> color <- effectdf("color",mod)
> both1 <- effectdf("lcarat:color",mod)
> carat <- effectdf("lcarat",mod,default.levels=50)
> both2 <- effectdf("lcarat:color",mod,default.levels = 3)
> qplot(lcarat,lprice,data=d,colour=color) #图1

  技术分享

> qplot(lcarat,lprices,data=d,colour=color)#图2

  技术分享

以上进行数据变换以移除显而易见的效应,图1对x轴和y轴的数据均取以10 为底的对数对数以剔除非线性性。图2剔除了主要的线性趋势。

> fplot <- ggplot(mapping = aes(y=fit,ymin=lower,ymax=upper)) + ylim(range(both2$lower,both2$upper))
> fplot %+% color + aes(x=color) + geom_point() +geom_errorbar() #图3 下左
> fplot %+% both2 +
+ aes(x = color,colour=lcarat,group=interaction(color,lcarat))+
+ geom_errorbar() + geom_line(aes(group=lcarat))+
+ scale_colour_gradient()                                          #图4 下右

  技术分享技术分享

上两张图展示了模型评估结果中变量color的不确定性。左图为color的边际效应,右图是针对carat的不同水平(level),变量color的条件效应,误差棒显示了95%的逐点置信区间。

> fplot %+% carat + aes(x=lcarat)+geom_smooth(stat="identity") 图5 下左
> ends <- subset(both1,lcarat==max(lcarat))
> fplot %+% both1 + aes(x=lcarat,colour=color) + 
+ geom_smooth(stat="identity")+
+ scale_colour_hue() + theme(legend.position = "none")+
+ geom_text(aes(label=color,x=lcarat+0.02),ends)                #图6 下右
>

  技术分享技术分享

上图展示模型估计结果中变量carat的不确定性。上左图为carat的边际效应,上右图则是针对变量color的不同水平,变量carat的条件效应。误差带显示了95%的逐点置信区间。

2.统计摘要

对于每个x的取值,计算对应y值的统计摘要通常是很有用的。在ggplot2中,这一角色由stat_summary()但当,它使用ymin,y和ymax等图形属性,为汇总y的条件分布提供了一种灵活的方法。

2.1单独的统计摘要函数

参数fun.y,fun.ymin和fun.ymax能够接受简单的数值型摘要计算函数,即该函数能够传入一个数据向量并返回一个数值型结果,如:mean(),median(),min(),max().

2.2统一的摘要计算函数

fun.data可以支持更复杂的摘要计算函数,当然也可以使用自己编写的摘要计算函数:如下,此函数应返回一个各元素有名称的向量作为输出。

3.添加图形注解

在使用额外的标签注解时,要记住的重要一点:这些注解仅仅是额外的数据而已。添加图形注解有两种方式:逐个添加或者批量添加。

下面的例子,我们分别以两种方式,向经济数据中加入有关美国总统的信息。

> (unemp <- qplot(date,unemploy,data=economics,geom="line",
+ xlab="",ylab="No.unemployed(1000s)"))

  技术分享

> presidential <- presidential[-(1:3),]
> yrng <- range(economics$unemploy)
> xrng <- range(economics$date)
> unemp + geom_vline(aes(xintercept = as.numeric(start)),data=presidential)
> 

  技术分享

 

R数据分析-------ggplot2工具箱二

标签:cts   action   aes   error   数据   lower   例子   一点   有用   

原文地址:http://www.cnblogs.com/lizhilei-123/p/6754562.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!