前言

由於人類越來越重視數據做為決策的依據,因此資料科學最近變得非常熱門,但是早在資料科學出現之前,統計學已經幫助我們描述資料以及找出變數之間的關係。不過,資料科學的用途更廣,而學好統計學則能避免被龐大的資料所困惑。不論是學資料科學或是統計學,需要具備一些技術的訓練,才能透視資料後面的故事。
R是免費的統計軟體,近年來廣被政治、經濟、醫學、管理等領域使用,有豐富的網路資源,不僅可用於各種統計模型,而且資料容易轉化為圖形,也就是視覺化非常容易,更可延伸至大數據分析。例如針對NBA各個位置的球員,投籃的次數以及得到的分數之間的關係,用ggplot2畫成一個散佈圖:

## Loading required package: ggplot2
## Loading required package: SportsAnalytics

本課程目的是用R實作統計,讓修課者同時學習統計以及操作R,未來能夠進一步延伸到其他的領域。
本課程將邀請謝吉隆老師教授如何在網路上取得資料,包括下載政府公開資料、電子報資料、Facebook資料等等,幫助同學收集到想要的資料。
R與統計模型的網路資源非常多,授課老師可能只了解其中之一,因此上課內容不見得是唯一解決問題的方式,歡迎修課者隨時提出更佳的方法。
本課程花費比過去統計課更多時間在於操作軟體,希望能讓修課者做中學,部分內容偏重資料處理而非統計原理,有志學好統計者可請教本所老師,或者至其他系所聽課。

課程目標

不論是統計或者資料分析,背後都需要有嚴謹的研究設計,本課程希望達到下列目標,但是也會時時提醒修課者培養看問題以及回答問題的敏銳度:
- 瞭解如何用R描述資料
- 瞭解如何用R整理資料
- 暸解如何用R從網路下載資料
- 暸解如何用R進行相關分析
- 瞭解如何用R進行線性迴歸模型
- 瞭解如何用R進行非線性迴歸模型

上課方式

本課程主要由教師於課堂上講授並且現場操作示範,請修課者盡量自行準備筆電上課,課後可以到電腦教室複習。

評分方式

  1. 作業 70%
  2. 期末報告 30%

每次上課後會有作業,請在下次上課之前繳交R的檔案給助教以驗證執行。
期末報告的要求是展示對於資料以及統計的學習成果,每一位修課者選擇一筆現有資料,或者自行建立資料,然後以R描述資料型態,並且說明變數之間可能的關係,最後以線性或者非線性迴歸模型檢證假設。

課程進度

