前言

由於人類越來越重視數據做為決策的依據,因此資料科學最近變得非常熱門,但是早在資料科學出現之前,統計學已經幫助我們描述資料以及找出變數之間的關係,而學好統計學能避免被龐大的資料所困惑。不論是資料科學或是統計學,都需要培養基本的技能,才能透視資料後面的故事。

R是免費的統計軟體,近年來廣被政治、經濟、醫學、管理等領域使用,有豐富的網路資源,不僅可用於各種統計模型,而且資料容易轉化為圖形,也就是視覺化非常容易,更可延伸至大數據分析。例如針對不同顏色鑽石的克拉數,用ggplot2畫成一個散佈圖:

require(ggplot2)
qplot(carat, data = diamonds, geom = "histogram",  fill = color)

本課程目的是用R實作統計,讓修課者同時學習統計以及操作R,未來能夠進一步延伸到其他的領域。
R與統計模型的網路資源非常豐富,對於同一個問題有不同的處理方式,授課老師可能只了解其中之一,因此上課內容不見得是唯一解決問題的方式,歡迎修課者隨時提出更佳的方法。 課堂上有部分時間講解統計以及研究設計,有部分時間實際操作軟體,希望能讓修課者做中學。對於更深入的統計原理有興趣的同學可請教本所老師,或者至其他系所修課。

課程目標

不論是統計或者資料分析,背後都需要有嚴謹的研究設計,本課程希望達到下列目標,但是也會時時提醒修課者培養看問題以及回答問題的敏銳度:

上課方式

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

評分方式

評分

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

作業

  • 每次上課後會有作業,請在下次上課之前繳交R的語法檔給助教以驗證執行。
  • 期末報告

  • 期末報告的要求是展示對於資料以及統計的學習成果。每一組應該有2到3位同學,每一組選擇一筆現有資料,或者自行建立資料,然後以R描述資料型態,並且說明變數之間可能的關係,最後以線性或者非線性迴歸模型檢證假設,但是在這個階段不一定要有非常顯著的發現。報告字數約在8000字以內,請說明每一位組員的分工。評分標準為:
    • 研究問題:10%
    • 資料收集與整理:40%
    • 資料分析: 30%
    • 整體寫作:20%

    期末報告內容:

    1. 研究問題
    2. 相關文獻
    3. 資料與變數
    4. 資料分析
    5. 結論

    期末報告進度

  • 報告題目與分組成員名單繳交期限:6月11日(星期二)
  • 期末課堂口頭報告:6月25日(星期二)
  • 期末聚餐:6月25日(星期二)
  • 書面報告繳交期限:7月26日(星期五)
  • 課程進度

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

    課程資訊

    上課時間

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

    上課地點

    270813

    討論時間

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

    助教

    劉明浩(東亞所博士生)

    參考書目

    • 統計學
    1. 林惠玲、陳正倉,現代統計學,第四版,雙葉書廊。
    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)
    • R
    1. 蔡佳泓,2014,基礎統計分析:R 程式在社會科學之應用,雙葉書廊。
    2. John Fox, 2002. An R and S-Plus Companion to Applied Regression, Sage.
    3. John Verzani, 2001. Using R for Introductory Statistics. (https://cran.r-project.org/doc/contrib/Verzani-SimpleR.pdf)
    4. 劉正山,2018,民意調查資料分析的R實戰手冊,五南出版社。

    網路資源

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

    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") #Basics: data type, basic operations, etc.
    slides("ETL1")  #ETL on R
    slides("ETL2")  #Web scrapping
    slides("DataAnalysis")   #Data analysis 
    slides("Visualization1") #R basic visualization
    slides("Visualization2") #R visualization using ggplot2
    slides("Visualization3") #R markdown

    以下介紹幾個線上的資源:

    上課講義與資料

    請到我的Github下載或是線上閱讀講義,並且下載相應的資料到電腦主機: https://github.com/TsaiChiahung/SocialStat2019 或者是到 https://rpubs.com/chiahung_tsai/ 閱讀上課內容。

    下載R

    搜尋R project就可以找到R的網站,請找download R的連結,然後按照電腦的系統下載最新的版本。

    裝設RStudio

    R本身介面並不太友善,RStudio R Studio Logo 是一個免費的IDE,下載R之後請下載RStudio (http://rstudio.com)。 如果喜歡把輸出結果放在右上角,可在RStudio設定:View–>Panes–>Console on Right

    安裝相關套件

    請在上課前安裝一些常用的套件。有些套件包含其他的套件,所以可以省一些工作。例如輸入:

    mypkg <- c('foreign','ISLR','tidyverse','Zeligverse','car','ggplot2','UsingR','lattice','nycflights13', 'stargazer','e1071',
    'CTT','ggthemes','Rcolorbrewer')
    install.packages(mypkg)
    

    設定Rproj

    R可讓使用者在R–>環境設定中,設定要讀取資料來自的資料夾,或是儲存資料之前指定工作目錄,以確定分析結果例如畫圖可以儲存到特定的資料夾。也可以用語法表示,例如:

    setwd('C:/my documents/mywork')
    

    RStudio可以建立一個計劃案,連結特定的資料夾。每次只要打開這個計劃案,就不需要記憶資料夾的路徑,資料讀取、結果儲存都會到這個計畫案所在的資料夾。請參考以下步驟:

    1 假設在你的桌面開一個工作目錄叫做 class2019

    2 到本課程的moodle下載壓縮檔,解壓縮,然後複製貼上資料檔到class2019

    3 到RStudio–>File–>New Project–>existing director–>Browse (找到class2019)–>Create Project–Switching to project

    4 資料檔應該都在RStudio右下角的視窗了,下次你開RStudio,File–>Recent projects,選擇class2019,就會看到所有相關檔案在右下角。

    5 如果你打開Class2019這個Project但是不小心跳到別的資料夾,到右下角找到More–>Go To Working Directory,應該就會回到class2019

    每一次進入RStudio之後,請打開想執行的計劃案,才能進入正確的路徑,否則RStudio的內建路徑是由Tools–>Global Options–>General決定。