About Me

谢宗震 博士 (Johnson Hsieh)

  • R语言年资 9年
  • 新竹清华统计 博士 (2009 - 2013)
  • DSP智库驱动 知识长 (dsp.im)
  • 台北市公参会开放资料组 顾问
  • R package: iNEXT, CARE1, JADE, SpadeR, iNextPD

  • DataScience HC group 共同创办人
  • Taiwan R User group officer
  • Data for social good 共同创办人




擅长跨与领域专家合作,开发的R包iNEXT被应用于生物、遗传、新闻、文学、电竞等领域。现职为DSP智库驱动知识长,辅导超过300位企业人士成为数据分析人才。


参与这场R语言会议的朋友有福了


这场演讲将分享用R做开放数据分析的真实经验


所有案例原始数据、代原码都公开在github

Agenda

  • Real world, data and open data
  • Three types of data analysis
  • Discussion and case study

About Data

About Data

Open Data

开放数据是一种经过挑选与许可的数据,它不受著作权、专利权,以及其他管理机制所限制,可以开放给社会公众,任何人都可以自由出版使用,不论是要拿来出版或是做其他的运用都不加以限制。


  • 资讯对称,沟通透明
  • 群众外包,共同参与
  • 练功打怪,自我实现
  • 结合创新,提升效能

Three types of data analysis

Three types of data analysis

掌握现况

洞悉关联

预测未知

掌握现况案例

社区医疗群地图 (gov)

ggmap + rCharts + shiny

作者: 李昕迪 医师 (mcdlee)

社区医疗群地图 (gov)

社区医疗群地图 (gov)

  • 来源:卫福部中央健保署
  • 作者:李昕迪 医师 (mcdlee)
  • R包:ggmap + rCharts + shiny
  • 参考: slide, shinypp, github repo

NPO城乡多样性比较 (NPO)

NPO城乡多样性比较 (NPO)

利用rvest爬NPO名录

收录1111间NPO,包含16种服务对象(tag)

NPO城乡多样性比较 (NPO)

dplyr + ggplot2

台北 (都市, S=16, n=738)、云嘉 (农业, S=15, n=177)、花东 (偏乡, S=15, n=206)

NPO城乡多样性比较 (NPO)

  • 多样性 (diversity) 与多样性指标
  • 一个区域的多样性越高,表示遇到灾害的容忍程度越高
  • 基本概念:种类越多越好,分布越均匀越好
  • Shannon diversity: \(H = \exp{\left ( \sum_{i=1}^{S}-p_i\log{p_i}\right )}\)


NPO城乡多样性比较 (NPO)

  • 多样性指标会受到样本数所影响,样本数越大,能够观察到的种类数也越多,多样性就越大。为求公平,应控制在相同样本数下比较多样性。
  • Shannon diversity: \(H(n) = \exp{\left ( \sum_{i=1}^{S}-p_i(n)\log{p_i(n)}\right )}\)
install.packages("iNEXT") # 安装 iNEXT package (Hsieh et al. , 2015) 
library(iNEXT)
tab <- read.csv("npo-type.csv", row.names = 1)
# iNEXT 主程式,计算位阶数q = 1的Shannon diversity 稀释/外插估计
out <- iNEXT(tab, q=1, endpoint=750, se=FALSE)
# 整合ggplot2绘图风格
ggiNEXT(out) + 
  theme_gray(base_family = "STHeiti")

NPO城乡多样性比较 (NPO)

dplyr + ggplot2 + iNEXT

多样性排序:花东 > 台北 > 云嘉

NPO城乡多样性比较 (NPO)

  • 来源:联合劝募基金会
  • 作者:谢宗震 博士 (Johnson)
  • R包:dplyr + ggplot + iNEXT
  • 参考: shinypp, github repo

洞悉因素案例

找出火灾风险热区 (GOV)

纽奥良消防局 + Nolalytics

火灾风险热区 (优先发放烟雾警报器)

