# 統計與資料分析 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 ``` 平均數影響最大 ![](https://i.imgur.com/ob6gjMF.png) > 上面的平方代表幾階(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***) ![](https://i.imgur.com/Vsqp0DF.jpg) ![](https://i.imgur.com/CBCijAS.jpg) 平均分佈 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