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

2022年7月2日 星期六

Python Orange-Associate Tutorial

主題: Python Orange - 關聯規則教學


本篇說明 Python 的 Orange 模組中,  外掛 Associate 的使用, 包括建立頻繁項目集與關聯規則.

感謝 Chen-Yao 提供此問題.




















Youtube: 













Orange 3 特性:
University of Ljubljana, Slovenia, 10 October 1996
視覺化程式設計工具(Visual Programming Tools)
執行更加快速(C++)與視覺化操作
提供多種機器學習模組
開放原始碼與跨平台
適用於Python模組
資料預處理
模型訓練
部署

大綱:
1. Orange 3 簡介
2. Orange 3 安裝 
3. 安裝 Add-ons Associate
4. 案例示範 (技巧: Pivot Table 樞紐分析)
5. Q & A


Github資料:

資料集:
northwind_trans.csv

2022年6月17日 星期五

R-normalizePath Error - OneDrive/??

問題:

近日安裝 Windows 與 R之後會有以下 normalizePath 語法錯誤:




查詢發現電腦確實有以下之目錄 C:\Users\asus\OneDrive\文件, 因此最有可能原因是此路徑包括中文字型"文件", 因此R解析結果為錯誤??

使用 path.expand 函數亦是錯誤

> path.expand("~/")

[1] "C:/Users/asus/OneDrive/??/"


使用 normalizePath 函數也有錯誤

> normalizePath(path.expand("~/"))

[1] "C:\\Users\\asus\\OneDrive\\??\\"

Warning message:

In normalizePath(path.expand(path), winslash, mustWork) :

  path[1]="C:/Users/asus/OneDrive/??/": 檔案名稱、目錄名稱或磁碟區標籤語法錯誤。


方法:

步驟1. 先關閉 RStudio


步驟2. 新增系統變數

1. 程式集 \ 設定 \ 關於 \ 進階系統設定


2. 選取環境變數


3. 按 系統變數 \ 新增














4. 設定名稱與值, 依實際需求修改, 按確定.

變數名稱: HOME

變數值:     C:\Users\asus






步驟3. 重新開啟 RStudio 或重新啟動 Windows 結果為正確

> path.expand("~/")

[1] "C:/Users/asus/"

> normalizePath(path.expand("~/"))

[1] "C:\\Users\\asus"

# end

2022年5月29日 星期日

iPAS - Big Data Analyst - Free Course


iPAS - 巨量資料分析師認證 - 免費線上參考課程

講師:李明昌

考試網址:https://www.ipas.org.tw/bda/


巨量資料分析師-資料導向程式設計(一)

網址:https://collegeplus.itri.org.tw/course/1161

單元一:資料類型與物件

單元二:資料庫概念(含NoSQL)

單元三:資料匯入與匯出


巨量資料分析師-資料導向程式設計(二)

網址:https://collegeplus.itri.org.tw/course/1162

單元一:程式設計類型

單元二:自訂函數與控制敘述

單元三:程式除錯與效能提升方法


巨量資料分析師-資料處理與分析概論(一)

網址:https://collegeplus.itri.org.tw/course/1165

單元一:資料組織與清理(1)

單元二:資料組織與清理(2)

單元三:資料摘要與彙總(1)

單元四:資料摘要與彙總(2)

單元五:屬性轉換與萃取(1)

單元六 : 屬性轉換與萃取(2)

單元七 : 巨量資料處理概念(1)

單元八 : 巨量資料處理概念(2)


巨量資料分析師-資料處理與分析概論(二)

網址:https://collegeplus.itri.org.tw/course/1166

單元一:統計分析基礎(1)

單元二:統計分析基礎(2)

單元三:統計分析基礎(3)

單元四:探索式資料分析與非監督式學習(1)

單元五:探索式資料分析與非監督式學習(2)

單元六:線性模型與監督式學習(1)

單元七 : 線性模型與監督式學習(2)

# end

2022年5月26日 星期四

R-4.2.0 and RStudio-2022.02.2+485 - Updated Notice

R-4.2.0, RStudio-2022.02.2+485 - Windows更新事項

  • RStudio 2022.02.2+485 預設為UTF-8編碼.



  • Windows 環境 R-4.2.0 已經使用 UTF-8 編碼. 早期版本 R原生 Winodws 環境使用 CP950編碼, RStudio 環境一般使用 UTF-8編碼, 二者編碼沒有一致, 目前 Winodws 系統中已經直接支援 UTF-8 編碼.
  • 在Windows 系統中, read.table 匯入文字檔案, 不用更改為 ANSI 編碼, 直接使用 UTF-8 即可匯入.
  • 早期 R 版本(例: R-4.1.3) 預設自行安裝R套件的目錄為【我的文件】, 例:  "C:/Users/User/Documents/R/win-library/4.1" 使用 .libPaths() 結果如下圖:




  • 目前 R 最新版本(例: R-4.2.0) 預設自行安裝R套件的目錄為【AppData】, 例:  "C:\Users\User\AppData\Local\R\win-library\4.2" 使用 .libPaths() 結果如下圖:






  • AppData 資料夾預設為隱藏檔,使用檔案總管將隱藏檔開啟. 如果不希望更改隱藏檔的設定, 使用 shell.exec(.libPaths()[1]) 函數亦可開啟檔案總管視窗.
  • help 函數結果已經支援HTML5語法.
  • 支援 two-sample Smirnov statistic 檢定函數: psmirnov, qsmirnov, rsmirnov, 參考線上說明.
# end


2022年5月5日 星期四

Regression Analysis in Excel (Excel 迴歸分析)

Excel 迴歸分析:

步驟1: Excel \ 檔案 \ 選項 \ 分析工具箱 \ 執行 \ 確定

步驟2: 資料\ 資料分析 \ 迴歸 \ 確定



資料集下載: https://github.com/rwepa/DataDemo/blob/master/marketing.csv

# end

2022年4月3日 星期日

原生管線操作 (native pipe operator)

主題

R-4.1版本以上開始支援原生管線操作(native pipe operator),管線操作可簡化R程式的撰寫。一般可以使用 magrittr 套件的 %>% 運算式進行管線操作,目前 R-4.1 以上版本可以使用 |> 進行管線操作。

R程式碼

# (1)傳統指派依序建立物件

x <- iris$Petal.Width[iris$Species== "virginica"]

x_density <- density(x)

plot(x_density, main = "Density plot")

grid()


# (2)使用 magrittr 套件

library(magrittr)

iris$Petal.Width[iris$Species== "virginica"] %>%

  density() %>%

  plot(main = "Density plot using '%>%'") %>%

  grid()


# (3)使用原生管線操作 |>

iris$Petal.Width[iris$Species== "virginica"] |>

  density() |>

  plot(main = "Density plot using native pipe operator '|>'")>

  grid()

# end