## **【Statistics 基礎統計:描述性統計】** :::info - 樣本或群體/母體 (Sample or population) : 樣本是從母體中抽取的一部分數據,用於進行統計分析和推論 - 參數(parameter):由群體資料所計算之群體表征值 - 統計量(statistic):由樣本資料所計算之樣本表徵值 - 常見符號、 - 群體 - 群體總體(N)、單一(X) - 群體平均數(𝜇 ,讀作 mu) - 群體標準差(𝜎 ,讀作 sigma) - 群體變異數=標準差的平方(σ2 平方,讀作sigma squared) - 群體相關係數(ρ, 讀作 rho) - 群體比例 ( P) - 樣本 - 樣本總體(n)、單一(x) - 樣本平均數(-x ,讀作 x bar) - 樣本標準差(s) - 樣本變異數=標準差的平方(s2 平方,讀作s squared) - 樣本相關係數 ( r) - 樣本比例 (^p,讀作 p-hat) - 描述性統計(Descriptive Statistics): 總結和描述收集到的數據,例如平均值、中位數、標準差等,或者有人說是「總結變量的特徵」,有助於對數據的整體情況有一個初步的理解 (類似 pandas value_count()) - 數值變量(Numerical) - 數值變量(Numerical) - 定性變數(Qualitative random variables) - 定量變數(Quantitative random variables) - 分類變量(Categorical) - 集中趨勢(Measures of Central Tendency): 用來描述數據集中程度或中心位置的統計指標 - 中位數 Md(Median):將數據排序後位於中間位置的值 - 眾數 Mo(Mode):一組數據中出現頻率最高的值 - 平均數(Mean):數據的平均值 - 分散或變異趨勢(Dispersion or Variability): 度量資料分佈中每個資料點與資料集平均值,之間的差異或分散程度 - 全距(Range):資料集的最大值和最小值之間的差距 - 方差(Variance): 每個數據點到平均值的平方差,將這些平方差加總/數據的總個數,是一個衡量數據分散程度的指標 - 標準差(Standard Deviation):方差的平方根,也是一個衡量數據分散程度的指標,通常比方差更容易理解,因為它的數值和原始數據的單位一致 - 變異數(Variation): 標準差的平方,每個數據點到平均值的平方差的平均。用來衡量數據分散程度,越大表示數據越分散 - 相對變異數(Coefficient of Variation): 比較不同數據集的離散程度。標準差/平均值*100%。將不同資料集的離散程度進行比較,而不會受到其量綱的影響 - 絕對變異數(Absolute Variance): 每個數據點到平均值的絕對差的平均,然後將這些絕對差加總,最後除以數據的總個數,是一個衡量數據分散程度的指標,考慮的是絕對值,當數據集包含離群值(Outliers)時,絕對變異數不受"極端"離群值的影響 - Z分數 (z-score) : 代表與標準差的距離,(數字-平均值)/標準差,表示一個特定數據點在數據集中相對於平均值的位置 - 經驗法則(Empirical Law) - [z分配表](http://www.cust.edu.tw/mathmet/stat/z-dist.pdf) - 柴比雪夫不等式(Chebyshev's inequality):是一種"保守估計"隨機變數與期望值的距離,"不須限制"為鐘型 - 馬可夫不等式(Markov's Inequality): 用來估計一個非負的隨機變量大於等於某個正數的概率 - 四分位數(Quartiles,QD):數據分為四等分的值,包括第一四分位數、第二四分位數(中位數)和第三四分位數 - 四分位距(Interquartile Range,IQR):第三四分位數和第一四分位數之間的距離,用於度量數據的變異性 - 異常值(Outliers):數據集中明顯偏離其他數據點的。通常,資料集中小於 Q1 - 1.5 * IQR 或大於 Q3 + 1.5 * IQR 的值被視為異常值 - 練習 - 協方差(Covariance)是用來衡量兩個隨機變數之間關係的統計量。它表示兩個變數的變化程度是否相關。正協方差表示正相關,負協方差表示負相關,而接近零的協方差表示無關 - 歸一化 : 將不同資料的數值範圍縮放到相似的尺度,以便更好地進行比較、分析和處理,確保在機器學習和資料分析中具有相同的權重,防止某些特徵對模型產生過大的影響 - 取log(對數轉換): 處理數據的偏斜分佈(skewed distribution)或異常值(outliers),可以使偏斜的數據更加對稱,使其更適合應用統計方法,如線性迴歸 - 最小-最大縮放(Min-Max Scaling):將資料線性縮放到指定的範圍,通常是 [0, 1] - 標準分數(Z-Score):表示一個數據點與平均值之間的距離 - 小數定標標準化(Decimal Scaling):將資料除以一個適當的冪,以將其縮放到 [-1, 1] 或其他所需範圍。 通常使用 10 的冪進行縮放,例如 10^k,其中 k 是足夠大的值,以便資料被縮放到所需範圍 - TF-IDF(詞頻-逆文檔頻率): 是一種用於文字資料的歸一化方法,用於衡量單字在文件集合中的重要性。 通常使用機器學習庫(如 scikit-learn)來計算 TF-IDF 值 - 不對稱性(Asymmetry):用來描述資料分佈的不對稱程度 - 偏度(Skewness):衡量資料分佈的偏斜程度,正偏斜表示資料右偏,負偏斜表示資料左偏 - 峰度(Kurtosis):衡量資料分佈的尖峰或扁平程度,正峰度表示尖峰,負峰度表示扁平 - 抽樣分佈(Sampling Distribution):從一個總體(或總體分佈)中多次抽取樣本,計算每個樣本的統計量(如平均值、變異數、比例等)後,所得到的分佈 - 中心極限定理(Central Limit Theorem):當從一個母體中隨機抽取多個樣本時,樣本均值的分佈將趨近於常態分配,不論母體分佈是什麼 [【統計機率分配】](https://hackmd.io/@workcata/BkJoaU4ST) - 標準誤差(Standard Error) ::: :::warning 筆記中練習的都是 excel func + python code - 課程、網頁: - 中華科大 CUSTCourses [【統計學-李柏堅】](https://www.youtube.com/watch?v=sXMOx9Pbpe4&list=PLP1Ynr8cs97tPCMS0jOEYFNJoz7CelIJ5) - 交大 OCW 公開課程[【統計學(一)(基礎統計) - 工業工程與管理學系 唐麗英老師】](https://www.youtube.com/watch?v=3okbnliWIlU&t=2s) - Udemy [【Statistics for Data Science and Business Analysis】](https://www.udemy.com/course/statistics-for-data-science-and-business-analysis/?utm_source=adwords&utm_medium=udemyads&utm_campaign=DSA_Catchall_la.EN_cc.ROW&utm_content=deal4584&utm_term=_._ag_88010211481_._ad_535397282061_._kw__._de_c_._dm__._pl__._ti_dsa-41250778272_._li_9040379_._pd__._&matchtype=&gclid=CjwKCAjwsKqoBhBPEiwALrrqiMy7g9P6ZjPz6g4QXJXkRJhSUlR3kmZe9yeE5s2V5_QoLJyyjvObHxoC_HEQAvD_BwE) - 進階 [【Dr. Shao-Wei Cheng】](http://www.stat.nthu.edu.tw/~swcheng/Teaching/index.html) - 朋友推薦的書籍: ::: ![](https://hackmd.io/_uploads/HyGtUhu16.png) ![](https://hackmd.io/_uploads/S1lg6vqJa.png) ![](https://hackmd.io/_uploads/SJdd89kD0.jpg) <br/> ### 基本觀念 ### :+1:樣本或群體/母體 (Sample or population) : 樣本是從母體中抽取的一部分數據,用於進行統計分析和推論 > >群體(Population) N、樣本(Sample) n <br/> ### :+1:參數(parameter):由「群體」資料所計算之群體表征值=群體的特定數值 假設想知道一家半導體廠,晶片的厚度。隨機抽取200片 群體的厚度平均數 = 參數 <br/> ### :+1:統計量(statistic):由「樣本」資料所計算之樣本表徵值 假設想知道一家半導體廠,晶片的厚度。隨機抽取200片 200片厚度平均數= 統計量 假設想知道一家半導體廠,隨機抽取200片,8片是瑕疵品 8/200=4%=統計量 <br/> ### :+1:常見符號、公式 - 群體 - 群體總體(N)、單一(X) - 群體平均數(𝜇 ,讀作 mu) ![螢幕擷取畫面 2023-11-28 171524](https://hackmd.io/_uploads/BkOCy4QHa.png) - 群體標準差(𝜎 ,讀作 sigma) ![螢幕擷取畫面 2023-11-28 171538](https://hackmd.io/_uploads/SypA1V7rp.png) - 群體變異數=標準差的平方(σ2 平方,讀作sigma squared) ![螢幕擷取畫面 2023-11-28 171546](https://hackmd.io/_uploads/BJg-JlVQrp.png) - 群體相關係數(ρ, 讀作 rho) - 群體比例 ( P) <br/> - 樣本 - 樣本總體(n)、單一(x) - 樣本平均數(-x ,讀作 x bar) ![螢幕擷取畫面 2023-11-28 171622](https://hackmd.io/_uploads/r1QEl4Qrp.png) ![螢幕擷取畫面 2023-11-28 172025](https://hackmd.io/_uploads/SJqy-EmS6.png) ![螢幕擷取畫面 2023-11-28 172117](https://hackmd.io/_uploads/SJ77WNXSp.png) - 樣本標準差(s) n-1是為了進行不偏估計 ![螢幕擷取畫面 2023-11-28 205912](https://hackmd.io/_uploads/ByZN4w7r6.png) - 樣本變異數=標準差的平方(s2 平方,讀作s squared) ![螢幕擷取畫面 2023-11-28 171639](https://hackmd.io/_uploads/H1SflEQHp.png) - 樣本相關係數 ( r) - 樣本比例 (^p,讀作 p-hat) <br/> ### :+1:描述性統計(Descriptive Statistics): 總結和描述收集到的數據,例如平均值、中位數、標準差等,或者有人說是「總結變量的特徵」,有助於對數據的整體情況有一個初步的理解 ![](https://hackmd.io/_uploads/B1UGZsPb6.jpg) 方法:使用各種統計量和圖形工具來呈現資料的摘要訊息,平均值、中位數、眾數、變異數、標準差、分位數、直方圖、箱線圖等 <br/> ### :+1:數值變量(Numerical) - 定性變數(Qualitative random variables) : 定性變數產生類別資料,即隨機数的各結果不能以數量表示,而僅能依其特性之類別表之 適合用 bar chart(不同類別/時期)、pie chart(單一總量合->切割成不同類別)、pareto diegram(類別型資料,重要少數,瑣細多數。找到少數關鍵原因,大多數問題會跟著改善。橫軸必須是**類別/時間(月份、年份)**,下面詳載次數+百分比+累加百分比;縱軸左邊是**發生次數**,由高到低,縱軸右邊是**累加百分比**) - 搭配離散隨機變數(Discrete Random Variable)「次數」畫出圖。例如,性別(gender)、國籍(Nationality)、造成產品赞異之可能原因(Causes for variation適合用 bar chart、pie chart、pareto chart。 - 定量變數(Quantitative random variables) : 可以被量化或測量的變數,通常以數值形式表示,身高、體重、年齡、收入等 適合用莖葉圖 stem-leaf display(快速**排序**)、直方圖 histogram(展示資料之分布,長度/分數)、散佈圖 scatter diagram(二維圖,兩個**變數**之間的關係,探討日均溫對冰淇淋銷量影響)、時間序列圖 line chart(資料在**不同時間**的觀測值,橫軸為時間,縱軸為觀測值的**單位數量**) - 搭配離散隨機變數(Discrete Random Variable):經由計教的方式取得變數之资料。例如,不良品個數(Defcctiveitms)、一份文件之錯誤字数、晶圓上之缺陷點數(0Defectcounts) - 搭配連續隨機變數(Continuous Random Variable):經由量测的方式取得變資料。例如,重量、高度、溫度 ![](https://hackmd.io/_uploads/r12NcxKZa.png) ![](https://hackmd.io/_uploads/ByCE9gK-a.png) - 分類變量(Categorical) 也稱為類別變量或類別型變量,代表的是不同的類別或類型,通常是以文字形式表示。例如,性別(男、女)、地區(東部、西部、南部、北部)、產品類別(電子產品、食品、服裝)等 PS 「分類變量」和「定性變數」是統計學中描述資料特性的術語,它們之間存在一些差異,但通常用法上可以視為相同 ![](https://hackmd.io/_uploads/ryNBeWKZ6.png) <br/> ### :+1:集中趨勢(Measures of Central Tendency, Location): 用來描述數據集中程度或中心位置的統計指標 - 中位數 Md(Median):將數據排序後位於中間位置的值 *excel: =median(B2:B20)、median(FILTER($B$2:$B$20,$A$2:$A$20=C1)) (要計算欄位,查詢欄位, 查詢條件) 母體奇數 (N+1)/2 母體偶數 N/2 和 N/2+1 平均數 樣本奇數 (n+1)/2 樣本偶數 n/2 和 n/2+1 平均數 ```= import numpy as np data = [1, 2, 3, 4, 5] median = np.median(data) print("中數:", median) ``` - 眾數 Mo(Mode):一組數據中出現頻率最高的值 *excel: =mode.sngl(B2:B20)、mode.mult(FILTER($B$2:$B$20,$A$2:$A$20=C1)) (要計算欄位,查詢欄位, 查詢條件) ```= from statistics import mode data = [1, 2, 2, 3, 4, 4, 5] mode_value = mode(data) print("眾數:", mode_value) ``` - 平均數(Mean):數據的平均值 *excel: =average(B2:B20)、averageifa(B2:B20,A2:A2O,D1:E1) (要計算欄位,查詢欄位, 查詢條件) ```= data = [1, 2, 3, 4, 5] mean = sum(data) / len(data) print("平均數:", mean) ``` <br/> ### :+1:分散或變異趨勢(Dispersion or Variability): 度量資料分佈中每個資料點與資料集平均值,之間的差異或分散程度 - 全距(Range):資料集的最大值和最小值之間的差距,資料太多或有離群值不適合 ```= 假設有以下數據集 data_set = [2, 4, 4, 10, 5, 5, 7, 9] # 計算資料集的範圍 data_range = max(data_set) - min(data_set) print(f"數據集的範圍是:{data_range}") = data_set = [2, 4, 4, 10, 5, 5, 7, 9] # 對資料集進行排序 sorted_data = sorted(data_set) # 計算範圍 data_range = sorted_data[-1] - sorted_data[0] print(f"資料集的範圍為: {data_range}") ``` - 方差(Variance): 每個數據點到平均值的平方差,然後將這些平方差加總,最後除以數據的總個數,是一個衡量數據分散程度的指標*excel: =VAR.S(D2:D100) ![螢幕擷取畫面 2023-11-28 174549](https://hackmd.io/_uploads/Skdkw4mr6.png) ![螢幕擷取畫面 2023-11-28 174555](https://hackmd.io/_uploads/rJnyPEQBT.png) ```= import numpy as np data = [1, 2, 3, 4, 5] variance = np.var(data) print("方差:", variance) ``` ```= # 數學公式寫法 假設有以下數據集:[2, 4, 4, 4, 5, 5, 7, 9] 步驟1:計算平均值(均值) (2 + 4 + 4 + 4 + 5 + 5 + 7 + 9) / 8 = 40 / 8 = 5 步驟2:計算每個數據點與平均值的差異 (2 - 5)² = 9 (4 - 5)² = 1 (4 - 5)² = 1 (4 - 5)² = 1 (5 - 5)² = 0 (5 - 5)² = 0 (7 - 5)² = 4 (9 - 5)² = 16 步驟3:將差異的平方相加 9 + 1 + 1 + 1 + 0 + 0 + 4 + 16 = 32 步驟4:除以數據的總數 32 / 8 = 4 ``` - 標準差(Standard Deviation):方差的平方根,也是一個衡量數據分散程度的指標,通常比方差更容易解釋,因為它的數值和原始數據的單位一致 數字分佈越接近平均值,標準差越低,數據越集中;標準差越高,數據越分散 *excel: =STDEV.S(D2:D100)、=STDEV.S(FILTER($B$2:$B$20,$A$2:$A$20=C2)) ![螢幕擷取畫面 2023-11-28 174336](https://hackmd.io/_uploads/BkKt8NQrT.png) ![螢幕擷取畫面 2023-11-28 205753](https://hackmd.io/_uploads/rJXc4PmST.png) ![螢幕擷取畫面 2023-11-28 210002](https://hackmd.io/_uploads/B1bF4DmHa.png) ```= import scipy.stats as stats # 定義均值和標準差 mean = 5 std_dev = 2 # 計算正態分佈中的百分位數 percentile_68 = stats.norm.ppf(0.68, loc=mean, scale=std_dev) percentile_95 = stats.norm.ppf(0.95, loc=mean, scale=std_dev) percentile_99_7 = stats.norm.ppf(0.997, loc=mean, scale=std_dev) print(f"68% 的數據點位於 {percentile_68:.2f} 附近") print(f"95% 的數據點位於 {percentile_95:.2f} 附近") print(f"99.7% 的數據點位於 {percentile_99_7:.2f} 附近") ``` ```= import numpy as np data = [1, 2, 3, 4, 5] std_deviation = np.std(data) print("標準差:", std_deviation) ``` ```= # 數學公式寫法 承上面題目,標準差為4的平方根= 2 ``` - 變異數(Variation): 標準差的平方,每個數據點到平均值的平方差的平均 ![螢幕擷取畫面 2023-11-30 160141](https://hackmd.io/_uploads/r19_ZaBHT.png) (1) 離差的平方*機率 (2) 離差的平方的期望值 ![螢幕擷取畫面 2023-11-30 161213](https://hackmd.io/_uploads/HJl-E6SSp.png) ![螢幕擷取畫面 2023-11-29 143100](https://hackmd.io/_uploads/Byl-25LEHT.png) ![螢幕擷取畫面 2023-11-30 161230](https://hackmd.io/_uploads/rkzZ4prB6.png) ![螢幕擷取畫面 2023-11-29 204435](https://hackmd.io/_uploads/B1vUf2VS6.png) ![螢幕擷取畫面 2023-11-28 222923](https://hackmd.io/_uploads/S1PIYuQr6.png) ![螢幕擷取畫面 2023-11-28 222929](https://hackmd.io/_uploads/Hkj8FOXrT.png) >PS 變異數(Variance)和方差(Standard Deviation)實際上指的是相同的統計量。兩者都用來衡量數據的分散程度,在一些文獻和課程中,"方差" 一詞可能更常用於描述母體數據,而 "變異數" 則更常用於描述樣本數據。但在實際使用中,這兩個術語通常可以互換使用 >![螢幕擷取畫面 2023-11-28 223512](https://hackmd.io/_uploads/HJW3cumHa.png) - 相對變異數(Coefficient of Variation): 比較不同數據集的離散程度。標準差/平均值*100%。將不同資料集的離散程度進行比較,而不會受到其量綱(單位尺度不同)的影響 ![螢幕擷取畫面 2023-11-28 173905](https://hackmd.io/_uploads/BJnBSNXBa.png) ![螢幕擷取畫面 2023-11-20 132111](https://hackmd.io/_uploads/HybkpP_Np.png) ![螢幕擷取畫面 2023-11-28 173929](https://hackmd.io/_uploads/rkyDSVmra.png) ![螢幕擷取畫面 2023-11-20 132106](https://hackmd.io/_uploads/HkwRnvdNp.png) ![](https://hackmd.io/_uploads/HyB1rP2JT.png) >練習 >A股票,平均股價100,股價標準差7、B股票,平均股價50,股價標準差5,哪個變動大? B > >CVA = 7/100 * 100% = 7% >CVB = 5/50 * 100% = 10% - 絕對變異數(Absolute Variance): 每個數據點到平均值的絕對差的平均,然後將這些絕對差加總,最後除以數據的總個數,是一個衡量數據分散程度的指標,考慮的是絕對值,當數據集包含離群值(Outliers)時,絕對變異數不受"極端"離群值的影響 ![螢幕擷取畫面 2023-11-28 175707](https://hackmd.io/_uploads/B1ZKt4XBa.png) ![螢幕擷取畫面 2023-11-28 175700](https://hackmd.io/_uploads/HJEFY4XST.png) >PS - Z分數 (z-score) : 代表與標準差的距離,(數字-平均值)/標準差,表示一個特定數據點在數據集中相對於平均值的位置 ![螢幕擷取畫面 2023-11-20 132247](https://hackmd.io/_uploads/Byu46wOVp.png) ![螢幕擷取畫面 2023-11-20 132205](https://hackmd.io/_uploads/BycfpwdNa.png) - 經驗法則(Empirical Law) 常態分佈中 約68% 的數據點會落在平均值加減一個標準差的範圍內 [𝜇-𝜎, 𝜇+𝜎] 95% 的數據點會落在平均值加減兩個標準差的範圍內 [𝜇-2𝜎, 𝜇+2𝜎] 99.7% 的數據點會落 在平均值加減三個標準差的範圍內 [𝜇-3𝜎, 𝜇+3𝜎] ![螢幕擷取畫面 2023-12-02 110847](https://hackmd.io/_uploads/B1cyeX_ST.png) - [z分配表](http://www.cust.edu.tw/mathmet/stat/z-dist.pdf) 假設z-score是0.5,代表接近中間值 z-score是2.5,代表接近最高值 假設平均值為 80.17、標準差為 6.17 ![](https://hackmd.io/_uploads/S12HuBcZp.png) - 練習一 已知某學校有6000人,身高分布呈鐘形分配,其平均身高165公分,標準差5分,依照經驗法則,160公分以上的學生約多少人? 6000*(50%+34%) = 5040 ![未命名](https://hackmd.io/_uploads/ry40G57B6.png) - 練習二 已知某學校有6000人,身高分布呈鐘形分配,其平均身高165公分,標175公分以下的學生約多少人? 6000*(50%+34%+13.5%) = 5850 ![未命名](https://hackmd.io/_uploads/H1azrqQST.png) - 練習三 如果是常態分佈,z:0~1,通常會直接查表 [參考](http://www.cust.edu.tw/mathmet/stat/z-dist.pdf) ![螢幕擷取畫面 2023-12-02 111022](https://hackmd.io/_uploads/H1n8emdra.png) ![image](https://hackmd.io/_uploads/Hyc6rmdB6.png) ![螢幕擷取畫面 2023-12-02 164150](https://hackmd.io/_uploads/Bk_U0DOST.png) - 練習四 ![螢幕擷取畫面 2023-12-02 112045](https://hackmd.io/_uploads/SyKcGQ_ST.png) - 練習五 ![螢幕擷取畫面 2023-12-02 112254](https://hackmd.io/_uploads/BJI7mQdBp.png) - 練習六 ![螢幕擷取畫面 2023-12-02 112332](https://hackmd.io/_uploads/H1UImX_Bp.png) - 練習七 查z ![螢幕擷取畫面 2023-12-02 112427](https://hackmd.io/_uploads/SyCdXmdST.png) - 練習八 查z ![螢幕擷取畫面 2023-12-02 112516](https://hackmd.io/_uploads/S1g2mQ_Ha.png) ```= # python scipy.stats.norm.ppf() ``` - 柴比雪夫不等式(Chebyshev's inequality):是一種"保守估計"隨機變數與期望值的距離,"不須限制"為鐘型 ![螢幕擷取畫面 2023-11-29 114951](https://hackmd.io/_uploads/BkxxBNVBa.png) ![螢幕擷取畫面 2023-11-29 143844](https://hackmd.io/_uploads/ryVY2U4Hp.png) X−μ 表示一個隨機變數X,與平均數 μ 之差 如果 k=2,兩倍標準差,1-1/4=75% (經驗法則為95%) k=3,三倍標準差,1-1/9=88.88% (經驗法則為99.7%) 練習 ![螢幕擷取畫面 2023-11-29 115405](https://hackmd.io/_uploads/rybg8VVr6.png) 求變異系數(coefficient of variance): ![螢幕擷取畫面 2023-11-29 115733](https://hackmd.io/_uploads/Sy53IE4S6.png) ![螢幕擷取畫面 2023-11-29 115657](https://hackmd.io/_uploads/B1UsLNEST.png) 平均數 = 217/13=16.69 標準差 = 4.54 變異係數 = (4.54/16.69) * 100% = 27.2% 使用柴比雪夫不等式(Chebyshev's Theorem)確定包含至少 75% 資料的值範圍: 75%為兩倍標準差 |16.69-(2 * 4.54) , 16.69+(2 * 4.54)| = |7.61 , 25.77| - 馬可夫不等式(Markov's Inequality): 用來估計一個非負的隨機變量大於等於某個正數的概率 ![螢幕擷取畫面 2023-11-29 121522](https://hackmd.io/_uploads/r1I1oN4Ba.png) 練習 ![螢幕擷取畫面 2023-11-29 122024](https://hackmd.io/_uploads/S1dGh4NST.png) E(X)=60 P(X>=120) <= 60/120 答案為50% P(X>=75) <= 50/75 答案為66.66% >PS 從上面可以推斷 >E(X)=𝜇 >P(X>=2𝜇) <= 1/2 >P(X>=3𝜇) <= 1/3 - 柴比雪夫不等式單邊版(Chebyshev's inequality) ![螢幕擷取畫面 2023-11-29 141858](https://hackmd.io/_uploads/ryXk_UVHp.png) 練習 ![螢幕擷取畫面 2023-11-29 125244](https://hackmd.io/_uploads/r1jo7rES6.png) P(X>=𝜇+k) <= σ平方/(σ平方+k平方) 題目提供 𝜇=50、σ平方=25,因此k=25 P(X>=50+25) <= 25/(25+625) 答案為 1/26 - 四分位數(Quartiles,QD):數據分為四等分的值,包括第一四分位數、第二四分位數(中位數)和第三四分位數 *excel: 第三四分位數=QUARTILE.INC(B2:B20,3) *excel動態: =QUARTILE.INC(B2:B20,SEQUENCE(5,,0,1)) (列數,行數,起點,間隔) PS 以盒鬚圖辨認離群值: 超過1.5(Q3-Q1)~3(Q3-Q1)距離內,可當作非常可能之離群值 ```= import numpy as np data_set = [2, 4, 4, 4, 5, 5, 7, 9] # 計算第一四分位數 Q1 = np.percentile(data_set, 25) # 計算第二四分位數(中位數) Q2 = np.percentile(data_set, 50) # 計算第三四分位數 Q3 = np.percentile(data_set, 75) print(f"第一四分位數(Q1):{Q1}") print(f"第二四分位數(中位數,Q2):{Q2}") print(f"第三四分位數(Q3):{Q3}") ``` ```= # 數學公式寫法 import numpy as np data_set = [2, 4, 4, 4, 5, 5, 7, 9] data_set.sort() # 先排序 n = len(data_set) # 計算位置索引 index_Q1 = int((n + 1) * 0.25) index_Q3 = int((n + 1) * 0.75) # 找到位置索引對應的值 Q1 = data_set[index_Q1 - 1] # 注意索引從0開始,需要減1 Q3 = data_set[index_Q3 - 1] print(f"第一四分位數(Q1):{Q1}") print(f"第三四分位數(Q3):{Q3}") ``` - 中四分位距(Interquartile Range,IQR):第三四分位數和第一四分位數之間的距離(Q3-Q1),用於度量數據的變異性。數字越大,數據越鬆散 * excel: =QUARTILE.INC(FILTER($B$2:$B$20,$A$2:$A$20=C2),3)-QUARTILE.INC(FILTER($B$2:$B$20,$A$2:$A$20=C2),1) ```= IQR = Q3 - Q1 print(f"四分位距(IQR):{IQR}") ``` >PS 如果算RANGE MAXIFS($B$2:$B$20,$A$2:$A$20,C2)-MINIFS($B$2:$B$20,$A$2:$A$20,C2) (尋找的數值範圍,條件範圍, 條件) >PS 箱型圖 ![螢幕擷取畫面 2023-11-28 204724](https://hackmd.io/_uploads/SkIF-Dmrp.png) - 異常值(Outliers):數據集中明顯偏離其他數據點的。通常,資料集中小於 Q1 - 1.5 * IQR 或大於 Q3 + 1.5 * IQR 的值被視為異常值 ```= # 計算異常值的閾值 lower_threshold = Q1 - 1.5 * IQR upper_threshold = Q3 + 1.5 * IQR # 尋找異常值 outliers = [x for x in data_set if x < lower_threshold or x > upper_threshold] print(f"異常值:{outliers}") ``` - 練習 {4, 7, 13, 16, 21} 平均數 12.2 方差 ((4-12.2)**2+(7-12.2)**2+(13-12.2)**2+(16-12.2)**2+(21-12.2)**2)/5 = 33.6 標準差 33.6 開根號 = 5.78 z-score (16−12.20)/5.78 = 0.66,代表比平均值高出 0.66 個標準差 變異係數 (5.78/12.2) * 100% = 47.38% 全距 21-4=17 Q1 介於 4 和 7 之間 Q3 介於 16 和 21 常態分佈中,約68% 的數據點會落在平均值加減一個標準差的範圍內、95% 的數據點會落在平均值加減兩個標準差的範圍內、99.7% 的數據點會落 在平均值加減三個標準差的範圍內,可以看出 16 位於平均值附近,稍微偏向分佈的右邊 <br/> ### :+1:協方差(Covariance): 用來衡量兩個隨機變數之間關係的統計量。它表示兩個變數的變化程度是否相關。正協方差表示正相關,負協方差表示負相關,而接近零的協方差表示無關 如果協方差為正值,表示 X 和 Y 呈正相關關係,即當一個變數增加時,另一個變數也增加 如果協方差為負值,表示 X 和 Y 呈負相關關係,即當一個變數增加時,另一個變數減少 如果協方差接近零,表示 X 和 Y 之間沒有線性關係 ![螢幕擷取畫面 2023-11-20 134355](https://hackmd.io/_uploads/Bye4zdOE6.png) ![螢幕擷取畫面 2023-11-20 134359](https://hackmd.io/_uploads/BkQ4GOuEp.png) ```= import numpy as np # 兩個變數的觀察值 X = np.array([1, 2, 3, 4, 5]) Y = np.array([5, 4, 3, 2, 1]) # 計算均值 mean_X = np.mean(X) mean_Y = np.mean(Y) # 計算協方差 covariance = np.mean((X - mean_X) * (Y - mean_Y)) print("協方差:", covariance) ``` ```= import numpy as np import matplotlib.pyplot as plt # 建立兩個隨機變數 X 和 Y 的範例數據 X = np.array([1, 2, 3, 4, 5]) Y = np.array([2, 3, 5, 4, 6]) # 計算 X 和 Y 的平均值 mean_X = np.mean(X) mean_Y = np.mean(Y) # 計算協方差 covariance = np.sum((X - mean_X) * (Y - mean_Y)) / (len(X) - 1) # 繪製散佈圖 plt.scatter(X, Y, label='散點圖') # 新增協方差線 plt.plot([mean_X, mean_X], [mean_Y, mean_Y + covariance], color='red', linestyle='--', label='協方差線') # 新增標籤和圖例 plt.xlabel('X') plt.ylabel('Y') plt.legend() # 顯示圖形 plt.show() ``` ### :+1:歸一化 : 將不同資料的數值範圍縮放到相似的尺度,以便更好地進行比較、分析和處理,確保在機器學習和資料分析中具有相同的權重,防止某些特徵對模型產生過大的影響。通常是[0, 1]或[-1, 1]之間 - 取log(對數轉換): 處理數據的偏斜分佈(skewed distribution)或異常值(outliers),可以使偏斜的數據更加對稱,使其更適合應用統計方法,如線性迴歸 - 最小-最大縮放(Min-Max Scaling):將資料線性縮放到指定的範圍,通常是 [0, 1] ![螢幕擷取畫面 2023-11-20 134635](https://hackmd.io/_uploads/H1fAMOuEp.png) ```= import numpy as np data_set = [2, 4, 4, 4, 5, 5, 7, 9] # 計算最小值和最大值 min_value = min(data_set) max_value = max(data_set) # 最小-最大縮放 scaled_data = [(x - min_value) / (max_value - min_value) for x in data_set] print(scaled_data) ``` - 標準分數(Z-Score):表示一個數據點與平均值之間的距離 ![螢幕擷取畫面 2023-11-20 134710](https://hackmd.io/_uploads/Hyglm_uEa.png) ```= import numpy as np # 原始資料集 data_set = [2, 4, 4, 4, 5, 5, 7, 9] # 計算平均值和標準差 mean = np.mean(data_set) stddev = np.std(data_set) # 計算每個數據點的 Z-Score z_scores = [(x - mean) / stddev for x in data_set] # 列印 Z-Scores print("原始資料集:", data_set) print("Z-Scores:", z_scores) ``` ```= # 數學公式寫法 步驟1:計算平均值(平均值) 平均值(μ)= (2 + 4 + 4 + 4 + 5 + 5 + 7 + 9) / 8 = 40 / 8 = 5 步驟2:計算每個數據點與平均值的差 差值 = 資料點 - 平均值 差值= [2-5, 4-5, 4-5, 4-5, 5-5, 5-5, 7-5, 9-5] = [-3, -1, -1, -1, 0, 0, 2, 4] 步驟3:計算差異值的平方 平方 = 差值^2 平方= [(-3)^2, (-1)^2, (-1)^2, (-1)^2, 0^2, 0^2, 2^2, 4^2] = [9 , 1, 1, 1, 0, 0, 4, 16] 步驟4:計算差異值的平方的平均值 平方的平均值(變異數)= (9 + 1 + 1 + 1 + 0 + 0 + 4 + 16) / 8 = 32 / 8 = 4 步驟5:計算標準差 標準差(σ)= 變異數的平方根 = √4 = 2 # 歸一化,每個資料點差值/標準差(σ) 例如,對於第一個資料點(2),它的 Z-Score 是 -3,然後歸一化後的值為 -3 / 2 = -1.5。 ``` - 小數定標標準化(Decimal Scaling):將資料除以一個適當的冪,以將其縮放到 [-1, 1] 或其他所需範圍。 通常使用 10 的冪進行縮放,例如 10^k,其中 k 是足夠大的值,以便資料被縮放到所需範圍 ![螢幕擷取畫面 2023-11-20 134734](https://hackmd.io/_uploads/rk_b7_O4a.png) ```= data_set = [2, 4, 4, 4, 5, 5, 7, 9] # 計算資料的最大絕對值 max_abs_value = max(abs(x) for x in data_set) # 小數定標標準化(以 10 的冪進行縮放) k = 10 # 選擇適當的 k 值 scaled_data = [x / (10 ** k) for x in data_set] print(scaled_data) ``` - TF-IDF(詞頻-逆文檔頻率): 是一種用於文字資料的歸一化方法,用於衡量單字在文件集合中的重要性。 通常使用機器學習庫(如 scikit-learn)來計算 TF-IDF 值 TF-IDF 考慮了一個詞(term)在文檔中的出現頻率(TF)和在整個文檔集合中的文檔頻率(DF),通過將這兩者的乘積取倒數,得到一個詞的權重。TF 計算的是一個詞在單一文檔中的出現次數,而 IDF 計算的是這個詞在整個文檔集合中的信息重要性 ![螢幕擷取畫面 2023-11-20 134911](https://hackmd.io/_uploads/B10D7udN6.png) ![螢幕擷取畫面 2023-11-20 134919](https://hackmd.io/_uploads/SkZ_7u_VT.png) ```= from sklearn.feature_extraction.text import TfidfVectorizer # 範例文字數據 documents = ["This is the first document.", "This document is the second document.", "And this is the third one.", "Is this the first document?"] # 建立 TF-IDF 向量化器 vectorizer = TfidfVectorizer() # 計算 TF-IDF 值 tfidf_matrix = vectorizer.fit_transform(documents) # 將 TF-IDF 值轉換為陣列 tfidf_array = tfidf_matrix.toarray() print(tfidf_array) ``` <br/> #### :+1:不對稱性(Asymmetry):用來描述資料分佈的不對稱程度 - 偏度(Skewness): 用來描述數據分布形狀的一個指標 *excel: =skew(B2:B20) 正偏斜(Positive Skewness):平均數>中位數時,通常表示資料分佈呈現右偏斜(正偏斜) 負偏斜(Negative Skewness):平均數<中位數時,通常表示資料分佈呈現左偏斜(負偏斜) 零偏(Zero Skewness): 數據分布在平均值兩側大致對稱,則稱為零偏 ![螢幕擷取畫面 2023-11-28 173031](https://hackmd.io/_uploads/rJhr7E7B6.png) ![螢幕擷取畫面 2023-11-28 204233](https://hackmd.io/_uploads/ryCBlvmHT.png) ![螢幕擷取畫面 2023-11-28 204239](https://hackmd.io/_uploads/SymUewXSa.png) ![螢幕擷取畫面 2023-11-28 172814](https://hackmd.io/_uploads/Skh3GE7rp.png) ![](https://hackmd.io/_uploads/Bk5UgD2ka.png) - 峰度(Kurtosis):樣本峰度係數(Sample Kurtosis Coefficient)用於描述一個樣本數據集的峰度。衡量資料分佈的尖峰或扁平程度,正峰度表示尖峰,低闊峰,負峰度表示扁平,高峽峰 ![螢幕擷取畫面 2023-11-28 204409](https://hackmd.io/_uploads/SJWhxwQSa.png) ![螢幕擷取畫面 2023-11-28 204405](https://hackmd.io/_uploads/HywnewQr6.png) ```= import numpy as np from scipy.stats import skew, kurtosis data = [2, 4, 4, 10, 5, 5, 7, 9] # 計算偏度 data_skew = skew(data) print(f"資料集的偏度為: {data_skew:.2f}") # 計算峰度 data_kurtosis = kurtosis(data) print(f"資料集的峰度為: {data_kurtosis:.2f}") ``` <br/> ### :+1:抽樣分佈(Sampling Distribution):從一個總體(或總體分佈)中多次抽取樣本,計算每個樣本的統計量(如平均值、變異數、比例等)後,所得到的分佈 ```= import numpy as np import matplotlib.pyplot as plt # 模擬從常態分佈中抽取多個樣本,並計算樣本平均值的抽樣分佈 population_mean = 100 population_stddev = 15 num_samples = 1000 sample_size = 30 sample_means = [] for _ in range(num_samples): sample = np.random.normal(population_mean, population_stddev, size=sample_size) sample_mean = np.mean(sample) sample_means.append(sample_mean) # 繪製樣本平均數的抽樣分佈直方圖 plt.hist(sample_means, bins=30, density=True, alpha=0.5, color='b') plt.xlabel('Sample Mean') plt.ylabel('Probability Density') plt.title('Sampling Distribution of Sample Means') plt.show() ``` ```= # 數學公式寫法 承上面題目 import numpy as np import matplotlib.pyplot as plt # 給定的數據集 data_set = [2, 4, 4, 4, 5, 5, 7, 9] # 模擬抽樣的次數 num_samples = 1000 # 每個樣本的大小 sample_size = 3 # 這裡假設每個樣本的大小是3,你可以根據需要調整 # 存儲樣本均值 sample_means = [] # 進行抽樣和計算樣本均值 for _ in range(num_samples): sample = np.random.choice(data_set, size=sample_size, replace=True) sample_mean = np.mean(sample) sample_means.append(sample_mean) # 繪製樣本均值的抽樣分佈直方圖 plt.hist(sample_means, bins=30, density=True, alpha=0.5, color='b') plt.xlabel('Sample Mean') plt.ylabel('Probability Density') plt.title('Sampling Distribution of Sample Means') plt.show() ``` ![](https://hackmd.io/_uploads/ByAaY_obT.png) ![](https://hackmd.io/_uploads/ByW0K_iWp.png) <br/> - 中心極限定理(Central Limit Theorem):從一個母體中隨機抽取多個樣本時,樣本均值的分佈將趨近於常態分配,不論母體分佈是什麼 ![螢幕擷取畫面 2023-11-20 133906](https://hackmd.io/_uploads/HyhWWuuN6.png) ![螢幕擷取畫面 2023-11-20 133936](https://hackmd.io/_uploads/rJqXZ_OVa.png) (p\*n) 和 (1-p)\*n 都必須大於 5 ```= import numpy as np import matplotlib.pyplot as plt # 模擬從均勻分佈中抽取多個樣本,並計算樣本平均值 population = np.random.uniform(0, 1, 1000) sample_means = [] num_samples = 1000 sample_size = 30 for _ in range(num_samples): sample = np.random.choice(population, size=sample_size) sample_mean = np.mean(sample) # 算出樣本的平均值 sample_means.append(sample_mean) # 繪製樣本平均數的直方圖 plt.hist(sample_means, bins=30, density=True, alpha=0.5, color='b') plt.xlabel('Sample Mean') plt.ylabel('Probability Density') plt.title('Central Limit Theorem Demonstration') plt.show() ``` ```= # 數學公式寫法 承上面題目 import numpy as np import matplotlib.pyplot as plt # 給定的資料集 data_set = [2, 4, 4, 4, 5, 5, 7, 9] # 模擬抽取樣本的次數 num_samples = 1000 # 每個樣本的大小 sample_size = 30 # 儲存樣本平均值 sample_means = [] # 計算總體平均數和標準差 population_mean = np.mean(data_set) population_stddev = np.std(data_set) # 模擬抽樣和計算樣本平均值 for _ in range(num_samples): sample = np.random.choice(data_set, size=sample_size, replace=True) sample_mean = np.mean(sample) sample_means.append(sample_mean) # 繪製樣本平均數的抽樣分佈直方圖 plt.hist(sample_means, bins=30, density=True, alpha=0.5, color='b') plt.xlabel('Sample Mean') plt.ylabel('Probability Density') plt.title('Sampling Distribution of Sample Means') plt.show() ``` - 標準誤差(Standard Error) = 標準差/樣本量的平方根 用來確定【樣本統計量】與【總體參數估計值】之間的偏差程度,準確誤差的值越小,表示估計值的精度越高 ```= import numpy as np # 生成一組隨機樣本 np.random.seed(0) sample = np.random.normal(loc=10, scale=2, size=100) # 計算樣本平均值和標準誤差 sample_mean = np.mean(sample) standard_error = np.std(sample) / np.sqrt(len(sample)) print("樣本平均值:", sample_mean) print("標準誤差:", standard_error) ```