• Statistics 基礎統計:描述性統計

Contents 目錄

參考資料

基本觀念

樣本或群體/母體 (Sample or population) : 樣本是從母體中抽取的一部分數據,用於進行統計分析和推論

群體(Population) N、樣本(Sample) n

參數(parameter):由「群體」資料所計算之群體表征值=群體的特定數值

假設想知道一家半導體廠,晶片的厚度。隨機抽取200片
群體的厚度平均數 = 參數

統計量(statistic):由「樣本」資料所計算之樣本表徵值

假設想知道一家半導體廠,晶片的厚度。隨機抽取200片
200片厚度平均數= 統計量

假設想知道一家半導體廠,隨機抽取200片,8片是瑕疵品
8/200=4%=統計量

常見符號、公式

群體

    • 群體總體(N)、單一(X)

    • 群體平均數(𝜇 ,讀作 mu)
      螢幕擷取畫面 2023-11-28 171524

    • 群體標準差(𝜎 ,讀作 sigma)
      螢幕擷取畫面 2023-11-28 171538

    • 群體變異數=標準差的平方(σ2 平方,讀作sigma squared)
      螢幕擷取畫面 2023-11-28 171546

    • 群體相關係數(ρ, 讀作 rho)

    • 群體比例 ( P)

樣本

    • 樣本總體(n)、單一(x)

    • 樣本平均數(-x ,讀作 x bar)
      螢幕擷取畫面 2023-11-28 171622
      螢幕擷取畫面 2023-11-28 172025
      螢幕擷取畫面 2023-11-28 172117