週次 日期 主題 說明 參考書籍
1 2/27 課程簡介、安裝R 將介紹本課程,以及R的優點,以及說明如何安裝RRStudio,以及安裝套件 蔡(Ch.1, 2)
2 3/6 資料型態、基本運算 將說明R的資料型態,包括數值、字串等等,以及基本運算,例如數學以及邏輯運算 蔡(Ch.3),Verzani(Ch. 1)
3 3/13 資料結構、資料讀取、資料匯出、基本指令 將介紹R的向量、因子、列表、矩陣等等結構,以及資料框與資料表,讓同學瞭解R以哪些資料呈現 蔡(Ch.4, 5)
4 3/20 條件判斷、迴圈 將解釋如何設定條件讓R依照邏輯計算答案,以及如何設定迴圈 蔡(Ch.7),Verzani (Ch.6)
5 3/27 研究設計 討論研究設計以及迴歸模型應注意的變數之間的關係,為將來的研究報告打下基礎 James等人(Ch. 2)
6 4/3 描述統計:集中趨勢、離散程度 介紹描述統計的集中趨勢以及離散程度,例如平均值、中位數、標準差等等 蔡(Ch.7),Verzani (Ch.2)
7 4/10 讀JSON、Get web data (謝吉隆老師) 介紹如何寫程式讀JSON、如何下載網路上的資料 課堂上投影片
8 4/17 爬網頁 (謝吉隆老師) 介紹如何爬網頁下載資料 課堂上投影片
9 4/24 資料轉置、資料組合、長表與寬表 介紹如何調整資料的格式,重組資料,使其更容易分析 蔡(Ch.5)
10 5/1 資料視覺化 討論資料的視覺化,包括基礎功能以及latticeggplot2等套件的圖形 蔡(Ch.6),Verzani (Ch.3)
11 5/8 相關分析、卡方檢定 介紹兩個非連續變數之間的關聯,以及卡方檢定 蔡(Ch.7),Verzani (Ch.9)
12 5/15 平均數分析、變異數檢定 說明連續變數與非連續變數之間的變異數分析 Verzani (Ch. 8, 11)
13 5/22 點估計、線性迴歸原理 說明線性迴歸的原理以及假設檢定 蔡(Ch.8, 10),Verzani (Ch.10)
14 5/29 解釋線性迴歸 說明信賴區間以及如何以圖形詮釋迴歸 James等人 (Ch. 3)
15 6/5 複迴歸、虛擬變數、交互作用 說明有兩個以上的自變數時的迴歸模型,以及其中有一個是類別變數,以及兩個自變數之間有交互作用時的估計方式 James等人 (Ch. 3)
16 6/12 最大概似法、二元勝算對數迴歸模型 介紹最大概似法與非線性迴歸模型應用在依變項為二元而非連續變數 Verzani (Ch. 12),James等人 (Ch. 4)
17 6/19 期末報告寫作 每位同學可個別與老師討論報告或自行撰寫
18 6/26 期末課堂報告 每位同學須以投影片報告即將繳交的期末報告內容

課程資訊

上課時間

2/27-6/26,星期二,9:10-12:00

上課地點

270810(綜合院館北棟8樓俄羅斯所圖書室)

討論時間

原則上訂在星期三中午十二點到一點,研究室位於綜合院館北棟5樓。如果更動時間將通知,需要預約其他時間請email tsaich AT nccu.edu.tw。

助教

劉明浩(東亞所博士生)

參考書目

  1. 蔡佳泓,2014,基礎統計分析:R 程式在社會科學之應用,雙葉書廊。
  2. Gareth James, Daniela Witten, Trevor Hastie, and Robert Tibshirani, 2013. An Introduction to Statistical Learning with Applications in R (http://www-bcf.usc.edu/~gareth/ISL/ISLR%20First%20Printing.pdf)
  3. John Verzani, 2001. Using R for Introductory Statistics. (https://cran.r-project.org/doc/contrib/Verzani-SimpleR.pdf)

網路資源

台灣資料愛好者年會在2014年提供的ETL(Extract-Transform-Load)講義,詳細說明資料萃取、轉置以便分析的過程。透過執行下列程式碼,可閱讀ETL之投影片。請先執行下載套件的程式碼:

deps <- available.packages("http://taiwanrusergroup.github.io/R-2014/src/contrib")[1,"Imports"]
pkgs <- strsplit(gsub("\\s", "", deps), ",")[[1]]
for(i in seq_along(pkgs)) {
  # You can change your favorite repository
  if (require(pkgs[i], character.only = TRUE)) next
  install.packages(pkgs[i], repo = "http://cran.csie.ntu.edu.tw")
}
install.packages('DSC2014Tutorial', repo = 'http://taiwanrusergroup.github.io/R-2014', type = 'source')

然後依序執行下列程式碼,結果會出現在瀏覽器的網頁:

library(DSC2014Tutorial)
slides("Basic")
slides("ETL1")
slides("ETL2")
slides("DataAnalysis")
slides("Visualization1")
slides("Visualization2")
slides("Visualization3")

長庚大學資訊管理系的曾意儒教授所撰寫的資料科學與R語言,結構分明,值得參考。 同時鼓勵參考Hastie等人之前寫的有關統計與機器學習的書:Trevor Hastie, Robert Tibshirani, and Jerome Friedman, 2008. The Elements of Statistical Learning: Data Mining, Inference, and Prediction (https://web.stanford.edu/~hastie/Papers/ESLII.pdf)