統計基本觀念建立與認識R的基本操作

高雄市政府衛生局

講者
單位
劉正山 教授

國立中山大學政治學研究所

日期

2023.05.26

講座流程

  • 上半場(14:00~15:30):基本觀念與操作

  • 下半場(15:40~16:40):觀念應用與案例操作

  • Q&A問與答(16:40~17:00)

開始之前請準備好

關於講者劉正山老師

民意調查資料分析的R實戰手冊(2018)

愛上統計學使用R語言(2021)

圖 2.1: 本次講解參考的兩本教材

基本觀念與操作

統計是什麼?

  • 統計(statistics)是個收集、分析和解釋數據的學問,分為描述性統計和推論性統計,也是今日新興的「資料科學」的基礎。

  • 描述統計用於認識資料(樣本)的特性。

  • 推論統計用於推斷資料背後群體(母體)的特性,而且可以用於探討概念之間的潛在關係。

    圖 3.1: 母體與樣本之間的關係(圖片來源:《民意調查資料分析的R實戰手冊》p.21 )

你看得懂民調嗎?

  • 民調為什麼本來就不會準?(它是「一個」民調)

  • 賽馬式民調在吵什麼?(你把民調數字當真相)

談談推論統計上的一個神奇定理:中央極限定理

我們一起點開這張圖(連結:https://bit.ly/3osMKcD),跟著老師一起操作。

圖 3.2: 中央極限定理(圖片來源:《民意調查資料分析的R實戰手冊》p.23)

從統計的角度來看懂民調的秘密

圖 3.3: 機率與面積:68-95-99法則(圖片來源:https://pansci.asia/archives/362484)

::: {#fig-meanand median}

常態分布中的平均數(表示資料的中間傾向)與標準差(表示資料的離散程度)(圖片來源:https://pansci.asia/archives/362484) :::

normal distribution

圖 3.4: 經驗資料經過「標準化」之後的常態分佈

圖片來源:https://haosquare.com/confidence-interval/

圖 3.5: 從許多樣本的信賴區間,找找看母體的真相在那裡(圖片來源:https://haosquare.com/confidence-interval/)

圖 3.6: 民調不能當賽馬看。真相不是那個數字,而是存在區間之間。(圖片來源:https://ishort.ink/thrv)

  • 民調本來就不一定會準,但有一定前提可以相信。
  • 賽馬式民調忽略了真相在區間裡,而不是在單點的預測上。

小結

  • 統計是讓你變得宏觀、變聰明的知識。
  • 擁抱統計能讓你探索世界的真相,不會人云亦云。

觀念應用與案例操作

為什麼R值得去認識一下?

RStudio跟R是什麼關係?

圖 4.1: 引擎(R)與車體(RStudio)合體後由你駕馭,但要注意維修工廠不同(圖片來源:https://ishort.ink/JcjM)

R與Excel/SPSS操作最大的不同

  • 最重要的差異:使用語法(而非滑鼠點放)來取用資料,例如 資料檔物件$變數

  • 第二重要的差異:

    • 語法檔可保留下來供檢誤與再製(所以沒有黑箱)

    • 可以用時開啟多個專案及多個資料檔進行分析

  • 第三重要的差異:

    • 拼裝車(有褒意也有貶意)

    • 並非全中文環境

    • 對一般人來說挺大的學習曲線(但那個軟體不是呢?)

    • 有師傅帶著入門最好,但自學環境與材料在今日已相當充足

    • 長期使用要懂得保養:維護引擎(R)、車體(RStudio)與配件(外掛/套件)

啟動你的第一個R專案

  • 請跟著老師一起做

品嘗用R來學習統計觀念

信賴區間的基本概念

假設在2023年全台灣成年合格選民有1900萬人,經普查發現支持「電價緩漲」的比例為56%。今天我們進行一次民意調查,全台灣隨機抽出1,068位合格選民電訪,問他們支持「電價緩漲」比例為何?

Code
pop <- rep(0:1, c(1900000-0.56*1900000,0.56*1900000))

#創造出一個虛擬母體
mean(sample(pop,1068)) #從中抽樣
[1] 0.566

如果你在R上反覆執行上兩行的指令,你會發現每次抽樣得到數值(支持比例)都會不一樣,但你也會發現它們之間的差異不會大到那裡去。也就是說抽樣平均數呈現某種程度的分配(在本例中為常態)。現在我們抽樣3000次(且不重複抽樣),並看看這些平均數的分配情形。

Code
result <- replicate(3000, mean(sample(pop,1068, replace=TRUE)))
mean(result)
[1] 0.56
Code
hist(result)

用R來做描述統計

本次專案資料來源

  • 微笑小熊調查小棧:smilepoll.tw 相聚時光烤不烤

  • 調查時間:2017/11/06~2017/12/05

  • 受訪人數:650人

變數的讀入、製圖與製表

RStudio可以讀入Excel, SPSS, SAS等軟體的資料檔,例如

Code
library(foreign)
bbq <- read.csv("BBQ.csv")

library(readxl)
bbq <- read_excel("BBQ.xlsx") 

但這次我們使用R專屬的格式來操作。

Code
load("BBQ.rda")
library(sjPlot)
library(sjmisc)

# (V44r)說到烤肉,請問您明年會不會想全家人一起烤肉? (0~10) 0:5=0[不會]; 6:10=1[會]
frq(bbq$V44r)
說回到烤肉,請問您明年會不會想全家人一起烤肉? (x) <categorical> 
# total N=650 valid N=650 mean=0.53 sd=0.50

Value | Label |   N | Raw % | Valid % | Cum. %
----------------------------------------------
    0 |  不會 | 306 | 47.08 |   47.08 |  47.08
    1 |    會 | 344 | 52.92 |   52.92 | 100.00
 <NA> |  <NA> |   0 |  0.00 |    <NA> |   <NA>
Code
plot_frq(bbq$V44r) 

以下請你自己來試試看能不能快速為變數來製表製圖

Code
#(V18r)如果大家都烤肉,您會覺得「不好玩」嗎?
#  跟別人做類似的活動,不好玩  1
#  跟別人做類似的活動也很ok啊 0

# (V20r)您覺得戶外的烤肉對您的健康有多大影響?
#  影響很大 1
#  影響不大 0
#  完全沒影響 0

# (V21r)對您來說,烤肉費用的支出是不是一種負擔?
#  是,的確是種負擔 1
#  還好 0
#  不會 0

# (V23r)準備烤肉食材對您來說會不會很麻煩?
#  會麻煩 1
#  不會麻煩 0

# (V27r)您在不在意您烤肉時造成的污染?
#  會在意,覺得多少影響了環境 1
#  還好 0
#  不會在意 0

# (V45r) 平時用社群媒體(Line, Facebook等)與家人聯繫感情。您覺得夠不夠?
#  很夠了。科技讓我與家人緊緊連在一起,年節不見面也不要緊。 0
#  還算夠。有了科技,家人不必一定要聚在一起。 0
#  不夠!見面較能聯絡感情,所以仍然要經常找時間團聚。 1
#  絕對不夠!我不太相信用社群媒體可以聯繫感情,一定要見到面才行。 1

#  (V48r) 大家圍著烤肉比其他活動要較為容易聯絡感情。
#  同意。 1
#  不會/不見得。 0

用R來做推論統計

探索式分析:描述與推想

會覺得「見面團聚取代使用手機」(v45r)比較重要的人,跟「覺得自己時間充裕」(v37r)有沒有關係?會是什麼樣的關係呢?

  • 虛無假設(H0):兩者無關

  • 替代假設(H1):兩者有關

Code
load("BBQ.rda")
library(sjPlot)
tab_xtab(bbq$V37r, bbq$V45r, 
         show.row.prc = TRUE, # 顯示列百分比
         show.col.prc = TRUE  # 顯示欄百分比
         )
最後,我們來談談節慶與團聚。
請問您覺得一天之內自己可以自由支配的時間(用來做自己想做的事)大約有多少?
平時用社群媒體(Line,
Facebook等)與家人聯繫感情。您覺得夠不夠?
Total
不常見面不要緊 見面是必要的
足夠 173
39.1 %
73.9 %
269
60.9 %
65.5 %
442
100 %
68.5 %
不夠 61
30 %
26.1 %
142
70 %
34.5 %
203
100 %
31.5 %
Total 234
36.3 %
100 %
411
63.7 %
100 %
645
100 %
100 %
χ2=4.588 · df=1 · φ=0.088 · p=0.032
  • 發現:假設得到支持,而且…

驗證式分析:解釋與預測

  • 劉老師問大家:「明年中秋你們家會不會烤肉?」

  • 全班的同學七嘴八舌一番後提出了七個假設:

    • 假設一:對烤肉的新鮮感不再(V18r)便會降低明年烤肉的意願V44r

    • 假設二:覺得烤肉影響健康(V20r)便會降低明年烤肉的意願

    • 假設三:覺得烤肉花費造成負擔(V21r)便會降低明年烤肉的意願

    • 假設四:覺得烤肉麻煩(V23r)便會降低明年烤肉的意願

    • 假設五:覺得烤肉影響環境(V27r)便會降低明年烤肉的意願

    • 假設六:覺得不必要見面(V45r)就能聯絡感情會降低明年烤肉的意願

    • 假設七:認為烤肉不是聯絡感情的首選(V48r)便會降低明年烤肉的意願

Code
load("BBQ.rda")
mod.1 <- glm(V44r ~ V18r+V20r+V21r+V23r+V27r+V45r+V48r, 
             data=bbq, 
             family=binomial)
summary(mod.1) 

Call:
glm(formula = V44r ~ V18r + V20r + V21r + V23r + V27r + V45r + 
    V48r, family = binomial, data = bbq)

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)   -0.103      0.261   -0.39  0.69368    
V18r1         -0.932      0.259   -3.59  0.00033 ***
V20r1         -0.230      0.203   -1.13  0.25797    
V21r1         -0.254      0.205   -1.24  0.21426    
V23r1         -0.701      0.232   -3.01  0.00257 ** 
V27r1         -0.111      0.206   -0.54  0.59075    
V45r1          0.517      0.192    2.70  0.00701 ** 
V48r1          1.803      0.187    9.64  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 892.04  on 644  degrees of freedom
Residual deviance: 710.49  on 637  degrees of freedom
  (5 observations deleted due to missingness)
AIC: 726.5

Number of Fisher Scoring iterations: 4
  • 發現:假設一、四、六、七得到這筆資料的支持,意味著…

結語及對答