- 樣本標準差(s)
n-1是為了進行不偏估計
![螢幕擷取畫面 2023-11-28 205912](https://hackmd.io/_uploads/ByZN4w7r6.png)

- 樣本變異數=標準差的平方(s2 平方,讀作s squared)

螢幕擷取畫面 2023-11-28 171639

- 樣本相關係數 ( r) 

- 樣本比例 (^p,讀作 p-hat)

描述性統計(Descriptive Statistics)

總結和描述收集到的數據,例如平均值、中位數、標準差等,或者有人說是「總結變量的特徵」,有助於對數據的整體情況有一個初步的理解

方法:使用各種統計量和圖形工具來呈現資料的摘要訊息,平均值、中位數、眾數、變異數、標準差、分位數、直方圖、箱線圖等

數值變量(Numerical)

數值變量(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):經由量测的方式取得變資料。例如,重量、高度、溫度

分類變量(Categorical)

也稱為類別變量或類別型變量,代表的是不同的類別或類型,通常是以文字形式表示。例如,性別(男、女)、地區(東部、西部、南部、北部)、產品類別(電子產品、食品、服裝)等
PS 「分類變量」和「定性變數」是統計學中描述資料特性的術語,它們之間存在一些差異,但通常用法上可以視為相同

集中趨勢(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)

分散或變異趨勢(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

螢幕擷取畫面 2023-11-28 174555

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

螢幕擷取畫面 2023-11-28 205753

螢幕擷取畫面 2023-11-28 210002

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

(1) 離差的平方*機率
(2) 離差的平方的期望值

螢幕擷取畫面 2023-11-30 161213

螢幕擷取畫面 2023-11-29 143100

螢幕擷取畫面 2023-11-30 161230

螢幕擷取畫面 2023-11-29 204435

螢幕擷取畫面 2023-11-28 222923

螢幕擷取畫面 2023-11-28 222929

PS 變異數(Variance)和方差(Standard Deviation)實際上指的是相同的統計量。兩者都用來衡量數據的分散程度,在一些文獻和課程中,”方差” 一詞可能更常用於描述母體數據,而 “變異數” 則更常用於描述樣本數據。但在實際使用中,這兩個術語通常可以互換使用
螢幕擷取畫面 2023-11-28 223512

 

相對變異數(Coefficient of Variation): 比較不同數據集的離散程度。標準差/平均值*100%。將不同資料集的離散程度進行比較,而不會受到其量綱(單位尺度不同)的影響

螢幕擷取畫面 2023-11-28 173905

螢幕擷取畫面 2023-11-20 132111

螢幕擷取畫面 2023-11-28 173929

螢幕擷取畫面 2023-11-20 132106

練習
A股票,平均股價100,股價標準差7、B股票,平均股價50,股價標準差5,哪個變動大? B

CVA = 7/100 100% = 7%
CVB = 5/50
100% = 10%

 

絕對變異數(Absolute Variance): 每個數據點到平均值的絕對差的平均,然後將這些絕對差加總,最後除以數據的總個數,是一個衡量數據分散程度的指標,考慮的是絕對值,當數據集包含離群值(Outliers)時,絕對變異數不受”極端”離群值的影響

螢幕擷取畫面 2023-11-28 175707

螢幕擷取畫面 2023-11-28 175700

 

Z分數 (z-score) : 代表與標準差的距離,(數字-平均值)/標準差,表示一個特定數據點在數據集中相對於平均值的位置

螢幕擷取畫面 2023-11-20 132247

螢幕擷取畫面 2023-11-20 132205

經驗法則(Empirical Law)

常態分佈中
約68% 的數據點會落在平均值加減一個標準差的範圍內 [𝜇-𝜎, 𝜇+𝜎]
95% 的數據點會落在平均值加減兩個標準差的範圍內 [𝜇-2𝜎, 𝜇+2𝜎]
99.7% 的數據點會落 在平均值加減三個標準差的範圍內 [𝜇-3𝜎, 𝜇+3𝜎]

螢幕擷取畫面 2023-12-02 110847

z分配表

假設z-score是0.5,代表接近中間值
z-score是2.5,代表接近最高值

假設平均值為 80.17、標準差為 6.17

練習一

已知某學校有6000人,身高分布呈鐘形分配,其平均身高165公分,標準差5分,依照經驗法則,160公分以上的學生約多少人?

6000*(50%+34%) = 5040

未命名

練習二

已知某學校有6000人,身高分布呈鐘形分配,其平均身高165公分,標175公分以下的學生約多少人?

6000*(50%+34%+13.5%) = 5850

未命名

練習三 如果是常態分佈,z:0~1,通常會直接查表 參考

螢幕擷取畫面 2023-12-02 111022

image

螢幕擷取畫面 2023-12-02 164150

練習四

螢幕擷取畫面 2023-12-02 112045

練習五

螢幕擷取畫面 2023-12-02 112254

練習六

螢幕擷取畫面 2023-12-02 112332

練習七 查z

螢幕擷取畫面 2023-12-02 112427

練習八 查z

螢幕擷取畫面 2023-12-02 112516

# python
scipy.stats.norm.ppf()

柴比雪夫不等式(Chebyshev’s inequality):是一種”保守估計”隨機變數與期望值的距離,”不須限制”為鐘型

螢幕擷取畫面 2023-11-29 114951

螢幕擷取畫面 2023-11-29 143844

X−μ 表示一個隨機變數X,與平均數 μ 之差

如果
k=2,兩倍標準差,1-1/4=75% (經驗法則為95%)
k=3,三倍標準差,1-1/9=88.88% (經驗法則為99.7%)

練習

螢幕擷取畫面 2023-11-29 115405

求變異系數(coefficient of variance):

螢幕擷取畫面 2023-11-29 115733

螢幕擷取畫面 2023-11-29 115657

平均數 = 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

練習

螢幕擷取畫面 2023-11-29 122024
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

練習

螢幕擷取畫面 2023-11-29 125244

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

異常值(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 位於平均值附近,稍微偏向分佈的右邊

協方差(Covariance): 用來衡量兩個隨機變數之間關係的統計量。它表示兩個變數的變化程度是否相關。正協方差表示正相關,負協方差表示負相關,而接近零的協方差表示無關

如果協方差為正值,表示 X 和 Y 呈正相關關係,即當一個變數增加時,另一個變數也增加
如果協方差為負值,表示 X 和 Y 呈負相關關係,即當一個變數增加時,另一個變數減少
如果協方差接近零,表示 X 和 Y 之間沒有線性關係

螢幕擷取畫面 2023-11-20 134355

螢幕擷取畫面 2023-11-20 134359

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()

歸一化 : 將不同資料的數值範圍縮放到相似的尺度,以便更好地進行比較、分析和處理,確保在機器學習和資料分析中具有相同的權重,防止某些特徵對模型產生過大的影響。通常是[0, 1]或[-1, 1]之間

取log(對數轉換): 處理數據的偏斜分佈(skewed distribution)或異常值(outliers),可以使偏斜的數據更加對稱,使其更適合應用統計方法,如線性迴歸

最小-最大縮放(Min-Max Scaling):將資料線性縮放到指定的範圍,通常是 [0, 1]

螢幕擷取畫面 2023-11-20 134635

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

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

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

螢幕擷取畫面 2023-11-20 134919

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)

不對稱性(Asymmetry):用來描述資料分佈的不對稱程度

偏度(Skewness): 用來描述數據分布形狀的一個指標 *excel: =skew(B2:B20)

正偏斜(Positive Skewness):平均數>中位數時,通常表示資料分佈呈現右偏斜(正偏斜)

負偏斜(Negative Skewness):平均數<中位數時,通常表示資料分佈呈現左偏斜(負偏斜)

零偏(Zero Skewness): 數據分布在平均值兩側大致對稱,則稱為零偏

螢幕擷取畫面 2023-11-28 173031

螢幕擷取畫面 2023-11-28 204233

螢幕擷取畫面 2023-11-28 204239

螢幕擷取畫面 2023-11-28 172814

峰度(Kurtosis):樣本峰度係數(Sample Kurtosis Coefficient)用於描述一個樣本數據集的峰度。衡量資料分佈的尖峰或扁平程度,正峰度表示尖峰,低闊峰,負峰度表示扁平,高峽峰

螢幕擷取畫面 2023-11-28 204409

螢幕擷取畫面 2023-11-28 204405

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}")

抽樣分佈(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()

中心極限定理(Central Limit Theorem):從一個母體中隨機抽取多個樣本時,樣本均值的分佈將趨近於常態分配,不論母體分佈是什麼

螢幕擷取畫面 2023-11-20 133906

螢幕擷取畫面 2023-11-20 133936

(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)

Catalina
Catalina

Hi, I’m Catalina!
原本在西語市場做開發業務,2023 年正式轉職資料領域。
目前努力補齊計算機組織、微積分、線性代數與機率論,忙碌中做點筆記提醒自己 🤲

文章: 43

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *