# 統計與資料分析 Lecture1
###### tags: `20200711` `statistics`
吳漢銘
台北大學統計學系 副教授
## 大綱-敘述統計與機率分布
主題1
* 為什麼學習機率統計? 為什麼要使用R?
* 傳統統計: 敘述性統計、推論統計
* 統計/資料探勘/數據科學/資料科學
* 描述資料: 中心趨勢,分散程度
* 範例: 「由財稅大數據探討臺灣近年薪資樣貌」
主題2
* 距離及相似度量測指標
* 相關係數: Pearson's rho、Spearman's rho、Kendall's tau
* 小樣本數高維度資料問題(HDLSS Problem) 「進階選讀」
主題3
* 常見統計名詞
* 機率分佈 (Probability distribution)
* 累積機率分配函數 CDF (p)
* 分位數 Quantiles (q)
主題4
* 常見之分佈(二項式分佈、常態分佈)
* 以常態機率逼近二項式機率 「進階選讀」
主題5
* 大數法則 (LLN)
* 中央極限定理 (CLT)
* 用R程式模擬算機率
---
主題 1
## 為什麼要學習機率統計
## 大師們的看法
> 考大學,備審資料寫喜歡數學,但老師不喜歡數學(笑)
>
書:統計與真理(C.R. Rao)
統計跟演算法差在哪裡??(沒講答案)
統計學是一個判斷的工具 ==> 提供客觀的標準
> 科學事實與統計思維 程開明 2015
> 我所理解的統計思維
> (重點是統計思維 => 統計工具的應用首先要了解"假設")
去Google上面關鍵字"統計思維"
統計方法是有假設的(統計學家的思考方式)
資工方法是把統計當做工具
## 為什麼使用R
> R的教學只存活三期,在AI學校。
做資料分析用R沒錯,因為他跨平台,Open Source,Free。
做統計、數學、資料分析 => R
> 目前版本為4.0.2,過去寫的程式碼可能不能用。
機器學習、AI => Python
程式語言排名(2020) Python是3、R是8,顯示有許多族群在使用
>寫程式是資料分析的必要技能
R因為是open source,因此有一些發展中的方法可以在R中被找到
許多統計的方法,在商用軟體中,如SAS,需要很長時間的驗證,並成熟使用後,才會被寫進軟體中
學術發展中,目前程式碼與資料都需要公開,因為過去再現性很差。
> Hadley Wichham 改變R的人 IOWA的統計博士
CUPSS <= 統計學的諾貝爾奬
R是根據資料科學而生的
>能夠把工作做好的都是好工具,不同的工具有不同的限制
早期有一個統計軟體叫S,商用軟體。
一隻猩猩要兩百萬美金(嚇)(覺得自己沒甚麼價值)
畢業才是真的,其他都假的(合理)
薪水才是真的
## 什麼是統計
統計是大量數值的資料,去蒐集、分析、解釋與呈現
> collection, analysis, interpretation, presentation
班上製造業最多,經理最多,40歲最多。(這就是統計)
投影片上的圖叫"直方圖"
傳統統計:
>敘述統計,對蒐集到樣本的「摘要的結果」 ex 說明某一現象、次數的分布 (直方圖)
>推論統計,考慮隨機性下,根據樣本的特性去推論母體的參數 (ex 在選取的時候,找一些有代表性的人做問卷訪談,來推論全部的投票人的意向)
統計沒有一個專門的「技師」,但可以應用在每個領域中
選舉的時候,抓一部分的人,來顯示推論結果,這就是我們理解的統計。
統計沒有執照,因為統計是在各行各業的。
## 統計模型、資料探勘、機器學習、人工智慧
**機器學習**:資料裡面去學習一個演算法出來,不用給規則就可以自己學習。(事實上還是需要一些規則)
機器學習:在一堆資料中,給予一些簡單的規則,讓電腦自己玩
**統計模型**:將變數的關係,用數學式去描述
network => model
weights => parameters
learning => fiting
generaliztion => test set performance
supervised leraning監督式學習 => 回歸跟分類 (在資工的角度,常缺乏機率的概念,而使得資工作出來的機器學習是一個「演算法」,只把所有的數據都丟進去處理,這使得在資料中的異常點,常被認為是突發的異常)
unsupervised learning =>density estimation/ clustering
(監督式學習 vs 非監督式學習,兩者間有一些模糊的界線)
投影片的圖不好,應該要換掉,統計跟機器學習是有重疊的(圖上沒有)
面試的時候問:什麼是知識經濟,什麼是資料探勘
統計學家在考慮問題是,會把「誤差」發生的「機會」放進模型中。
## 資料科學
是最最最外層的
AI沒有資料就沒辦法預測
主角是資料,不是演算法
沒有資料就是白搭
聽完16周,都沒有一個結果,所以開始要做專案,不用做出來,重點是idea。
> 最近的審查專案:毛小孩警示,心情顯示...。
但資料怎麼來??
電信資料要100萬
idea很棒,但沒有資料就白搭。
10萬人的經緯度資料,雖然有去識別化。但還是有機會被比對出來,就是不行,違反個資法。
資料科學: 資工技巧、數學與統計知識、領域專業知識
沒有統計沒有資料硬做很危險(Danger Zone!!!!)
## Types of Data Scales
文字無法運算,所以文字要數位化。
>Nominal 名目變數,要說明清楚,否則電腦會當成連續資料
>Ordinal 順序,如滿意程度,沒有倍數關係
>Interval 區間資料,如溫度,20度不能夠說是10度熱兩倍,他是依據某個標準所建立出來的差異
>Ratio (continuous data)連續資料,可以做數學運算,例如身高、分數
>
## 資料描述: 中心趨勢、分散程度
了解中心資料不有意義,還需要看分散程度。
資料中心趨勢 > 平均數、眾數(mode)、中位數(meidan,從小排到大,中間那一個)
資料分散程度 > 最常用的是標準差與變異數
資料從小排到大,中間是中位數,標準差是每一個人的數字減掉平均(有正方向,負方向所以先取平方)在除個數之後開根號。
這是理論圖型,常態分佈(高斯分布),機率密度圖型
> y = f(x)
>
用函式描述,讓資料可以算
## 資料描述: 偏態係數
全部加起來除N,平均數,一階動差
二階動差
三階動差(偏態係數)
偏態(skewness)係數
```
左偏分布 (b<0)mean<median<mode
右偏分布 (b>0)mode>mdeian>mean
```
平均數影響最大

