顯示具有 statistics 標籤的文章。 顯示所有文章
顯示具有 statistics 標籤的文章。 顯示所有文章

2022年7月31日 星期日

Standard Deviation in Python, R





標準差之計算在 Python, R 結果都相同嗎?

感謝 Pei-Chun 提供 Python 問題.

標準差

統計學的標準差(Standard Deviation, SD)可以區分為母體標準差與樣本標準差, 符號之說明如下:

σ: 母體標準差, N: 母體個數, μ:  母體平均值

s: 樣本標準差, n: 樣本個數, x_bar: 樣本平均值

母體標準差與樣本標準差之計算公式:











公式法

考慮資料集為 {1,2,3,4,5}, μ = (1+2+3+4+5)/5=3, 使用公式法計算結果:

母體標準差 σ =(((1-3)^2+...+(5-3)^2)/5)^0.5=1.414214 (分母為5)

樣本標準差 σ =(((1-3)^2+...+(5-3)^2)/4)^0.5=1.581139 (分母為4)

Python-numpy 模組-不含NA值

使用 numpy.std 函數可以計算標準差, 分母預設值為樣本數 n, 其中參數 ddof(Means Delta Degrees of Freedom) 的預設值為 ddof=0, 如果設定 ddof=1, 則分母為 n-1, 詳細參考線上說明 [LINK].







Python-pandas 模組-不含NA值

使用 pandas.describe 函數以計算標準差, 其預設值為 n-1. 

使用 df.describe().iloc[2,0] 取出 std 值, 另外也可以使用 df.describe().loc['std'] 取出 std值.











Python-numpy 模組-有NA值

上述討論都沒有NA值的情形, 如果資料包括NA值時, 其計算結果為 nan, 使用 numpy.nanstd 函數可以忽略 NA值並計算標準差.
















Python-pandas 模組-有NA值

使用 pandas.describe 函數以計算標準差, 其預設值為 n-1, 且會忽略NA值並計算標準差, 此特性須特別注意.


R-不含NA值

使用 sd {stats} 函數可計算標準差. stats 為R內建30個標準套件之一, 啟動R時, 已經載入該套件. 計算結果分母採用 n-1.






R-有NA值

如果資料有NA值, 則 sd 計算結果為 NA. 

使用 na.rm = TRUE 參數可忽略NA值並計算標準差.








結論

使用 Python 與 R 語言須確認計算標準差之意義, 如果資料有NA值, 須特別小心處理.

# end

2021年3月2日 星期二

Python統計分析與最佳化計算課程

課程介紹:

課程採用免費Python軟體為主,主題包括基礎的資料結合、資料摘要與繪圖技巧、統計檢定、邏輯斯迴歸、高維度影像資料計算、線性與非線性最佳化應用。課程將透過案例示範與實際操作練習以增進學習成效。

課程目標:

使學員熟悉Python語言進行統計分析與最佳化計算,課程包括Python與資料庫連結、資料摘要與繪圖技巧、統計分析、線性與非線性模型最佳化計算。

報名: https://www.beclass.com/rid=2443e965faa62b76ba01