課程資訊

上課時間

2/18-6/10,星期五,9:10-12:00

上課地點

270813

課程簡介

R 是什麼?

  • 1991年,Ross Ihaka與Robert Gentleman開發R,前身為S-Plus,雖然R跟S-Plus是不同的軟體,但兩者的語法有許多重疊的地方。

  • R是免費、開源軟體,目前R已經有超過9000個套件(package),每個套件儲存資料、函數、文件等等。除了進行統計、機器學習、資料視覺化,也可以用R的套件撰寫html文件,或者轉換為PDF,文件中可以結合R的統計功能,也就是文件中的統計、資料視覺化都是由同一組語法產生,不需要在別的地方製作,再複製貼上目前的文件。

  • R 有6種物件(object),每一種物件有兩種屬性:長度以及屬性。這6種物件為向量(vector)、矩陣(matrix)、陣列(array)、列表(list)、因素(factor)、資料框(Data Frame)。

課程目標

上課方式

評分方式

評分

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

作業

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

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

    期末報告內容

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

    期末報告進度

    1. 報告題目與分組成員名單繳交期限:5月13日(星期五)
    2. 期末課堂口頭報告:6月10日(星期五)
    3. 書面報告繳交期限:7月15日(星期五)

    課程進度

    週次 日期 主題 說明 參考書籍
    1 2/18 課程簡介、安裝R 介紹本課程,以及R的特點,以及說明如何安裝RRStudio,以及安裝套件 蔡(Ch.1, 2)
    2 2/25 資料型態 將說明R的資料型態,包括數值、字串等等,以及R的向量、因子、列表、矩陣等等結構,以及資料框與資料表 蔡(Ch.3, 4, 5),Verzani(Ch. 1)
    3 3/4 資料讀取以及常用指令 介紹常用指令以及如何讀取外部資料
    4 3/11 條件判斷、迴圈 將解釋如何設定條件讓R依照邏輯計算答案,以及如何設定迴圈 蔡(Ch.7),Verzani (Ch.6)
    5 3/18 資料視覺化(1) 介紹基礎繪圖指令 課堂上投影片
    6 3/25 資料視覺化(2) 介紹ggplot2以及ggpubr等套件的指令 課堂上投影片
    7 4/1 描述統計:集中趨勢、離散程度 介紹描述統計的集中趨勢以及離散程度,例如平均值、中位數、標準差等等 蔡 (Ch.7) ,Verzani (Ch.2),林與陳(Ch.3-4)
    8 4/8 統計估計、假設檢定 點估計的意義以及信賴區間的計算 Verzani (Ch. 8, 11),林與陳(Ch. 10, 11)
    9 4/15 相關分析、卡方檢定 介紹兩個非連續變數之間的關聯,以及卡方檢定 蔡(Ch.7),Verzani (Ch.9),林與陳(Ch.12)
    10 4/22 平均數檢定、變異數分析 說明雙母體參數估計以及連續變數的變異數分析 Verzani (Ch. 8, 11)
    11 4/29 線性迴歸原理 說明線性迴歸的原理以及假設檢定 蔡(Ch.8, 10),Verzani (Ch.10),林與陳(Ch.9-10)
    12 5/6 單迴歸 說明信賴區間以及如何以圖形詮釋迴歸 James等人(Ch. 3),林與陳(Ch. 14)
    13 5/13 複迴歸、虛擬變數、交互作用 說明有兩個以上的自變數時的迴歸模型,以及其中有一個是類別變數,以及兩個自變數之間有交互作用時的估計方式 James等人(Ch. 3)
    14 5/20 校慶運動會 不上課
    15 5/27 最大概似法、二元勝算對數迴歸模型 介紹最大概似法與非線性迴歸模型應用在依變項為二元而非連續變數 Verzani (Ch. 12),James等人 (Ch. 4)
    16 6/3 端午節 不上課
    17 6/10 期末課堂報告 每位同學須以投影片報告即將繳交的期末報告內容

    討論時間

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

    助教

    • 郭淨源(Email: 108260015 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實戰手冊,五南出版社。

    網路資源

    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

    上課講義與資料

    使用R的步驟

    下載R

    • 搜尋R project就可以找到R的網站The Comprehensive R Archive Network,簡稱CRAN,請找download R的連結,然後按照電腦的系統(Windows, Linux, Mac),到任何一個國家的載點,下載最新的版本。

    裝設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', 'dplyr', 'tidyr', 'emoGG', 'ggthemes', 'psych', 'ggstatsplot',
    'CTT','TSstudio','Rcolorbrewer')
    install.packages(mypkg)
    • 如果不能在CRAN找到想要的套件,可能是放在Github,這時候要先載入devtools這個套件,然後去Github找可以下載套件的地方,例如:
    install.packages('devtools') #assuming it is not already installed
    library(devtools)
    devtools::install_github(
      repo = "jtlandis/ggside", # package path on GitHub
      dependencies = TRUE,              
      quick = TRUE                         # skips docs, demos, and vignettes
    )                

    更新R

    • R的版本有可能會隨著時間而更新,建議定時到CRAN下載最新版的R。然後重開RStudio,讓RStudio會使用R的最新版本。

    • 而我們下載的各種套件,在Mac系統上,可以用updateR套件更新,指令如下:

    library(devtools)
    install_github('andreacirilloac/updateR')
    library(updateR)
    updateR(admin_password = 'Admin user password')
    • 在Windows系統上,請用installr套件更新,指令如下:
    library(installr)
    updateR()

    設定Rproj

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

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

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

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

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

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

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

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