> 上面的平方代表幾階(Xi - X)
## 資料描述: 峰態係數
峰態係數 (coefficient of kurtosis)
> 常態分布 Kc=0
> 狹峰 瘦瘦高高 Kc > 0
> 潤峰 矮矮胖胖 Kc < 0
內在性質就是四階動差
## 範例: 由財稅大數據探討臺灣近年薪資樣貌
筆電掉地上提醒下課時間到了~ (誇張)
女老師的工時比較長,薪資比較低
大家都是右偏代表薪資比較低,只有電氣燃料類左偏
> 老師不看政論節目了,聽久了會不太好,但要講的不是這個。
> 香港戶頭直接匯錢,(好棒哦)
## 玩玩看~薪情平臺
錢太多不一定開心,要有小確幸。
## 歷屆學員問題QA網址
```
http://www.hmwu.idv.tw/web/R_AI_QA/
```
## 作業
總共30題,不用全做
## Distance and Similarity Measure
**距離與相似尺度**
做群集分析或數據分析時,都要判斷「一不一樣」,所以要用回歸來分析,然後建立指標
Pearson Corelation coefficient
一群變數有沒有一致的相關性
相關係數矩陣 對角線 Rxy = 1
左上矩陣是相關係數矩陣(correlation matrix)。
(Andy疑問:所以這算是正規化嗎?)
Euclidean Distance
兩個人(含有一群屬性相似的變數,如身高、體重、頭髮長、手指長),進行「距離的分析」
產生距離矩陣>Distance matrix ( n by n )
=>clustering, algorithms
## 相關係數
等於0是沒有線性相關,不代表沒有相關
皮爾森相關係數計算時,如果有很大的離群值,那就會讓相關係數變得很差
Spearman rank correlation
把數值變成排名,可以降低極值的影響。
Kendall's tau >觀察有沒有"同一的配對"
C 大於零 代表有一至的變化
D 小於零 代表沒有一至變化
意義來至於分子
觀察兩組變數之間的關係
C : concordant pair 同一配對
D :
## Pearson's rho、Spearman's rho、Kendall's tau
(a)(b)都是線性關係,因為三個值都很棒
(c)就只有一半的線性關係,但還是有共同配對
(d)都很低 沒有關係
(e)也都很低,相關係數表示不出關係 (二次相關)
(f)
這三個方法,沒有辦法研究二次式的關係
三個指標對資料的結構有不同的解釋
## Similarity Measures for Categorical Data
離散的變數,有沒有變數可以用,有
## 常見統計名詞
randon experiment 隨機試驗,已經有「知道的可能結果」
Outcome 結果 一個隨機實驗的結果
Smple space 樣本空間, S 所有可能結果的集合 (例如丟銅板,正面與反面。正與反的結果就是sample space)
Event 事件,在樣本空間中的一個子集合,
Trail (試驗),在樣本空間中的最小的子集合
統計不會討論特殊的案子
學到最後被當掉的一堆,因為就開始不懂了。
## 機率與隨機變數
什麼叫隨機變數?
機率就是那一件隨機實驗一直重複做,我們關注的「事件」(E)平均發生的次數為多少。
> 告白越多次,才容易成功 (恩~機率)
>
隨機變數 random variable(簡寫 r.v.),用一個函式來描述事件
```
硬幣投擲實驗
X(正)=1
X(反)=0
```
用數學式子去代表某個東西,就是隨機變數。
```
P(X=x) = 0.5
```
用P表示機率,X為r.v.,x為值。
機率分布(probability distribution) 就是所有可能結果的機率狀況寫出來
## 機率質量函數(PMF) Probability Mass Function
```
𝜮fx(x) = 1 , 表示事件發生總機率為1
```
丟骰子發生的「點數」的機率是「離散型的均勻分布」
```
S = X1 + X2 , S也是機率變數
```
當數據是連續性的發生時,要用密度來描述
## 機率密度函數(p.d.f) Probability Density Function
```
橫軸是X,縱軸是y,
y = f(x) = ?
用函數y=f(x)來描述
條件:f(x) > 0 and ∫Sf(x)dx = 1
```
底下面積,也就是積分必須等於1,滿足這個條件,就叫機率密度函數。
如果符合常態分布的機率密度函數,標準差為0.341
## CRAN Task View: Probability Distribution
大部分的分布都可以透過某些轉換,可以轉換為常態分布,因此大部分的分布都可以利用常態分布所發展的公式來計算
## 機率分佈在統計學中的重要性
>book R.A.Fisher "Lady testing tea",統計改變了世界
喝奶茶,先加奶或先加茶,味道不一樣。(無聊趕快喝)
泡八杯,四杯先加奶,四杯先加茶。
演變出兩個變數之間有沒有關聯。
> R.A.Fisher 不愛教書,被學校開除
> 跑去農場上班,反而寫出兩本統計書
> 相對論,是因為這兩本書才想出來的
> Karl Pearson霸凌RAFisher
如果能夠決定所觀察現象(樣本)的機率分佈的參數,就可以了解所觀察現象的本質(母體)。==>用統計的理論作預測
> 如果找得到 p=f(t) 就不用來上課了,p是價錢 t是時間
## 常用機率分佈的應用
常態分布 => 描述誤差
Log normal distribution =>薪資、價格,利用log縮小差距
離散型分佈 => 丟骰子
二項式分佈 => 丟銅板、考試通過或不通過
負二項式分布 => 在一件事件成功之前發生的機率
Poisson 普瓦松分布
Chi squard distribution 卡方分布
F分布 A的Chi-squard distribution除以B的Chi-squard distribution
```
X^2(d1) / X^2(d2) = F 就是卡方分布
```
## 累積機率分配函數 CDF \(***p***\)
把機率累積累積累積起來
## 分位數 Quantiles (***q***)