找出火灾风险热区 (GOV)

回归分析:找出影响火灾的因子

屋龄、居住时间、收入水平、更新、屋主年龄、租/住

找出火灾风险热区 (GOV)

  • 来源:纽奥良消防局
  • 作者:Nolalytics (New Orleans Analytics)
  • R包:reshape + plyr + dplyr+ ROCR + maps + maptools + sp + rgdal
  • Reference: github repo, report

预测未知案例

豪宅房价预测 (GOV)

  • 内政部实价登录资料 (2012年8月 ~ 2013年9月)
  • 顶级豪宅:40 / 21530 件
  • 重要因子:面积、车位、屋龄、行政区、楼层
  • reshape + dplyr + mgcv
library(mgcv) #provides functions for generalized additive modelling
dat1 <- readRDS("data/dat1.rds")
# fit linear model
g1 <- lm(log10(總價)~面積+車位+屋齡+行政區+floor, data=dat1)
# fit addiive model with two smooth terms
g2 <- gam(log10(總價)~s(面積)+車位+s(屋齡)+行政區+floor, data=dat1)
# Compare adjusted R-squared, 越趨近1模型配適度越好
data.frame("linear model"=summary(g1)$adj.r.sq, "additive model"=summary(g2)$r.sq)
  linear.model additive.model
1    0.7324551      0.9352784

豪宅房价预测 (GOV)

豪宅房价预测 (GOV)

# set dataset, 帝寶格局
new <- dat1[1:6, c(2,3,4,6,7,12)]
rownames(new) <- 1:6
new$面積 <- c(160,160,210,210,260,260)
new$車位 <- rep("有車位",6); 
new$屋齡 <- rep(8, 6)
new$行政區 <- rep("大安區",6)
new$floor <- rep(c("低樓層","高樓層"),3)
# prediction
tmp <- predict(g2, newdata=new, se.fit=TRUE)
pred <- 10^cbind(tmp$fit, tmp$fit-tmp$se.fit, tmp$fit+tmp$se.fit)
data.frame("建案坪數"=new$面積, "高低樓層"=new$floor, 
           "總價估計.萬元"=round(pred[,1]/10000),
           "單價估計.萬元"=round(pred[,1]/10000/new$面積))

豪宅房价预测 (GOV)

豪宅房价预测 (GOV)

豪宅房价预测 (GOV)

  • 来源:内政部实价登录资料 (2012年8月 ~ 2013年9月)
  • 作者:谢宗震 博士
  • R包:mgcv
  • Reference: github repo

NPO总数估计 (NPO)


四种来源:台湾公益资讯中心、善耕365、联合劝募、自律联盟

NPO总数估计 (NPO)

重复捕取方法 (Chao et al. 2015)

NPO总数估计 (NPO)

install.packages("CARE1") # 样本覆盖率估计法 (Chao et al. 2015)
library(CARE1)
npoList <- read.csv("data/npoList.csv", row.names=1)
record <- as.record(npoList)
estN.stat(record) 
# M=观察到的总类别, D=任两来源的平均类别, C=样本覆盖率
estN(record, method="LSC", se=TRUE)
# 四个来源共观察到 3528间 NPO,以样本覆盖率法推得 7507间 NPO估计值
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 
  56  635   35  106    7   38   15 2149   33  256   47   63    6   54   28 
        M      D  Chat
[1,] 3528 2791.5 0.508
              est       se      cil      ciu
est.Nhat 7507.421 350.9596 6876.843 8256.736

NPO总数估计 (NPO)

  • 来源:台湾公益资讯中心、善耕365、联合劝募、自律联盟
  • 作者:DSP资料科学团队
  • R包:rvest + CARE1 + shiny
  • 参考: hackpad, hackathon

博客浏览数预测 (Business)

数据竞赛平台

数据竞赛平台

数据竞赛平台

政府、企业、非营利组织的数据加值平台

Summary

Thank You