平均分佈
QQ plot 用來檢查資料是不是來至於常態分布
百分之95的信心程度,就是來至於信賴區間
信賴區間是包含幾次的意思 (Andy表示聽不懂)
## 二項式分佈 (Binomial)
```
X~B(n,p)
```
n次實驗中p次成功
就是PMF
## 常態分佈
```
f(x,u,σ) = (1/(√2π)r) e^ -(x-u)^2 / 2σ^2
```
總是對稱鐘型
## 大數法則: The Law of Large Numbers
## 中央極限定理 (Central Limit Theorem)
每一個數據(資料)都是獨立的、統一的,在資料數量趨近於無限大時,"樣品的平均數"會趨近常態分布
Sn=X1+X2+...Xn
Zn=(Sn-nu)/(σ√n)會趨近於N(0,1) as n->ultimate
## 應用CLT算機率
這個是二項式分布,會寫函式了(才怪)
```
X~B(n,p)
n=1, p=0.7
E(x)=u=p=0.7
σ^2=n P (1-P) =1x0.7x0.3=0.21
```
有分布才能算機率
## 中央極限定理: 樣本平均之抽樣分佈
布朗大學做的seening theory
https://seeing-theory.brown.edu/probability-distributions/cn.html#section3
---
### 以下沒教
## 練習: 用R程式模擬算機率: 我們要生女兒
Source Code:
```
girl.born <- function(n, show.id = F) {
girl.count <- 0
for (i in 1:n) {
if (show.id) cat(i,": ")
child.count <- 0
repeat {
rn <- sample(0:99, 1, replace=T)
if (show.id) cat(paste0("(", rn, ")"))
is.girl <- ifelse(rn <= 48, TRUE, FALSE)
child.count <- child.count + 1
if (is.girl) {
girl.count <- girl.count + 1
if (show.id) cat("女+")
break
} else if (child.count == 3) {
if (show.id) cat("男")
break
} else {
if (show.id) cat("男")
}
}
if (show.id) cat("\n")
}
p <- girl.count / n
p
}
```
execution:
```
> girl.p <- 0.49 + 0.51*0.49 + 0.51^2*0.49
> girl.p
[1] 0.867349
> girl.born(n=10, show.id = T)
1 : (26)女+
2 : (81)男(42)女+
3 : (20)女+
4 : (53)男(17)女+
5 : (34)女+
6 : (36)女+
7 : (66)男(61)男(42)女+
8 : (50)男(48)女+
9 : (3)女+
10 : (97)男(7)女+
[1] 1
> girl.born(n=10000)
[1] 0.8636
>
```
## 進階選讀
### 二項式分佈
### 常態分佈
### 以常態機率逼近二項式機率
### High-dimensional data (HDD)
### HDLSS examples
### Efficient Estimation of Covariance: a Shrinkage Approach
### Example Script from corpcor Package
### Compare Eigenvalues