[zh-MO,zh-HK,zh-TW] chore(i18n): sync translations

Sync translations with latest source changes.
Languages: Chinese (Traditional, Macau) [zh-MO], Chinese (Traditional, Hong Kong) [zh-HK], Chinese (Traditional, Taiwan) [zh-TW]
update-translations
localizeflow[bot] 6 days ago
parent 503574287f
commit 616a08883a

@ -12,8 +12,8 @@
"language_code": "zh-HK"
},
"1-Introduction/01-defining-data-science/notebook.ipynb": {
"original_hash": "8f5eb7b3f7cc89e6d98fb32e1de65dec",
"translation_date": "2026-02-28T09:00:47+00:00",
"original_hash": "8eb07e3d899aaba7ea9c9ec9b5aa2850",
"translation_date": "2026-07-17T21:36:53+00:00",
"source_file": "1-Introduction/01-defining-data-science/notebook.ipynb",
"language_code": "zh-HK"
},
@ -42,8 +42,8 @@
"language_code": "zh-HK"
},
"1-Introduction/03-defining-data/README.md": {
"original_hash": "12339119c0165da569a93ddba05f9339",
"translation_date": "2025-09-05T12:13:46+00:00",
"original_hash": "7217c6f9eb464d4ff4bae6c036ab53cb",
"translation_date": "2026-07-17T21:41:39+00:00",
"source_file": "1-Introduction/03-defining-data/README.md",
"language_code": "zh-HK"
},
@ -65,6 +65,12 @@
"source_file": "1-Introduction/04-stats-and-probability/assignment.md",
"language_code": "zh-HK"
},
"1-Introduction/04-stats-and-probability/notebook.ipynb": {
"original_hash": "0c77e104b29c723287bf11b773fcc5d5",
"translation_date": "2026-07-17T21:38:04+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "zh-HK"
},
"1-Introduction/README.md": {
"original_hash": "696a8474a01054281704cbfb09148949",
"translation_date": "2025-08-25T16:38:14+00:00",
@ -108,8 +114,8 @@
"language_code": "zh-HK"
},
"2-Working-With-Data/07-python/notebook-covidspread.ipynb": {
"original_hash": "6335cccba01dc6ad7b15aba7a8c73f38",
"translation_date": "2026-02-28T09:02:48+00:00",
"original_hash": "da97f98781c7cd271063f605fe8d71d0",
"translation_date": "2026-07-17T21:36:22+00:00",
"source_file": "2-Working-With-Data/07-python/notebook-covidspread.ipynb",
"language_code": "zh-HK"
},
@ -192,14 +198,14 @@
"language_code": "zh-HK"
},
"3-Data-Visualization/13-meaningful-visualizations/solution/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-25T18:04:12+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T21:41:48+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/solution/README.md",
"language_code": "zh-HK"
},
"3-Data-Visualization/13-meaningful-visualizations/starter/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-25T18:03:33+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T21:41:44+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/starter/README.md",
"language_code": "zh-HK"
},

File diff suppressed because one or more lines are too long

@ -1,74 +1,79 @@
# 定義數據
# 定義資料
|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記](../../sketchnotes/03-DefiningData.png)|
|![ Sketchnote 由 [(@sketchthedocs)](https://sketchthedocs.dev) 製作 ](../../sketchnotes/03-DefiningData.png)|
|:---:|
|定義數據 - _手繪筆記由 [@nitya](https://twitter.com/nitya) 提供_ |
|定義資料 - _Sketchnote 由 [@nitya](https://twitter.com/nitya) 製作_ |
數據是用於進行發現和支持明智決策的事實、信息、觀察和測量。一個數據點是數據集中單一的數據單位,而數據集則是數據點的集合。數據集可能以不同的格式和結構存在,通常取決於其來源或數據的來源。例如,一家公司的每月收入可能以電子表格的形式存在,而智能手錶的每小時心率數據可能以 [JSON](https://stackoverflow.com/a/383699) 格式存在。對於數據科學家來說,在一個數據集中處理不同類型的數據是很常見的
資料是用來進行發現並支持明智決策的事實、資訊、觀察和測量。資料點是資料集中一個單一的資料單位,而資料集是資料點的集合。資料集可能存在不同的格式和結構,通常根據其來源,或資料的原始來處而有所不同。例如,一間公司的每月收益可能存放在試算表中,但從智慧手錶記錄的每小時心跳率資料可能是 [JSON](https://stackoverflow.com/a/383699) 格式。資料科學家經常需要處理資料集中不同類型的資料
本課程的重點是根據數據的特徵和來源來識別和分類數據
本課程重點在於根據資料的特性和來源來識別及分類資料
## [課前測驗](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## 資料的描述方式
## 數據的描述方式
### 原始資料
原始資料是從來源處以初始狀態獲取的資料,尚未經過分析或組織。為了理解資料集中的情況,需要將其整理成既可被人類理解,也方便進行後續分析的格式。資料集的結構描述其組織方式,可分為結構化、非結構化和半結構化。這些結構類型會因來源不同而異,但最終都會屬於這三類。
### 原始數據
原始數據是來自其來源的初始狀態,尚未經過分析或整理的數據。為了理解數據集中的情況,需要將其整理成一種人類和技術都能理解的格式。數據集的結構描述了它的組織方式,可以分為結構化、非結構化和半結構化。這些結構類型會根據來源有所不同,但最終會歸類於這三種類別
### 定量資料
定量資料是資料集中的數值觀察資料通常可以分析、測量並用數學方法處理。例如定量資料有一個國家的人口、一個人的身高或一間公司的季度收益。經過額外分析定量資料能用來發現季節性趨勢如空氣品質指數AQI或估算一般工作日的高峰交通概率
### 定量數據
量數據是數據集中以數字形式表示的觀察值通常可以進行分析、測量並用於數學運算。例如一個國家的總人口、一個人的身高或一家公司季度收入。通過進一步分析定量數據可以用來發現空氣質量指數AQI的季節性趨勢或者估算典型工作日高峰時段交通的概率
### 定性資料
性資料又稱分類資料,無法像定量資料那樣客觀測量。它通常是主觀的資料格式,捕捉事物或過程的品質狀態。有時候,定性資料是數字形式,但一般不以數學方式使用,如電話號碼或時間戳記。定性資料的例子有:影片評論、一部汽車的品牌和型號,或你最親密朋友的喜愛顏色。定性資料可用來了解消費者偏好產品或辨識求職履歷中的熱門關鍵字
### 定性數據
定性數據,也稱為分類數據,是無法像定量數據那樣客觀測量的數據。它通常是各種主觀數據的形式,用於捕捉某物的質量,例如產品或流程。有時,定性數據是數字形式,但通常不會用於數學運算,例如電話號碼或時間戳。一些定性數據的例子包括:視頻評論、汽車的品牌和型號,或者你最親密朋友最喜歡的顏色。定性數據可以用來了解消費者最喜歡哪些產品,或者識別求職簡歷中的熱門關鍵詞
### 結構化資料
結構化資料是組織成列與欄的資料,每列都有相同的欄位集合。欄位代表某種特定類型的數值,會以名稱標示該數值的意義,而列包含實際數值。欄位通常有特定規則或限制,以確保數值正確表達該欄位。例如設想一份客戶的試算表,每列必須有電話號碼,且電話號碼中不能有字母。電話號碼欄可能會設定規則,確保此欄絕不為空且只包含數字
### 結構化數據
結構化數據是以行和列的形式組織的數據,每一行都具有相同的一組列。列代表特定類型的值,並用名稱標識該值的含義,而行則包含實際的值。列通常會有一組特定的規則或限制,以確保值準確地表示該列。例如,想像一個客戶的電子表格,其中每一行必須有一個電話號碼,且電話號碼不能包含字母字符。可能會對電話號碼列應用規則,以確保它永遠不會為空,並且只包含數字。
結構化資料的優點是,可以以關聯方式組織與其他結構化資料連結。但因為資料設計有特定組織方式,所以修改其整體結構往往需要大量努力。例如,要在客戶試算表增加一欄電子郵件且該欄不能為空,會需要將現有客戶的資料列補齊相應欄位數值,這是個挑戰。
結構化數據的一個優勢是,它可以以某種方式組織起來,使其能夠與其他結構化數據相關聯。然而,由於數據被設計為以特定方式組織,對其整體結構進行更改可能需要付出很大的努力。例如,為客戶電子表格添加一個不能為空的電子郵件列,意味著你需要弄清楚如何為數據集中現有的客戶行添加這些值。
結構化資料的例子:試算表、關聯式資料庫、電話號碼、銀行帳單
結構化數據的例子:電子表格、關係型數據庫、電話號碼、銀行對賬單
### 非結構化資料
非結構化資料通常無法分類為列或欄也沒有固定格式或規則可循。由於非結構化資料結構限制較少較容易新增資訊。舉例一個每兩分鐘測量氣壓的感測器新增測量溫度功能非結構化資料無須改動既有資料就可直接加入新資料。但這可能會增加分析或調查難度。例如科學家想從感測器資料找出過去一個月的平均溫度卻發現某些記錄欄位有「e」代表感測器故障資料因此不完整。
### 非結構化數據
非結構化數據通常無法歸類為行或列,並且不包含任何格式或規則。由於非結構化數據對其結構的限制較少,與結構化數據相比,添加新信息更為容易。例如,如果一個每兩分鐘捕捉一次氣壓數據的傳感器收到了一個更新,現在可以測量和記錄溫度,那麼如果數據是非結構化的,就不需要更改現有數據。然而,這可能會使分析或調查這類數據的過程變得更長。例如,一位科學家希望從傳感器數據中找到上個月的平均溫度,但發現傳感器在某些記錄數據中記錄了一個 "e" 來表示它壞了,而不是一個典型的數字,這意味著數據是不完整的。
非結構化資料的例子:文字檔、簡訊、影片檔
非結構化數據的例子:文本文件、短信、視頻文件
### 半結構化資料
半結構化資料帶有結構化和非結構化資料的特徵。它通常不符合列與欄的格式但以被視為結構化的方式組織可能遵循固定格式或規則。結構形式因來源而異從明確定義的層級結構到較靈活易整合新資訊的結構。元資料是幫助決定資料如何被組織和儲存的指標名稱依資料類型有所不同。元資料的常見名稱有標籤tags、元素elements、實體entities和屬性attributes。例如典型的電子郵件會有主旨、內容及收件人清單並可依寄件人或時間組織。
### 半結構化數據
半結構化數據具有結構化和非結構化數據的特徵。它通常不符合行和列的格式,但以某種被認為是結構化的方式組織,並可能遵循固定的格式或規則。結構會因來源而異,例如從明確定義的層次結構到更靈活的結構,允許輕鬆整合新信息。元數據是幫助決定數據如何組織和存儲的指標,根據數據類型會有不同的名稱。一些常見的元數據名稱包括標籤、元素、實體和屬性。例如,一封典型的電子郵件消息會有主題、正文和一組收件人,並且可以根據發件人或發送時間進行組織。
半結構化資料的例子HTML、CSV 檔案、JavaScript 物件表示法JSON
半結構化數據的例子HTML、CSV 文件、JavaScript Object Notation (JSON)
## 資料來源
## 數據來源
資料來源是資料產生的初始地點,或它「存在」的地方,會依收集方式和時間而異。用戶直接產生的資料稱為原始資料,而為一般用途收集的則稱為次級資料。舉例,一組科學家在熱帶雨林收集觀察資料屬原始資料,他們分享給其他科學家時,對後者而言則為次級資料。
數據來源是數據生成的初始位置,或者數據“存在”的地方,這取決於數據的收集方式和時間。由用戶生成的數據被稱為原始數據,而二手數據則來自於為一般用途收集數據的來源。例如,一組科學家在雨林中收集觀察數據被認為是原始數據,而如果他們決定與其他科學家共享這些數據,對於使用這些數據的人來說,這些數據則被認為是二手數據。
數據庫是常見的數據來源,依賴於數據庫管理系統來託管和維護數據,用戶通過稱為查詢的命令來探索數據。作為數據來源的文件可以是音頻、圖像和視頻文件,也可以是像 Excel 這樣的電子表格。互聯網來源是託管數據的常見位置數據庫和文件都可以在其中找到。應用程序編程接口API允許程序員通過互聯網創建與外部用戶共享數據的方法而網頁抓取則是從網頁中提取數據的過程。[《處理數據》課程](../../../../../../../../../2-Working-With-Data) 將重點介紹如何使用各種數據來源。
資料庫是常見資料來源,依賴資料庫管理系統來存放和維護資料,使用者透過稱為查詢的指令來探索資料。檔案作為資料來源,可以是音訊、影像、影片檔案以及像 Excel 這樣的試算表。網際網路是托管資料的常見地點可找到資料庫及檔案。應用程式介面API允許程式設計師創建透過網際網路與外部用戶分享資料的方法而網頁擷取則是從網頁抽取資料。[處理資料課程](../../../../../../../../../2-Working-With-Data)著重於如何使用各種資料來源。
## 總結
在本課程中,我們學習了:
- 什麼是數據
- 數據的描述方式
- 數據的分類和歸類方式
- 數據的來源
在本課,我們學到了:
- 什麼是資料
- 資料如何被描述
- 資料如何被分類和歸類
- 資料在哪裡可被找到
## 🚀 挑戰
Kaggle 是一個優秀的開放數據集來源。使用 [數據集搜索工具](https://www.kaggle.com/datasets) 找到一些有趣的數據集,並根據以下標準對 3-5 個數據集進行分類:
- 數據是定量的還是定性的?
- 數據是結構化的、非結構化的還是半結構化的?
Kaggle 是開放資料集的絕佳來源。使用其 [資料集搜索工具](https://www.kaggle.com/datasets) 尋找一些有趣的資料集,並根據以下標準分類 3-5 個資料集:
- 此資料是定量還是定性?
- 此資料是結構化、非結構化還是半結構化?
## [課後測驗](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## 複習與自學
- Microsoft Learn 的這個單元 [分類你的數據](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) 詳細介紹了結構化、半結構化和非結構化數據
- 本 Microsoft Learn 單元,題為 [識別資料格式](https://learn.microsoft.com/en-us/training/modules/explore-core-data-concepts/2-data-formats?pivots=text) 詳細拆解了結構化、半結構化及非結構化資料
## 作業
[分類數據集](assignment.md)
[分類資料集](assignment.md)
---
**免責聲明**
此文件已使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業的人類翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於確保準確性,但請注意,機器自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議進行專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -4,8 +4,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Introduction to Probability and Statistics\n",
"在本筆記本中,我們將實作一些之前討論過的概念。許多來自機率與統計的概念,在 Python 的主要資料處理庫中都有很好的呈現,例如 `numpy` 和 `pandas`。\n"
"# 機率與統計導論\n",
"在本筆記本中,我們將實作之前討論過的一些概念。許多機率與統計的概念都在 Python 的主要資料處理函式庫中有很好的支援,例如 `numpy` 和 `pandas`。\n"
]
},
{
@ -24,8 +24,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 隨機變與分佈\n",
"讓我們從 0 到 9 的均勻分佈中抽取 30 個值的樣本。我們還會計算平均值和變異數。\n"
"## 隨機變與分佈\n",
"讓我們先從 0 到 9 的均勻分佈抽取 30 個樣本值。我們也會計算平均值與變異數。\n"
]
},
{
@ -44,7 +44,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"為了視覺上估計樣本中有多少不同的值,我們可以繪製 **直方圖**\n"
"要直觀地估計樣本中有多少個不同的值,我們可以繪製 <strong>直方圖</strong>\n"
]
},
{
@ -63,7 +63,7 @@
"source": [
"## 分析實際數據\n",
"\n",
"平均值和變異數在分析現實數據時非常重要。讓我們從 [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) 載入有關棒球選手的數據。\n"
"均值和變異數在分析真實世界數據時非常重要。讓我們從 [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) 載入有關棒球運動員的數據\n"
]
},
{
@ -80,7 +80,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> 我們這裡使用一個名為 [**Pandas**](https://pandas.pydata.org/) 的套件進行資料分析。我們會在本課程後面更詳細地討論 Pandas 以及如何在 Python 中處理資料。\n",
"> 我們在此使用一個名為 [**Pandas**](https://pandas.pydata.org/) 的套件來進行資料分析。在本課程稍後會討論更多有關 Pandas 以及在 Python 中處理資料的方法。\n",
"\n",
"讓我們計算年齡、身高和體重的平均值:\n"
]
@ -98,7 +98,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"現在讓我們集中於身高,並計算標準差與方差:\n"
"現在讓我們專注於身高,計算標準差和變異數: \n"
]
},
{
@ -126,7 +126,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"除平均值外,觀察中位數和四分位數亦是合理的。它們可以用**箱形圖**來視覺化:\n"
"除了平均值外,也有必要觀察中位數和四分位數。它們可以使用<strong>盒狀圖</strong>來視覺化:\n"
]
},
{
@ -136,7 +136,7 @@
"outputs": [],
"source": [
"plt.figure(figsize=(10,2))\n",
"plt.boxplot(df['Height'].ffill(), vert=False, showmeans=True)\n",
"plt.boxplot(df['Height'].ffill(), orientation='horizontal', showmeans=True)\n",
"plt.grid(color='gray', linestyle='dotted')\n",
"plt.tight_layout()\n",
"plt.show()"
@ -146,7 +146,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我們也可以製作數據集子集的箱型圖,例如按球員角色分組。\n"
"我們亦可以繪製數據集子集的箱形圖,例如按球員角色分組。\n"
]
},
{
@ -165,9 +165,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **注意**:這張圖表顯示,平均而言,一壘手的身高比二壘手的身高高。稍後我們會學習如何更正式地檢驗這個假設,以及如何證明我們的數據在統計上具有顯著性。 \n",
"> <strong>注意</strong>:此圖表顯示,平均而言,一壘手的身高比二壘手的身高高。稍後我們將學習如何更正式地檢驗這個假設,以及如何證明我們的數據在統計上具有顯著性以支持此結論。 \n",
"\n",
"年齡、身高和體重都是連續隨機變數。你覺得它們的分布是怎樣的?一個好方法是繪製值的直方圖:\n"
"年齡、身高和體重都是連續隨機變數。你認為它們的分佈是什麼?一個好方法是繪製數值的直方圖: \n"
]
},
{
@ -190,7 +190,7 @@
"source": [
"## 常態分佈\n",
"\n",
"讓我們建立一個人工的重量樣本,該樣本遵循與我們真實資料相同的平均值和變異數的常態分佈\n"
"讓我們建立一個人工的體重樣本,其分佈符合常態分佈,且具有與我們實際數據相同的平均值和變異數\n"
]
},
{
@ -231,7 +231,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"由於現實生活中大多數數值呈常態分佈,我們不應使用均勻隨機數生器來生樣本數據。以下是如果嘗試使用均勻分佈(由 `np.random.rand` 生成)來生成體重時會發生的情況:\n"
"由於現實生活中大多數數值呈常態分佈,我們不應使用均勻隨機數生器來生樣本數據。以下是如果我們嘗試用均勻分佈(由 `np.random.rand` 生成)來生成體重時會發生的情況:\n"
]
},
{
@ -251,9 +251,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 信心水準區間\n",
"## 信心區間\n",
"\n",
"現在讓我們計算棒球選手的體重和身高的信心水準區間。我們將使用[這個 stackoverflow 討論](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data)中的程式碼:\n"
"現在讓我們計算棒球運動員體重和身高的信心區間。我們將使用[這段stackoverflow討論](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data)中的程式碼:\n"
]
},
{
@ -272,7 +272,7 @@
" return m, h\n",
"\n",
"for p in [0.85, 0.9, 0.95]:\n",
" m, h = mean_confidence_interval(df['Weight'].fillna(method='pad'),p)\n",
" m, h = mean_confidence_interval(df['Weight'].ffill(),p)\n",
" print(f\"p={p:.2f}, mean = {m:.2f} ± {h:.2f}\")"
]
},
@ -282,7 +282,7 @@
"source": [
"## 假設檢定\n",
"\n",
"讓我們探索棒球球員數據集中不同的角色:\n"
"讓我們探索棒球選手數據集中不同的角色:\n"
]
},
{
@ -298,7 +298,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"讓我們測試一下「一壘手比二壘手身高較高」的假設。最簡單的方法是檢驗信賴區間:\n"
"讓我們測試「一壘手比二壘手高」的假設。最簡單的方法是測試信賴區間: \n"
]
},
{
@ -317,9 +317,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我們可以看到區間沒有重疊。\n",
"我們可以看到這些區間沒有重疊。\n",
"\n",
"一個在統計上更正確的方法來驗證假設是使用 **Student t 檢定**\n"
"一個更統計上正確證明假設的方法是使用 **Student t檢驗**\n"
]
},
{
@ -338,9 +338,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"`ttest_ind` 函數返回的兩個值是: \n",
"* p 值可以被視為兩個分布具有相同平均值的概率。在我們的例子中,它非常低,這意味著有強有力的證據支持一壘手較高。 \n",
"* t 值是用於 t 檢驗的標準化平均差異的中間值,並且它會與給定置信值的閾值進行比較。\n"
"`ttest_ind` 函數返回的兩個值是:\n",
"* p 值可以被視為兩個分布具有相同期望值的機率。在我們的例子中p 值非常低,代表有強烈證據支持一壘手身高較高。\n",
"* t 值是用於 t 檢定的歸一化平均差的中介值,並且會與對應信心水準的閾值進行比較。\n"
]
},
{
@ -349,7 +349,7 @@
"source": [
"## 使用中心極限定理模擬常態分佈\n",
"\n",
"Python 中的偽隨機產生器是設計用來給我們均勻分佈。如果我們想要創建一個常態分佈的產生器,我們可以使用中心極限定理。要獲得一個常態分佈的值,我們只需計算一組均勻分佈樣本的平均值。\n"
"Python 中的偽隨機生成器被設計為產生均勻分佈。如果我們想創建一個常態分佈的生成器,我們可以使用中心極限定理。要獲得一個常態分佈的值,我們只需計算一組均勻生成樣本的平均值。\n"
]
},
{
@ -375,7 +375,7 @@
"source": [
"## 相關性與邪惡棒球公司\n",
"\n",
"相關性讓我們能夠找出資料序列之間的關係。在我們的範例中假設有一間邪惡的棒球公司根據球員的身高支付薪水——球員越高拿到的錢就越多。假設基本薪資是1000美元並且根據身高額外獲得0到100美元的獎金。我們將以真實的MLB球員為例計算他們的假想薪水:\n"
"相關性讓我們能夠找到資料序列之間的關聯。在我們的玩具範例中假設有一家邪惡的棒球公司他們根據球員的身高支付薪水——球員越高所得的錢越多。假設有基本薪資1000美元並根據身高提供0到100美元的額外獎金。我們將採用MLB的真實球員計算他們的想像薪水:\n"
]
},
{
@ -384,7 +384,7 @@
"metadata": {},
"outputs": [],
"source": [
"heights = df['Height'].fillna(method='pad')\n",
"heights = df['Height'].ffill()\n",
"salaries = 1000+(heights-heights.min())/(heights.max()-heights.mean())*100\n",
"print(list(zip(heights, salaries))[:10])"
]
@ -393,7 +393,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"現在讓我們計算這些序列的共變異數和相關係數。`np.cov` 會給我們一個所謂的 **共變異數矩陣**,這是共變異數對多個變量的擴展。共變異數矩陣 $M$ 的元素 $M_{ij}$ 是輸入變量 $X_i$ 和 $X_j$ 之間的共變異數,而對角線上的值 $M_{ii}$ 是 $X_i$ 的變異數。同樣地,`np.corrcoef` 會給我們 **相關係數矩陣**。\n"
"現在讓我們計算這些序列的共變異數與相關係數。`np.cov` 會給我們一個所謂的 <strong>共變異數矩陣</strong>,它是共變異數在多個變數上的擴展。共變異數矩陣 $M$ 的元素 $M_{ij}$ 是輸入變數 $X_i$ 與 $X_j$ 之間的共變異數,而對角線上的值 $M_{ii}$ 是 $X_i$ 的變異數。同理地,`np.corrcoef` 會給我們 <strong>相關係數矩陣</strong>。\n"
]
},
{
@ -411,7 +411,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"相關係數等於 1 意味著兩個變量之間存在強烈的**線性關係**。我們可以通過將一個值繪製對另一個值來直觀地看到這種線性關係:\n"
"相關係數等於1代表兩個變量之間存在強烈的<strong>線性關係</strong>。我們可以透過將一個變量對另一個變量作圖來直觀地看到線性關係:\n"
]
},
{
@ -430,7 +430,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"讓我們看看如果關係不是線性的會發生什麼。假設我們的公司決定隱藏身高和薪水之間明顯的線性依賴關係,並在公式中引入一些非線性,例如 `sin`\n"
"讓我們看看當關係不是線性時會發生什麼。假設我們的公司決定隱藏身高和薪水之間明顯的線性依賴,並在公式中引入一些非線性,例如 `sin`\n"
]
},
{
@ -447,7 +447,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"在這種情況下,相關性略微減小,但仍然相當高。現在,為了使關係變得不那麼明顯,我們可能想通過給薪水增加一些隨機變量來加入一些額外的隨機性。讓我們看看會發生什麼:\n"
"在這個例子中,相關性稍微小了一點,但仍然相當高。現在,為了讓這個關係變得不那麼明顯,我們可能想要通過加上一些隨機變量來增加一些額外的隨機性到薪水中。讓我們看看會發生什麼: \n"
]
},
{
@ -476,9 +476,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> 你能猜到為什麼這些點會排列成這樣的垂直線嗎?\n",
"> 你能猜到為什麼這些點會排列成這樣的垂直線嗎?\n",
"\n",
"我們已經觀察到像薪水這樣的人為設計概念與觀察到的變量*身高*之間的關聯。接下來讓我們看看兩個觀察到的變量,例如身高和體重,是否也相關\n"
"我們已經觀察到像薪水這種人工設計的概念與觀察變量<em>身高</em>之間的相關性。現在讓我們也看看兩個觀察變量,例如身高和體重,是否也有相關性\n"
]
},
{
@ -494,11 +494,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"不幸地,我們沒有得到任何結果——只有一些奇怪的 `nan` 值。這是由於我們序列中有些值是未定義的,用 `nan` 表示,這導致運算結果也未定義。透過觀察矩陣,我們可以看到 `Weight` 是有問題的欄位,因為已經計算了 `Height` 值之間的自相關。\n",
"不幸地,我們沒有得到任何結果——只有一些奇怪的 `nan` 值。這是因為我們序列中的某些值是未定義的,表示為 `nan`,這導致運算結果也未定義。通過查看矩陣,我們可以看到 `Weight` 是出問題的欄位,因為已經計算了 `Height` 值之間的自相關。\n",
"\n",
"> 這個例子顯示了**資料準備**和**清理**的重要性。沒有適當的資料,我們無法計算任何東西。\n",
"> 這個例子展示了<strong>資料準備</strong>和<strong>清理</strong>的重要性。沒有適當的資料,我們無法計算任何東西。\n",
"\n",
"讓我們使用 `fillna` 方法填補遺失值,並計算相關性:\n"
"讓我們使用 `fillna` 方法填補遺失值,並計算相關性:\n"
]
},
{
@ -507,14 +507,14 @@
"metadata": {},
"outputs": [],
"source": [
"np.corrcoef(df['Height'].fillna(method='pad'), df['Weight'])"
"np.corrcoef(df['Height'].ffill(), df['Weight'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"確實存在相關性,但不像我們的人工範例中那麼強烈。事實上,如果我們查看一個數值與另一個數值的散點圖,關係會少得多明顯:\n"
"確實存在相關性,但不像我們的人為範例中那麼強烈。事實上,如果我們查看一個值與另一個值的散點圖,這種關係會不那麼明顯: \n"
]
},
{
@ -535,16 +535,16 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Conclusion\n",
"## 總結\n",
"\n",
"在本筆記本中,我們已經學會了如何對數據執行基本操作以計算統計函數。我們現在知道如何使用完善的數學和統計工具來驗證一些假設,以及如何根據數據樣本計算任意變量的置信區間。\n"
"在此筆記本中,我們學會了如何對數據進行基本操作以計算統計函數。我們現在知道如何使用完整的數學和統計工具來驗證一些假設,以及如何根據數據樣本計算任意變量的置信區間。\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明** \n本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始語言版本文件應視為權威來源。對於重要資訊,建議採用專業人工翻譯。對於因使用本翻譯而產生的任何誤解或誤譯,我們概不負責。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明**\n本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於確保準確性,但請注意,機器自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議進行專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋承擔責任。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -568,12 +568,6 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
},
"coopTranslator": {
"original_hash": "0f899e3c5019f948e7c787b22f3b2304",
"translation_date": "2026-01-16T10:09:45+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "hk"
}
},
"nbformat": 4,

@ -4,11 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# 新冠肺炎大流行估計\n",
"# COVID-19 疫情估算\n",
"\n",
"## 載入數據\n",
"\n",
"我們將使用由[約翰霍普金斯大學](https://jhu.edu/)的[系統科學與工程中心](https://systems.jhu.edu/)CSSE提供的新冠肺炎感染者數據。數據集可在[此GitHub倉庫](https://github.com/CSSEGISandData/COVID-19)中獲得。\n"
"我們將使用由[約翰·霍普金斯大學](https://jhu.edu/)的[系統科學與工程中心](https://systems.jhu.edu/)CSSE提供的 COVID-19 感染者數據。數據集可在[此 GitHub 倉庫](https://github.com/CSSEGISandData/COVID-19)獲取。\n"
]
},
{
@ -27,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我們可以使用 `pd.read_csv` 直接從 GitHub 載入最新的數據。如果因某些原因數據無法取得,你也可以使用位於 `data` 資料夾的本地副本——只需取消註解下面定義 `base_url` 的那一行即可:\n"
"我們可以使用 `pd.read_csv` 直接從 GitHub 載入最新的資料。如果因某些原因資料無法取得,你也可以使用存在本地 `data` 資料夾中的副本 — 只需取消註解下面定義 `base_url` 的那行即可:\n"
]
},
{
@ -48,7 +48,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"現在讓我們載入感染者的數據,看看數據的樣子:\n"
"現在讓我們載入感染者的數據,並看看數據的情況: \n"
]
},
{
@ -265,7 +265,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我們可以看到,表格的每一行定義了每個國家和/或省份的感染人數,而欄則對應日期。類似的表格可以用於其他數據,例如康復人數和死亡人數。\n"
"我們可以看到表格的每一行定義了每個國家及/或省份的感染人數,而列則對應日期。類似的表格也可以用於載入其他數據,例如康復人數和死亡人數。\n"
]
},
{
@ -284,7 +284,7 @@
"source": [
"## 理解數據\n",
"\n",
"從上表中「省份」欄位的角色不太清晰。讓我們看看「Province/State」欄中存在的不同數值:\n"
"從上表中看,省份欄的角色並不清晰。讓我們看看 `Province/State` 欄中存在的不同值:\n"
]
},
{
@ -322,7 +322,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"從名稱中我們可以推斷,像澳洲和中國這樣的國家有更詳細的省份分類。讓我們查找中國的相關資訊來看看範例:\n"
"從這些名稱我們可以推斷出像澳洲和中國這樣的國家有更詳細的省份劃分。讓我們尋找中國的相關信息以作為範例:\n"
]
},
{
@ -1321,9 +1321,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 預處理數據\n",
"## 預處理數據 \n",
"\n",
"我們不打算將國家進一步細分為領土,因此我們會先去除這種細分,並將所有領土的信息加總起來,以獲取整個國家的資料。這可以使用 `groupby` 來完成:\n"
"我們並不打算將國家進一步細分為各個領土,因此我們會先去除這個細分,並將所有領土的資訊加總,以獲取整個國家的資訊。這可以使用 `groupby` 完成:\n"
]
},
{
@ -1578,7 +1578,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"你可以看到由於使用了 `groupby`,所有的資料框現在都以 Country/Region 作為索引。因此,我們可以使用 `.loc` 來存取特定國家的資料:|\n"
"你可以看到由於使用了 `groupby`,所有的 DataFrame 現在都是以國家/地區作為索引。因此,我們可以使用 `.loc` 來存取特定國家的資料:|\n"
]
},
{
@ -1607,7 +1607,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **注意** 我們如何使用 `[3:]` 去除包含非日期元數據(省/州和地理位置欄位)的序列中的前三個元素。我們亦可以直接刪除這三個欄位:\n"
"> <strong>注意</strong> 我們如何使用 `[3:]` 移除包含非日期元數據(省/州和地理位置欄位)的序列中前三個元素。我們也可以直接刪除這三個欄位:\n"
]
},
{
@ -1627,7 +1627,7 @@
"source": [
"## 調查數據\n",
"\n",
"現在讓我們轉為調查特定國家。讓我們建立一個框架,其中包含按日期索引感染數據:\n"
"現在讓我們轉為調查特定國家。讓我們建立一個包含按日期索引感染數據的資料框 \n"
]
},
{
@ -1793,7 +1793,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"現在讓我們計算每天新增的感染人數。這將讓我們見到疫情進展的速度。最簡單的方法是使用 `diff`\n"
"現在讓我們計算每天新增感染人數。這將使我們能夠看到疫情擴散的速度。最簡單的方法是使用 `diff`\n"
]
},
{
@ -1823,7 +1823,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我們可以看到數據有很大波動。讓我們仔細看看其中一個月份:\n"
"我們可以看到數據有很大波動。讓我們仔細看看其中一個月份:\n"
]
},
{
@ -1852,7 +1852,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"數據明顯呈現每週波動。因為我們希望能夠看到趨勢,所以通過計算滑動平均(即對每一天計算前幾天的平均值)來平滑曲線是合理的:\n"
"數據明顯顯示每週波動。因為我們想要觀察趨勢,所以通過計算移動平均來平滑曲線是合理的(即對每一天,我們將計算前幾天的平均值): \n"
]
},
{
@ -1882,7 +1882,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"為了能夠比較多個國家,我們可能想要考慮該國的人口,並比較受感染個體佔該國人口的百分比。為了獲取該國的人口數據,讓我們載入國家資料集:\n"
"為了能夠比較多個國家,我們可能想要考慮國家的人口數,並比較感染者人數佔該國人口的百分比。為了取得國家人口,讓我們載入國家資料集:\n"
]
},
{
@ -2153,7 +2153,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"因為這個數據集同時包含國家和省份的資料,要取得整個國家的人口數據,我們需要用點小聰明:\n"
"因為這個數據集同時包含國家和省份的資訊,要獲得整個國家的人口數,我們需要稍微聰明一點: \n"
]
},
{
@ -2261,14 +2261,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## 計算 $R_t$\n",
"\n",
"為了解疾病的傳染性,我們觀察**基本繁殖數** $R_0$,它表示一名感染者會進一步感染的人數。當 $R_0$ 大於1時疫情可能會擴散。\n",
"要了解疾病的傳染性,我們會看 <strong>基本再生數</strong> $R_0$,表示一個感染者會進一步感染多少人。當 $R_0$ 超過 1疫情有可能擴散。\n",
"\n",
"$R_0$ 是疾病本身的特性,不考慮人們可能採取的一些防護措施以減緩疫情。在疫情進展期間,我們可以在任何特定時間點 $t$ 估計繁殖數 $R_t$。已有研究顯示,這個數字可以透過取 8 天的視窗大致估計,計算方式為 $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"其中 $I_t$ 是第 $t$ 天新感染者人數。\n",
"$R_0$ 是疾病本身的特性,並未考慮人們可能採取的一些防護措施以減緩疫情。在疫情進展中,我們可以估算任意時間點 $t$ 的再生數 $R_t$。研究顯示,這個數字可以大致用一個 8 天的窗口估計,計算方式為 $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"其中 $I_t$ 是第 $t$ 天新感染者人數。\n",
"\n",
"讓我們計算我們疫情數據的 $R_t$。為此,我們將取連續 8 個 `ninfected` 值的滾動視窗,並套用上述函數計算該比例\n"
"讓我們為疫情數據計算 $R_t$。方法是取一個滾動窗口,包含 8 個 `ninfected` 數值,並套用上述的比率函數\n"
]
},
{
@ -2298,9 +2299,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"你可以看到圖表中有些間隙。這些間隙可能是由於資料集中存在 `NaN` 或 `inf` 值。`inf` 可能是因為除以 0 而產生,而 `NaN` 則可能表示缺少數據,或者沒有數據可用於計算結果(例如在我們的框架最開始時,滾動視窗寬度為 8 尚未可用)。為了讓圖表看起來更好,我們需要使用 `replace` 和 `fillna` 函數來填補這些值。\n",
"你可以看到圖表中有些間隙。這些間隙可能是由於資料集中存在 `NaN` 或 `inf` 值所造成。`inf` 可能是由於除以 0 而產生,而 `NaN` 則可能表示資料遺失,或沒有可用的資料來計算結果(就像在我們視窗的最開始,寬度為 8 的滾動視窗尚未可用)。為了讓圖表更好看,我們需要使用 `replace` 和 `fillna` 函數來填補這些值。\n",
"\n",
"讓我們進一步觀察疫情初期。同時,我們將限制 y 軸的值,只顯示小於 6 的值,以便更清楚地觀察,並在 1 的位置畫一條水平線。\n"
"讓我們繼續看看疫情剛開始的時候。我們同時會限制 y 軸的值,只顯示低於 6 的值,以便看得更清楚,並且在 1 的位置畫一條水平線。\n"
]
},
{
@ -2331,7 +2332,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"另一個有趣的疫情指標是 **導數**,或稱為新增病例的 **每日差異**。它讓我們清楚地看到疫情何時在增長或減少。\n"
"疫情的另一個有趣指標是 <strong>導數</strong>,或稱為新增病例的 <strong>每日差異</strong>。它讓我們清晰地看到疫情何時在上升或下降。\n"
]
},
{
@ -2360,7 +2361,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"鑑於報告數據中存在大量波動,因此通過運行滾動平均來平滑曲線,以獲得整體情況是合理的。讓我們再次關注疫情的最初幾個月:\n"
"鑑於由於報告導致資料有很多波動,因此通過進行滾動平均來平滑曲線,以獲得整體情況是有意義的。我們再次關注疫情的最初幾個月:\n"
]
},
{
@ -2390,14 +2391,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## 挑戰\n",
"\n",
"現在是時候讓你多玩玩碼和數據了!以下是一些你可以嘗試的建議:\n",
"* 查看不同國家疫情的擴散情況。\n",
"* 在一個圖表上繪製多個國家的 $R_t$ 曲線以作比較,或並排製作多個圖表。\n",
"* 查看死亡人數和康復人數如何與感染案例數相關聯。\n",
"* 嘗試通過視覺上比較感染率和死亡率並尋找一些異常,找出典型疾病持續的時間。你可能需要觀察不同國家來找出這點。\n",
"* 計算致死率及其隨時間的變化。你可能需要考慮疾病持續的天數,將一個時間序列平移後再進行計算。\n"
"現在是時候讓你多玩玩程式碼和數據了!以下是一些你可以嘗試的建議:\n",
"* 觀察疫情在不同國家的傳播情況。\n",
"* 在一張圖中繪製多個國家的 $R_t$ 曲線以作比較,或者將多張圖並排顯示。\n",
"* 觀察死亡人數和康復人數與感染病例數的相關性。\n",
"* 嘗試透過視覺化對比感染率與死亡率並尋找異常,來了解典型疾病持續多久。你可能需要查看不同國家的數據以找出答案。\n",
"* 計算致死率及其隨時間的變化。你可能想考慮疾病持續的天數,先將其中一個時間序列往前或往後移動,再做計算。\n"
]
},
{
@ -2406,9 +2408,9 @@
"source": [
"## 參考資料\n",
"\n",
"您可以參考以下刊物中關於 COVID 疫情擴散的進一步研究:\n",
"* [COVID 疫情期間 Rt 估的滑動 SIR 模型](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/),由 [Dmitry Soshnikov](http://soshnikov.com) 發表的博客文章\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [全球 COVID-19 爆發的時變基本再生數估計](https://www.preprints.org/manuscript/202006.0289/v1)。*Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"您可以參考以下出版物中關於 COVID 疫情傳播的進一步研究:\n",
"* [COVID 疫情期間 Rt 估的滑動 SIR 模型](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/),由 [Dmitry Soshnikov](http://soshnikov.com) 發表的博客文章\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [全球 COVID-19 疫情的時變繁殖數估計](https://www.preprints.org/manuscript/202006.0289/v1)。*Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [上述論文的 GitHub 代碼](https://github.com/shwars/SlidingSIR)\n"
]
},
@ -2423,7 +2425,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明** \n此文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原文件的母語版本應視為權威來源。對於重要資訊,建議聘請專業人工翻譯。我們不對因使用本翻譯而導致的任何誤解或誤釋負責。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明**\n本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於確保準確性,但請注意,機器自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議進行專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋承擔責任。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],

@ -1,29 +1,33 @@
# 危險關係數據可視化項目
# 危險關係資料視覺化專案
要開始使用,請確保你的電腦已安裝 NPM 和 Node。安裝依賴項npm install然後在本地運行項目npm run serve
要開始,您需要確保您的機器上已執行 NPM 和 Node **>=20.0.0**。安裝相依套件npm install然後本地執行專案npm run serve
## 項目設置
## 專案設定
```
npm install
```
### 編譯並熱重載以進行開發
### 編譯並進行開發時即時熱重載
```
npm run serve
```
### 編譯並壓縮以進行生產環境
### 編譯並進行生產模式的壓縮
```
npm run build
```
### 檢查並修復文件
### 檢查並修正程式碼格式
```
npm run lint
```
### 自定義配置
請參閱 [配置參考](https://cli.vuejs.org/config/)。
### 自配置
請參考 [Configuration Reference](https://cli.vuejs.org/config/)。
**免責聲明**
本文件已使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要信息,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋概不負責。
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於確保準確性,但請注意,機器自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議進行專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,29 +1,33 @@
# 危險關係數據可視化項目
# 危險關係資料視覺化項目
要開始使用,請確保你的電腦已安裝並運行 NPM 和 Node。安裝依賴項npm install然後在本地運行項目npm run serve
要開始,您需要確保您的機器上安裝並運行了 NPM 和 Node **>=20.0.0**。安裝依賴 (npm install),然後本地運行項目 (npm run serve)
## 項目設置
```
npm install
```
### 編譯並啟用熱重載以進行開發
### 編譯並熱重載以進行開發
```
npm run serve
```
### 編譯並壓縮以進行生產環境使用
### 編譯並壓縮以部署生產環境
```
npm run build
```
### 檢查並修復文件
### 代碼檢查並修復文件
```
npm run lint
```
### 自定義配置
請參閱[配置參考](https://cli.vuejs.org/config/)。
### 自配置
請參閱 [Configuration Reference](https://cli.vuejs.org/config/)。
**免責聲明**
本文件已使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文檔的母語版本作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤詮釋概不負責。
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於確保準確性,但請注意,機器自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議進行專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -12,8 +12,8 @@
"language_code": "zh-MO"
},
"1-Introduction/01-defining-data-science/notebook.ipynb": {
"original_hash": "8f5eb7b3f7cc89e6d98fb32e1de65dec",
"translation_date": "2026-02-28T08:58:52+00:00",
"original_hash": "8eb07e3d899aaba7ea9c9ec9b5aa2850",
"translation_date": "2026-07-17T21:34:20+00:00",
"source_file": "1-Introduction/01-defining-data-science/notebook.ipynb",
"language_code": "zh-MO"
},
@ -42,8 +42,8 @@
"language_code": "zh-MO"
},
"1-Introduction/03-defining-data/README.md": {
"original_hash": "12339119c0165da569a93ddba05f9339",
"translation_date": "2025-09-06T07:03:13+00:00",
"original_hash": "7217c6f9eb464d4ff4bae6c036ab53cb",
"translation_date": "2026-07-17T21:41:06+00:00",
"source_file": "1-Introduction/03-defining-data/README.md",
"language_code": "zh-MO"
},
@ -65,6 +65,12 @@
"source_file": "1-Introduction/04-stats-and-probability/assignment.md",
"language_code": "zh-MO"
},
"1-Introduction/04-stats-and-probability/notebook.ipynb": {
"original_hash": "0c77e104b29c723287bf11b773fcc5d5",
"translation_date": "2026-07-17T21:35:27+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "zh-MO"
},
"1-Introduction/README.md": {
"original_hash": "696a8474a01054281704cbfb09148949",
"translation_date": "2025-08-27T08:43:53+00:00",
@ -108,8 +114,8 @@
"language_code": "zh-MO"
},
"2-Working-With-Data/07-python/notebook-covidspread.ipynb": {
"original_hash": "6335cccba01dc6ad7b15aba7a8c73f38",
"translation_date": "2026-02-28T09:00:17+00:00",
"original_hash": "da97f98781c7cd271063f605fe8d71d0",
"translation_date": "2026-07-17T21:33:44+00:00",
"source_file": "2-Working-With-Data/07-python/notebook-covidspread.ipynb",
"language_code": "zh-MO"
},
@ -192,14 +198,14 @@
"language_code": "zh-MO"
},
"3-Data-Visualization/13-meaningful-visualizations/solution/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-27T10:12:13+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T21:41:15+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/solution/README.md",
"language_code": "zh-MO"
},
"3-Data-Visualization/13-meaningful-visualizations/starter/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-27T10:11:36+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T21:41:10+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/starter/README.md",
"language_code": "zh-MO"
},

File diff suppressed because one or more lines are too long

@ -1,69 +1,71 @@
# 定義資料
# 定義數據
|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)|
|:---:|
|定義資料 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ |
|定義數據 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ |
資料是用來進行探索和支持明智決策的事實、資訊、觀察和測量。一個資料點是資料集中的單一資料單位,而資料集則是由多個資料點組成的集合。資料集可能有不同的格式和結構,通常取決於其來源或資料的來源。例如,一家公司的月度收益可能以電子表格形式呈現,而智能手錶的每小時心率資料可能以 [JSON](https://stackoverflow.com/a/383699) 格式呈現。資料科學家通常需要處理資料集中不同類型的資料
數據是用來作出發現和支持明智決策的事實、資訊、觀察和測量。數據點是數據集中的一個單位,數據集是數據點的集合。數據集可能有不同格式和結構,通常基於其來源或數據來源。例如,一家公司的每月收入可能會存放在電子表格中,但智能手錶的每小時心率數據可能是 [JSON](https://stackoverflow.com/a/383699) 格式。數據科學家通常會在數據集中處理不同類型的數據
本課程重點在於根據資料的特性和來源來識別和分類資料
本課程重點在於根據數據的特徵和來源來識別和分類數據
## [課前測驗](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## 資料的描述方式
## 數據的描述方式
### 原始資料
原始資料是來自其來源的初始狀態,尚未被分析或組織。為了理解資料集中的情況,必須將其組織成一種人類和技術都能理解的格式。資料集的結構描述了其組織方式,可以分為結構化、非結構化和半結構化。這些結構類型會因來源而異,但最終都屬於這三類之一
### 原始數據
原始數據是從其來源來的初始狀態且尚未被分析或組織的數據。為了理解數據集的情況,需要將其組織成既能被人類理解,也能被技術用於進一步分析的格式。數據集的結構說明它是如何組織的,並可分類為結構化、非結構化及半結構化。這些結構類型會依據來源而異,但最終會符合這三個類別
### 定量資料
定量資料是資料集中的數值觀察通常可以進行分析、測量並用於數學運算。一些定量資料的例子包括一個國家的人口、一個人的身高或一家公司季度收益。通過進一步分析定量資料可以用來發現空氣品質指數AQI的季節性趨勢或估算典型工作日高峰時段交通的概率。
### 定量數據
定量數據是數據集中以數值形式呈現的觀察結果,通常可用於分析、測量和數學計算。定量數據的例子包括:一國的人口、一人的身高或一間公司的季度收入。通過進一步分析,定量數據可用來發現空氣質量指數 (AQI) 的季節性趨勢或估算典型工作日時段交通高峰的概率。
### 定性資料
定性資料,也稱為分類資料,是無法像定量資料那樣客觀測量的資料。它通常是各種格式的主觀資料,用來捕捉某事物的品質,例如產品或流程。有時,定性資料是數值形式,但通常不會用於數學運算,例如電話號碼或時間戳。一些定性資料的例子包括:影片評論、汽車的品牌和型號或你最親密朋友最喜歡的顏色。定性資料可以用來了解消費者最喜歡哪些產品或識別求職申請表中的熱門關鍵字
### 定性數據
定性數據,也稱為類別數據,是無法像定量數據那樣客觀測量的數據。它通常是各種主觀數據格式,捕捉某物的品質,例如產品或過程。有時候,定性數據是數值型的,但不會用於數學計算,比如電話號碼或時間戳。定性數據的例子包括:視頻評論、汽車的品牌與型號,或你最親密朋友的最愛顏色。定性數據可用於了解消費者喜愛的產品或識別求職履歷中的熱門關鍵詞
### 結構化資料
結構化資料是以行和列的形式組織的資料,其中每一行都具有相同的列集合。列代表特定類型的值,並以描述該值代表內容的名稱來識別,而行則包含實際的值。列通常會有一組特定的規則或限制,以確保值準確地代表該列。例如,想像一個客戶的電子表格,其中每一行都必須有一個電話號碼,且電話號碼不能包含字母字符。可能會在電話號碼列上應用規則,以確保它永遠不會是空的,並且只包含數字。
### 結構化數據
結構化數據是以行和列組織的數據,每一行擁有相同的列集合。列代表特定類型的值,並以名稱標示該值代表的內容,而行則包含實際的數值。欄位通常會有一套規則或限制,確保數值能準確反映該欄位。舉例來說,假設有一個客戶電子表格,每一行必須有電話號碼,而電話號碼裡絕不能有字母,則電話號碼欄會有規則確保此欄位不能空白且僅包含數字。
結構化資料的一個優勢是可以以某種方式組織,使其能與其他結構化資料相關聯。然而,由於資料被設計成以特定方式組織,對其整體結構進行更改可能需要付出大量努力。例如,向客戶電子表格中添加一個不能為空的電子郵件列,意味著需要想辦法將這些值添加到資料集中現有的客戶行中
結構化數據的優點是可以以此組織形式與其他結構化數據建立關聯。然而,由於數據被設計成特定方式組織,若要修改整體結構會相當耗費心力。舉例來說,若要在客戶電子表格新增一欄且不可空白的電子郵件欄,就需要想辦法對現有客戶資料逐行新增該欄位的值
結構化資料的例子:電子表格、關聯式資料庫、電話號碼、銀行帳單
結構化數據的例子:電子表格、關聯式資料庫、電話號碼、銀行帳單
### 非結構化資料
非結構化資料通常無法分類為行或列,並且不包含格式或遵循的規則。由於非結構化資料對其結構的限制較少,與結構化資料相比,添加新資訊更容易。如果一個每兩分鐘捕捉一次氣壓資料的感測器收到更新,現在可以測量和記錄溫度,那麼如果資料是非結構化的,就不需要更改現有資料。然而,這可能會使分析或調查此類資料的時間更長。例如,一位科學家希望從感測器的資料中找到上個月的平均溫度,但發現感測器在某些記錄資料中使用了 "e" 來表示故障,而不是典型的數字,這意味著資料不完整。
### 非結構化數據
非結構化數據通常無法分類為行和列且無固定格式或使用規則。因為非結構化數據較少限制其結構所以相較於結構化數據更易添加新資訊。比方說若一個感應器每兩分鐘測量一次氣壓後來更新新增測量溫度和記錄功能對非結構化數據來說這不需改變原資料格式。然而這可能會讓分析這類數據變得更花時間。例如一位科學家想用感應器數據計算上個月的平均溫度但發現部分數據中用「e」表示感應器故障而非正常數字表示資料不完整。
非結構化資料的例子:文字檔案、簡訊、影片檔案
非結構化數據的例子:文字檔、簡訊、影片檔
### 半結構化資料
半結構化資料具有結構化和非結構化資料的特徵。它通常不符合行和列的格式,但以某種被認為是結構化的方式組織,並可能遵循固定的格式或規則。結構會因來源而異,例如從明確定義的層次結構到更靈活的方式,允許輕鬆整合新資訊。中繼資料是幫助決定資料如何組織和存儲的指標,並根據資料類型有不同的名稱。一些常見的中繼資料名稱包括標籤、元素、實體和屬性。例如,一封典型的電子郵件訊息會有主題、正文和一組收件人,並可以根據發送者或發送時間進行組織。
### 半結構化數據
半結構化數據具有結構化和非結構化數據的特徵。其通常不符合行列格式,但組織方式被視為有結構,且可能遵循固定格式或規則。結構因來源而異,可能是明確的層級,也可能較靈活,方便整合新資訊。元資料是幫助決定數據如何組織和儲存的指標,根據數據類型有不同名稱,常見的有標籤、元素、實體和屬性。舉例,一封典型的電子郵件會有主旨、內文與收件者群,可依發件人或發送時間組織。
半結構化資料的例子HTML、CSV 檔案、JavaScript Object Notation (JSON)
半結構化數據的例子HTML、CSV檔案、JavaScript 物件表示法 (JSON)
## 資料來源
## 數據來源
資料來源是資料生成的初始位置,或其 "存在" 的地方,並會根據資料的收集方式和時間而有所不同。由使用者生成的資料被稱為原始資料,而二手資料則來自為一般用途收集資料的來源。例如,一群科學家在雨林中收集觀察資料被視為原始資料,而如果他們決定與其他科學家分享,對於使用這些資料的人來說則被視為二手資料
數據來源是數據產生或存放的初始位置,會根據收集方式與時間有所不同。由使用者產生的數據稱為原始數據(primary data),而從為一般用途收集而得的數據稱為次級數據(secondary data)。例如,一組科學家在雨林收集觀察資料即為原始數據,他們若將此資料分享給其他科學家,對那些使用資料者來說即為次級數據
資料庫是常見的資料來源,依賴資料庫管理系統來托管和維護資料,使用者使用稱為查詢的命令來探索資料。作為資料來源的檔案可以是音訊、影像和影片檔案,也可以是像 Excel 這樣的電子表格。網路來源是托管資料的常見位置資料庫和檔案都可以在其中找到。應用程式介面API允許程式設計師通過網路創建與外部使用者共享資料的方式而網頁爬取則是從網頁中提取資料的過程。[《資料操作》課程](../../../../../../../../../2-Working-With-Data) 將重點介紹如何使用各種資料來源
資料庫常見做為數據來源,依賴資料庫管理系統來託管和維護資料,用戶則使用稱為查詢的指令來探索數據。以檔案做數據來源可以是音訊、影像和影片檔,也可包含如 Excel 的電子表格。網際網路是眾多數據的常見託管地包括資料庫與檔案皆可找到。應用程式介面API允許程式設計師透過網路創建資料分享方式而網頁爬蟲則從網頁擷取資料。[Working with Data](../../../../../../../../../2-Working-With-Data) 課程深入介紹了各種數據來源的使用
## 結
## 結
在本課程中,我們學到了
這課我們學到
- 資料是什麼
- 資料的描述方式
- 資料的分類和歸類方式
- 資料的來源
- 甚麼是數據
- 數據如何被描述
- 如何分類與歸類數據
- 數據可以從哪裡取得
## 🚀 挑戰
Kaggle 是一個開放資料集的絕佳來源。使用 [資料集搜尋工具](https://www.kaggle.com/datasets) 找到一些有趣的資料集,並根據以下標準分類 3-5 個資料集:
Kaggle 是一個優秀的開放數據集來源。使用 [資料集搜尋工具](https://www.kaggle.com/datasets) 找到一些有趣的資料集,並以下標準分類 3-5 個資料集:
- 資料是定量還是定性?
- 資料是結構化、非結構化還是半結構化?
- 該數據是定量還是定性?
- 該數據是結構化、非結構化還是半結構化?
## [課後測驗](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## 回顧與自學
- Microsoft Learn 單元 [分類你的資料](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) 詳細介紹了結構化、半結構化和非結構化資料。
## 複習與自學
- 這個 Microsoft Learn 單元,標題為 [識別數據格式](https://learn.microsoft.com/en-us/training/modules/explore-core-data-concepts/2-data-formats?pivots=text) 詳細解析了結構化、半結構化和非結構化數據。
## 作業
@ -71,5 +73,7 @@ Kaggle 是一個開放資料集的絕佳來源。使用 [資料集搜尋工具](
---
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議尋求專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或曲解承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -4,8 +4,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Introduction to Probability and Statistics\n",
"In this notebook, we will play around with some of the concepts we have previously discussed. Many concepts from probability and statistics are well-represented in major libraries for data processing in Python, such as `numpy` and `pandas`.\n"
"# 概率與統計簡介\n",
"在本筆記本中,我們將操弄一些之前討論過的概念。許多來自概率與統計的概念在 Python 的主要資料處理函式庫中都有良好展現,例如 `numpy` 和 `pandas`。\n"
]
},
{
@ -24,8 +24,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 隨機變與分佈\n",
"讓我們從介乎 0 至 9 的均勻分佈中抽取 30 個樣本值。 我們亦會計算平均數和變異數。\n"
"## 隨機變與分佈\n",
"我們先從 0 到 9 的均勻分佈中抽取 30 個數值的樣本。並且計算其平均值及變異數。\n"
]
},
{
@ -44,7 +44,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"為了視覺上估計樣本中有多少不同的值,我們可以繪製**直方圖**\n"
"要視覺上估計樣本中有多少不同的值,我們可以繪製<strong>直方圖</strong>\n"
]
},
{
@ -63,7 +63,7 @@
"source": [
"## 分析實際數據\n",
"\n",
"均值和方差在分析實際世界數據時非常重要。讓我們從[SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)載入有關棒球運動員的數據。\n"
"均值和方差在分析現實世界數據時非常重要。讓我們載入來自 [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) 的棒球運動員數據\n"
]
},
{
@ -80,7 +80,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> 我們在這裏使用一個名為 [**Pandas**](https://pandas.pydata.org/) 的套件來進行數據分析。我們會在這門課程稍後討論更多關於 Pandas 和在 Python 中處理數據的內容。\n",
"> 我們這裡使用一個名為 [**Pandas**](https://pandas.pydata.org/) 的套件來進行數據分析。稍後在本課程中,我們會進一步討論 Pandas 以及如何在 Python 中處理數據。\n",
"\n",
"讓我們計算年齡、身高和體重的平均值:\n"
]
@ -98,7 +98,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"現在讓我們專注於身高,並計算標準差和變異數:\n"
"而家嚟集中睇身高,計算標準差同變異數: \n"
]
},
{
@ -126,7 +126,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"除了平均值之外,查看中位數和四分位數也是很有意義的。它們可以用**箱型圖**來視覺化:\n"
"除了平均值之外,查看中位數和四分位數也是有意義的。它們可以用<strong>箱型圖</strong>來視覺化: \n"
]
},
{
@ -136,7 +136,7 @@
"outputs": [],
"source": [
"plt.figure(figsize=(10,2))\n",
"plt.boxplot(df['Height'].ffill(), vert=False, showmeans=True)\n",
"plt.boxplot(df['Height'].ffill(), orientation='horizontal', showmeans=True)\n",
"plt.grid(color='gray', linestyle='dotted')\n",
"plt.tight_layout()\n",
"plt.show()"
@ -146,7 +146,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我哋亦可以對數據集中嘅子集製作箱形圖,例如按球員角色分組。\n"
"我哋都可以將數據集嘅子集作箱形圖,例如按球員角色分組。\n"
]
},
{
@ -165,9 +165,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **注意**:這個圖表表明,平均而言,一壘手的身高較二壘手的身高高。稍後我們會學習如何更正式地檢驗這個假設,以及如何證明我們的數據在統計上顯著支持這一點。 \n",
"> <strong>注意</strong>:此圖表顯示,一壘手的平均身高比二壘手的身高高。稍後我們會學習如何更正式地檢驗此假設,以及如何證明我們的數據在統計上具有顯著性。 \n",
"\n",
"年齡、身高和體重都是連續隨機變數。你認為它們的分佈是什麼?一個好方法是繪製值的直方圖: \n"
"年齡、身高和體重都是連續隨機變數。你認為它們的分佈是如何?一個好的方法是繪製數值的直方圖來找出答案: \n"
]
},
{
@ -188,9 +188,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 態分佈\n",
"## 態分佈\n",
"\n",
"讓我們創建一個人工重量樣本,該樣本遵循與我們的真實數據具有相同均值和方差的常態分佈\n"
"讓我們創建一個符合正態分佈的人工權重樣本,其均值和變異數與我們的真實數據相同\n"
]
},
{
@ -231,7 +231,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"由於現實生活中大多數數值呈常態分佈,因此我們不應使用均勻隨機數生成器來生成樣本數據。以下是如果我們嘗試使用均勻分佈(由 `np.random.rand` 生成)來生成體重數據時會發生的情況:\n"
"由於現實生活中大多數數值通常呈常態分佈,因此我們不應使用均勻隨機數生成器來生成樣本數據。以下是嘗試使用均勻分佈(由 `np.random.rand` 生成)來生成體重時會發生的情況:\n"
]
},
{
@ -251,9 +251,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 信區間\n",
"## 信區間\n",
"\n",
"現在讓我們計算棒球運動員體重及身高的置信區間。我們將使用[這個stackoverflow討論中的程式碼](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data)\n"
"而家我哋嚟計算棒球員嘅體重同身高嘅信心區間。 我哋會用[呢個stackoverflow討論](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data)嘅代碼\n"
]
},
{
@ -272,7 +272,7 @@
" return m, h\n",
"\n",
"for p in [0.85, 0.9, 0.95]:\n",
" m, h = mean_confidence_interval(df['Weight'].fillna(method='pad'),p)\n",
" m, h = mean_confidence_interval(df['Weight'].ffill(),p)\n",
" print(f\"p={p:.2f}, mean = {m:.2f} ± {h:.2f}\")"
]
},
@ -282,7 +282,7 @@
"source": [
"## 假設檢定\n",
"\n",
"讓我們探索我們棒球選手資料集中的不同角色:\n"
"讓我們探索棒球選手數據集中不同的角色:\n"
]
},
{
@ -298,7 +298,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"讓我們測試一個假設,即一壘手的身高比二壘手高。最簡單的方法是檢驗置信區間:\n"
"讓我們檢驗一下第一壘手是否比二壘手高的假設。最簡單的方法是檢驗信賴區間:\n"
]
},
{
@ -317,9 +317,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我哋可以見到啲區間冇重疊。\n",
"我們可以看到區間並沒有重疊。\n",
"\n",
"一個統計上更正確嘅方法去證明呢個假設係用**Student t檢定**\n"
"一個在統計上更正確證明假設的方法是使用 **Student t檢定**\n"
]
},
{
@ -338,18 +338,18 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"`ttest_ind` 函返回的兩個值是:\n",
"* p 值可被視為兩個分佈具有相同平均值的機率。在我們的案例中,該值非常低,表示有強烈證據支持一壘手較高。\n",
"* t 值是標準化平均差的中間值,用於 t 檢定,並且會與給定信心水準的閾值進行比較。\n"
"`ttest_ind` 函數所返回的兩個值是:\n",
"* p 值可被視為兩個分佈具有相同平均值的機率。在我們的例子中,這個值非常低,意味著有強烈的證據支持一壘手較高。\n",
"* t 值是標準化平均差的中間值,該值被用於 t 檢驗,並與給定置信值的閾值進行比較。\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 模擬常態分佈與中心極限定理\n",
"## 使用中心極限定理模擬常態分佈\n",
"\n",
"Python 的偽隨機生成器設計成給我們一個均勻分佈。如果我們想要建立一個常態分佈的生成器,可以使用中心極限定理。要取得常態分佈的值,我們只需計算均勻生成樣本的平均值。\n"
"Python 中的偽隨機生成器設計是給我們一個均勻分佈。如果我們想要創建一個常態分佈的生成器,我們可以使用中心極限定理。要獲得一個常態分佈的值,我們只需計算一組均勻生成樣本的平均值。\n"
]
},
{
@ -375,7 +375,7 @@
"source": [
"## 相關性與邪惡棒球公司\n",
"\n",
"相關性讓我們能夠找到數據序列之間的關係。在我們的玩具範例中,假設有一家邪惡的棒球公司根據球員的身高支付薪水——球員越高,薪水越多。假設有一個基本薪資為$1000並根據身高額外獎勵$0到$100。我們將採用MLB的真實球員並計算他們的虛擬薪水\n"
"相關性讓我們能找到資料序列之間的關係。在我們的玩具示例中,假設有一間邪惡的棒球公司,根據球員的身高支付他們的薪水——球員越高,獲得的錢越多。假設有一個基本薪資是$1000還有一個根據身高介乎$0到$100的額外獎金。我們將取美國職棒大聯盟MLB的真實球員資料計算他們的虛構薪資\n"
]
},
{
@ -384,7 +384,7 @@
"metadata": {},
"outputs": [],
"source": [
"heights = df['Height'].fillna(method='pad')\n",
"heights = df['Height'].ffill()\n",
"salaries = 1000+(heights-heights.min())/(heights.max()-heights.mean())*100\n",
"print(list(zip(heights, salaries))[:10])"
]
@ -393,7 +393,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"現在讓我們計算這些序列的協方差和相關係數。`np.cov` 將會給我們所謂的**協方差矩陣**,這是協方差對多個變量的擴展。協方差矩陣 $M$ 的元素 $M_{ij}$ 是輸入變量 $X_i$ 和 $X_j$ 之間的協方差,而對角線上的值 $M_{ii}$ 是 $X_{i}$ 的變異數。類似地,`np.corrcoef` 將會給我們**相關矩陣**。\n"
"現在讓我們計算這些序列的協方差和相關性。`np.cov` 會給我們所謂的<strong>協方差矩陣</strong>,這是多變量協方差的擴展。協方差矩陣 $M$ 的元素 $M_{ij}$ 是輸入變量 $X_i$ 和 $X_j$ 之間的相關性,而對角線上的值 $M_{ii}$ 則是 $X_i$ 的變異數。同樣地,`np.corrcoef` 會給我們<strong>相關係數矩陣</strong>。\n"
]
},
{
@ -411,7 +411,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"相關係數等於1表示兩個變數之間存在強烈的**線性關係**。我們可以通過繪製一個值與另一個值的圖形來直觀地看到這種線性關係:\n"
"相關係數等於 1 意味著兩個變量之間存在強烈的 <strong>線性關係</strong>。我們可以通過將一個值與另一個值繪圖來直觀地看到線性關係:\n"
]
},
{
@ -430,7 +430,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"讓我們看看如果關係不是線性會發生什麼。假設我們的公司決定隱藏身高和薪水之間明顯的線性依賴,並在公式中引入一些非線性,如 `sin`\n"
"我們來看看如果關係不是線性的結果會如何。假設我們的公司決定隱藏身高與薪水之間明顯的線性依賴關係,並在公式中引入了一些非線性成分,例如 `sin` \n"
]
},
{
@ -447,7 +447,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"在這種情況下,相關性稍微小一些,但仍然相當高。現在,為了使關係更不明顯,我們可能想通過向薪水中加入一些隨機變量來增加額外的隨機性。讓我們看看會發生什麼:\n"
"在這種情況下,相關性稍微小一點,但仍然相當高。現在,為了讓關係看起來更不明顯,我們或許想透過加入一些隨機變數到薪水中,增加額外的隨機性。讓我們來看看會發生什麼:\n"
]
},
{
@ -476,9 +476,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> 你能猜到為什麼點會排成這樣的垂直線嗎?\n",
"> 你能猜出為什麼這些點會像這樣排列成垂直線嗎?\n",
"\n",
"我們已經觀察到像薪水這種人工設計的概念與觀察變量*身高*之間的相關性。現在讓我們也看看兩個觀察變量,比如身高和體重,是否也存在相關性:\n"
"我們已經觀察到像薪水這類人為設計的概念和觀察變量 <em>身高</em> 之間的相關性。現在讓我們也看看兩個觀察變量,例如身高和體重,是否也有相關性:\n"
]
},
{
@ -494,11 +494,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"不幸的是,我們沒有得到任何結果——只有一些奇怪的 `nan` 值。這是因為我們序列中的一些值未定義,表示為 `nan`,這導致運算結果也未定義。從矩陣中我們可以看到,`Weight` 是有問題的欄位,因為已經計算了 `Height` 值之間的自相關。\n",
"不幸地,我們沒有取得任何結果——只有一些奇怪的 `nan` 值。這是因為我們的系列中有些值是未定義的,用 `nan` 表示,這導致運算結果也變成未定義。從矩陣中我們可以看到 `Weight` 是有問題的欄位,因為已經計算了 `Height` 值之間的自相關。\n",
"\n",
"> 此範例顯示了**資料準備**和**清理**的重要性。沒有適當的資料,我們無法計算任何東西。\n",
"> 這個例子顯示了<strong>資料準備</strong>和<strong>清理</strong>的重要性。沒有適當的資料,我們無法計算任何東西。\n",
"\n",
"讓我們使用 `fillna` 方法來填補缺失值,並計算相關性:\n"
"讓我們使用 `fillna` 方法填充缺失值,並計算相關性:\n"
]
},
{
@ -507,14 +507,14 @@
"metadata": {},
"outputs": [],
"source": [
"np.corrcoef(df['Height'].fillna(method='pad'), df['Weight'])"
"np.corrcoef(df['Height'].ffill(), df['Weight'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"確實存在相關性,但沒有我們人工示例中的那麼強烈。事實上,如果我們觀察一個數值與另一個數值的散點圖,這種關係會不那麼明顯\n"
"確實存在一個關聯,但並不像我們的人為範例中那麼強烈。事實上,如果我們看一下其中一個值對另一個值的散點圖,這種關係會明顯得少得多\n"
]
},
{
@ -535,16 +535,16 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Conclusion\n",
"## 結論\n",
"\n",
"在本筆記本中,我們學會了如何對資料進行基本操作以計算統計函數。我們現在知道如何使用完善的數學和統計工具來驗證某些假設,以及如何根據資料樣本計算任意變數的信賴區間。\n"
"在這個筆記本中,我們學會了如何對數據執行基本操作來計算統計函數。我們現在知道如何使用健全的數學和統計工具來驗證一些假設,以及如何根據數據樣本計算任意變量的信賴區間。\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明**\n本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們努力確保準確性,但請注意自動翻譯可能包含錯誤或不準確之處。請以原文文件為權威資料來源。對於重要資訊,建議採用專業人工翻譯。對於因使用此翻譯而引起的任何誤解或錯誤詮釋,我們概不負責。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明**\n本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議尋求專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或曲解承擔責任。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -568,12 +568,6 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
},
"coopTranslator": {
"original_hash": "0f899e3c5019f948e7c787b22f3b2304",
"translation_date": "2026-01-16T10:08:43+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "mo"
}
},
"nbformat": 4,

@ -4,11 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# COVID-19 疫情估\n",
"# COVID-19 疫情估\n",
"\n",
"## 載入數據\n",
"\n",
"我們將使用由[約翰·霍普金斯大學](https://jhu.edu/)的[系統科學與工程中心](https://systems.jhu.edu/)CSSE提供的COVID-19感染者數據。數據集可在[這個GitHub庫](https://github.com/CSSEGISandData/COVID-19)中獲取。\n"
"我們會使用由[約翰霍普金斯大學](https://jhu.edu/)的[系統科學與工程中心](https://systems.jhu.edu/)CSSE提供的COVID-19感染者數據。數據集可在[這個 GitHub庫](https://github.com/CSSEGISandData/COVID-19)取。\n"
]
},
{
@ -27,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我們可以使用 `pd.read_csv` 直接從 GitHub 載入最新資料。如果由於某些原因資料無法取得,你也可以使用本地 `data` 資料夾中的副本——只需取消註解下方定義 `base_url` 的那行即可:\n"
"我們可以使用 `pd.read_csv` 直接從 GitHub 載入最新的數據。如果因某種原因數據無法取得,你也可以使用本地 `data` 資料夾中可用的備份 — 只需取消註解下面定義 `base_url` 的那一行: \n"
]
},
{
@ -265,7 +265,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我們可以看到表格的每一行定義了每個國家和/或省份的感染人數,而列則對應日期。類似的表格可以用於加載其他數據,如康復人數和死亡人數。\n"
"我們可以看到表格的每一行定義了每個國家和/或省份的感染人數,而欄位則對應日期。其他資料也可以載入類似的表格,例如康復人數和死亡人數。\n"
]
},
{
@ -284,7 +284,7 @@
"source": [
"## 理解數據\n",
"\n",
"從上表中,省份欄位的作用尚不清楚。讓我們來看一下 `Province/State` 欄中存在的不同值:\n"
"從上表中看,「省份」欄位的角色不太明確。讓我們看看 `Province/State` 欄位中出現的不同值:\n"
]
},
{
@ -322,7 +322,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"從名稱我們可以推斷,像澳洲和中國這些國家有更詳細的省份分類。讓我們找找中國的資料來看看例子\n"
"從這些名稱中,我們可以推斷出像澳洲和中國這樣的國家有更詳細的省份劃分。讓我們尋找中國的相關資訊來看看範例\n"
]
},
{
@ -1321,9 +1321,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 預處理數據\n",
"## 預處理數據 \n",
"\n",
"我們不打算將國家再劃分為更細的轄區,因此我們會先剔除這種細分,並將所有轄區的資訊合併起來,以獲得整個國家的資料。這可以使用 `groupby` 來完成:\n"
"我們不想將國家細分到更小的地區,因此我們會先去除這種細分,然後將所有地區的資料加起來,以取得整個國家的資訊。這可以使用 `groupby` 完成:\n"
]
},
{
@ -1578,7 +1578,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"你可以看到,由於使用了 `groupby`,所有的數據框現在都以國家/地區作為索引。因此,我們可以使用 `.loc` 來訪問特定國家的數據|\n"
"你可以看到,由於使用了 `groupby`,所有的資料框現在都是以國家/地區作為索引。因此,我們可以使用 `.loc` 來存取特定國家的資料|\n"
]
},
{
@ -1607,7 +1607,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **注意** 我們如何使用 `[3:]` 來刪除包含非日期元數據(省/州和地理位置欄)的序列的前三個元素。我們也可以全部刪除那三個欄位:\n"
"> <strong>注意</strong> 我們如何使用 `[3:]` 來移除包含非日期元資料(省份/州和地理位置欄)的序列的前三個元素。我們也可以直接刪除那三個欄位:\n"
]
},
{
@ -1627,7 +1627,7 @@
"source": [
"## 調查數據\n",
"\n",
"現在讓我們轉而調查一個特定國家。讓我們創建一個包含以日期為索引的感染數據的框架\n"
"現在讓我們轉去調查一個特定國家。讓我們建立一個框架,包含按日期索引的感染數據\n"
]
},
{
@ -1793,7 +1793,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"現在讓我們計算每天新感染的人數。這將使我們能看到疫情進展的速度。最簡單的方法是使用 `diff`\n"
"現在讓我們計算每天的新感染人數。這將讓我們看到疫情進展的速度。最簡單的方法是使用 `diff`\n"
]
},
{
@ -1823,7 +1823,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我們可以看到數據有很大的波動。讓我們仔細看看其中一個月份:\n"
"我們可以看到數據有很大的波動。讓我們仔細看看其中一個月份:\n"
]
},
{
@ -1852,7 +1852,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"數據顯然每週都有波動。因為我們想要能夠看到趨勢,所以透過計算移動平均來平滑曲線是合理的(即對每一天,我們將計算前幾天的平均值)\n"
"數據明顯具有每週波動。因為我們想觀察趨勢,所以透過計算移動平均(即對每一天計算前幾天的平均值)來平滑曲線是有意義的\n"
]
},
{
@ -1882,7 +1882,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"為了能夠比較多個國家,我們可能想要考慮該國的人口,並比較感染者佔該國人口的百分比。為了取得該國的人口數,我們先載入國家數據集:\n"
"為了能夠比較多個國家,我們可能想要考慮該國的人口,並比較感染者佔該國人口的百分比。為了取得國家的人口資料,讓我們載入國家資料集:\n"
]
},
{
@ -2153,7 +2153,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"因為這個數據集包含了國家和省份的資訊,要計算整個國家的總人口,我們需要稍微聰明一點:\n"
"因為這個數據集包含了國家和省份的資訊,所以要獲取整個國家的人口,我們需要稍微聰明一點: \n"
]
},
{
@ -2261,14 +2261,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## 計算 $R_t$\n",
"\n",
"要了解疾病的傳染性,我們會觀察**基本傳染數** $R_0$,它表示一個感染者會進一步感染多少人。當 $R_0$ 大於 1 時,疫情很可能會擴散。\n",
"為了了解疾病的傳染力,我們觀察<strong>基本傳播數</strong> $R_0$,它表示一名感染者會進一步感染的人數。當 $R_0$ 大於 1 時,疫情很可能會擴散。\n",
"\n",
"$R_0$ 是疾病本身的特性,考慮人們可能採取的一些防護措施來減緩疫情。在疫情進展期間,我們可以估計任意時間 $t$ 的傳染數 $R_t$。已證明這個數字可以透過取 8 天的視窗,計算 $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"$R_0$ 是疾病本身的特性,並未考慮人們可能採取的一些防護措施來減緩疫情。在疫情進展期間,我們可以估計任意時間 $t$ 的傳播數 $R_t$。研究顯示,此數值可以通過取 8 天的移動視窗近似估算,計算方式為 $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"其中 $I_t$ 是第 $t$ 天新感染者的數目。\n",
"\n",
"讓我們為我們的疫情數據計算 $R_t$。為此,我們將取連續的 8 個 `ninfected` 數值視窗,並應用該函數來計算上述比率\n"
"現在讓我們對疫情數據計算 $R_t$。為此,我們將採用 8 天的 `ninfected` 滾動視窗,並應用上述計算比率的函數\n"
]
},
{
@ -2298,9 +2299,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"您可以看到圖表中有一些間隙。這些間隙可能是由於數據集中存在 `NaN` 或 `inf` 值所造成。`inf` 可能是因除以 0 而產生,而 `NaN` 則可以表示缺失數據,或者沒有可用數據來計算結果(例如在我們資料框的最開始,尚未有寬度為 8 的移動視窗可用)。為了使圖表更美觀,我們需要使用 `replace` 和 `fillna` 函數來填補這些值。\n",
"你可以看到圖表中有一些間隙。這些間隙可能是由於資料集中的 `NaN` 或 `inf` 值引起的。`inf` 可能是由於除以 0 所致,而 `NaN` 則可能表示缺少資料,或無法計算結果(例如在我們的資料框架一開始,尚未有寬度為 8 的滾動視窗可用)。為了讓圖表更美觀,我們需要使用 `replace` 和 `fillna` 函數來填充這些值。\n",
"\n",
"讓我們進一步觀察疫情初期。我們也會限制 y 軸的數值只顯示 6 以下的數值,以便更好地觀察,並繪製一條水平線在 1。\n"
"讓我們進一步看看疫情初期。我們還將限制 y 軸的值,只顯示低於 6 的值,以便更清楚地觀察,並在 1 處繪製水平線。\n"
]
},
{
@ -2331,7 +2332,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"另一個關於大流行病的有趣指標是 **導數**,或稱為新增病例的 **每日差異**。它讓我們能夠清楚地看到大流行病何時在增加或減少。\n"
"大流行的另一個有趣指標是<strong>導數</strong>,或稱為新增病例的<strong>每日差異</strong>。它讓我們能清楚地看到大流行何時在上升或下降。\n"
]
},
{
@ -2360,7 +2361,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"鑑於報告所致的數據有大量波動,利用移動平均來平滑曲線以獲得整體情況是合理的。讓我們再次關注疫情的最初幾個月:\n"
"鑑於報告導致數據中存在大量波動,因此透過運行移動平均來平滑曲線以獲得整體情況是合理的。讓我們再次關注大流行初期的幾個月:\n"
]
},
{
@ -2390,26 +2391,27 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## 挑戰\n",
"\n",
"現在是時候讓你多玩玩程式碼和數據了!這裡有一些建議讓你試試看\n",
"* 觀察疫情在不同國家的蔓延情況。\n",
"* 繪製多國的 $R_t$ 圖表在同一張圖上比較,或是並排畫出多張圖表。\n",
"* 看看死亡人數和康復人數與感染病例數的相關性。\n",
"* 嘗試找出一種典型疾病持續多久,方法是視覺上比較感染率和死亡率並尋找異常現象。你可能需要查看不同國家才能發現這點。\n",
"* 計算致死率以及它隨時間的變化。你可能要考慮疾病持續的天數,在計算前將其中一個時間序列做位移。\n"
"現在是時候讓你對代碼和數據進行更多的操作了!以下是一些你可以嘗試的建議\n",
"* 查看不同國家疫情的擴散情況。\n",
"* 在一張圖上繪製多個國家的 $R_t$ 圖表進行比較,或者並排製作多張圖表。\n",
"* 觀察死亡人數和康復人數與感染病例數的關係。\n",
"* 嘗試通過視覺上比較感染率和死亡率並尋找異常,來了解典型疾病持續多久。你可能需要查看不同國家才能得出結論。\n",
"* 計算致死率及其隨時間的變化。你可能需要考慮疾病持續的天數,在計算之前對一個時間序列進行平移。\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 參考文獻\n",
"## 參考資料\n",
"\n",
"您可以參考以下出版物中 COVID 疫情傳播的進一步研究:\n",
"* [COVID 疫情期間 Rt 估計的滑動 SIR 模型](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/),由 [Dmitry Soshnikov](http://soshnikov.com) 撰寫的部落格文章\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [全球 COVID-19 爆發的時間依賴性再生數估計](https://www.preprints.org/manuscript/202006.0289/v1)。*Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [上述論文的程式碼於 GitHub](https://github.com/shwars/SlidingSIR)\n"
"您可以參考以下出版物中有關 COVID 疫情傳播的進一步研究:\n",
"* [在 COVID 大流行期間用於 Rt 估計的滑動 SIR 模型](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/),由 [Dmitry Soshnikov](http://soshnikov.com) 撰寫的博客文章\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [全球 COVID-19 爆發的時間依賴性繁殖數估計](https://www.preprints.org/manuscript/202006.0289/v1)。*Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [上述論文的 GitHub 代碼](https://github.com/shwars/SlidingSIR)\n"
]
},
{
@ -2423,7 +2425,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明**\n本文件乃透過人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。儘管我們致力於確保準確性,請注意自動翻譯可能包含錯誤或不準確之處。原始文件以其母語版本為唯一權威來源。對於重要資訊,建議採用專業人工翻譯。我們對因使用此翻譯而引致的任何誤解或誤譯概不負責。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明**\n本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議尋求專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或曲解承擔責任。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],

@ -1,8 +1,8 @@
# 危險關係數據可視化項目
# 危險關係數據可視化專案
開始之前,請確保您的機器上已安裝並運行 NPM 和 Node。安裝依賴項npm install然後在本地運行項目npm run serve
要開始,您需要確保您的機器上安裝並運行 NPM 和 Node **>=20.0.0**。安裝依賴項npm install然後在本地運行專案npm run serve
## 項目設置
## 專案設定
```
npm install
```
@ -12,20 +12,22 @@ npm install
npm run serve
```
### 編譯並壓縮以進行生產環境
### 編譯並壓縮以進行生產
```
npm run build
```
### 檢查並修復文件
### Lint 並修正檔案
```
npm run lint
```
### 自定義配置
請參閱 [配置參考](https://cli.vuejs.org/config/)。
### 自訂設
請參閱 [Configuration Reference](https://cli.vuejs.org/config/)。
---
**免責聲明**
本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議尋求專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或曲解承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,31 +1,33 @@
# 危險關係數據可視化項目
# 危險關係資料視覺化專案
要開始使用,請確保您的機器上已安裝 NPM 和 Node。安裝依賴項npm install然後在本地運行項目npm run serve
要開始使用,您需要確保您的機器上運行的是 NPM 和 Node **>=20.0.0**。安裝相依套件npm install然後在本機執行專案npm run serve
## 項目設置
## 專案設定
```
npm install
```
### 編譯並熱重載以進行開發
### 開發時編譯及熱重載
```
npm run serve
```
### 編譯並壓縮以進行生產環境
### 生產環境編譯及壓縮
```
npm run build
```
### 檢查並修復文件
### Lint 檢查及修正檔案
```
npm run lint
```
### 自定義配置
### 自配置
請參閱 [配置參考](https://cli.vuejs.org/config/)。
---
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議尋求專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或曲解承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -12,8 +12,8 @@
"language_code": "zh-TW"
},
"1-Introduction/01-defining-data-science/notebook.ipynb": {
"original_hash": "8f5eb7b3f7cc89e6d98fb32e1de65dec",
"translation_date": "2026-02-28T09:03:19+00:00",
"original_hash": "8eb07e3d899aaba7ea9c9ec9b5aa2850",
"translation_date": "2026-07-17T21:39:38+00:00",
"source_file": "1-Introduction/01-defining-data-science/notebook.ipynb",
"language_code": "zh-TW"
},
@ -42,8 +42,8 @@
"language_code": "zh-TW"
},
"1-Introduction/03-defining-data/README.md": {
"original_hash": "12339119c0165da569a93ddba05f9339",
"translation_date": "2025-09-05T11:56:40+00:00",
"original_hash": "7217c6f9eb464d4ff4bae6c036ab53cb",
"translation_date": "2026-07-17T21:42:10+00:00",
"source_file": "1-Introduction/03-defining-data/README.md",
"language_code": "zh-TW"
},
@ -65,6 +65,12 @@
"source_file": "1-Introduction/04-stats-and-probability/assignment.md",
"language_code": "zh-TW"
},
"1-Introduction/04-stats-and-probability/notebook.ipynb": {
"original_hash": "0c77e104b29c723287bf11b773fcc5d5",
"translation_date": "2026-07-17T21:40:41+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "zh-TW"
},
"1-Introduction/README.md": {
"original_hash": "696a8474a01054281704cbfb09148949",
"translation_date": "2025-08-25T16:38:06+00:00",
@ -108,8 +114,8 @@
"language_code": "zh-TW"
},
"2-Working-With-Data/07-python/notebook-covidspread.ipynb": {
"original_hash": "6335cccba01dc6ad7b15aba7a8c73f38",
"translation_date": "2026-02-28T09:04:37+00:00",
"original_hash": "da97f98781c7cd271063f605fe8d71d0",
"translation_date": "2026-07-17T21:39:02+00:00",
"source_file": "2-Working-With-Data/07-python/notebook-covidspread.ipynb",
"language_code": "zh-TW"
},
@ -192,14 +198,14 @@
"language_code": "zh-TW"
},
"3-Data-Visualization/13-meaningful-visualizations/solution/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-25T18:04:06+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T21:42:18+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/solution/README.md",
"language_code": "zh-TW"
},
"3-Data-Visualization/13-meaningful-visualizations/starter/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-25T18:03:27+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T21:42:14+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/starter/README.md",
"language_code": "zh-TW"
},

File diff suppressed because one or more lines are too long

@ -1,70 +1,71 @@
# 定義資料
|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)|
|![ Sketchnote [(@sketchthedocs)](https://sketchthedocs.dev) 製作 ](../../sketchnotes/03-DefiningData.png)|
|:---:|
|定義資料 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ |
|定義資料 - _Sketchnote 由 [@nitya](https://twitter.com/nitya) 製作_ |
資料是用來進行探索和支持明智決策的事實、資訊、觀察和測量。一個資料點是資料集中的單一資料單位,而資料集則是由多個資料點組成的集合。資料集可能有不同的格式和結構,通常取決於其來源或資料的來源。例如,一家公司的月度收益可能以電子表格的形式呈現,而智能手錶的每小時心率資料可能以 [JSON](https://stackoverflow.com/a/383699) 格式呈現。資料科學家通常需要處理資料集中不同類型的資料。
資料是用於發現新知與支持明智決策的事實、資訊、觀察與測量值。資料點是資料集內單一單位的資料,而資料集則是由數個資料點組成。資料集可呈現不同的格式和結構,通常依據其來源,也就是資料來自哪裡而定。例如,一間公司的每月盈餘可能儲存在試算表中,但智慧手錶的每小時心率資料可能是以 [JSON](https://stackoverflow.com/a/383699) 格式呈現。資料科學家經常會在同一資料集中處理不同類型的資料。
本課程重點在於根據資料的特徵和來源來識別和分類資料。
本課程聚焦於依據資料特性及來源辨識與分類資料。
## [課前測驗](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## 資料的描述方式
### 原始資料
原始資料是指來自其來源的初始狀態,尚未被分析或整理的資料。為了理解資料集中的情況,必須將其整理成一種人類和技術都能理解的格式。資料集的結構描述了其如何被組織,可以分為結構化、非結構化和半結構化。這些結構類型會因來源而異,但最終都屬於這三類之一
原始資料是來自其來源的初始狀態資料,尚未被分析或組織。為了理解資料集的內容,需要將其整理成讓人類以及用來進一步分析的技術能理解的格式。資料集的結構描述其組織方式,且可分類為結構化、非結構化及半結構化。這些結構類型會依據來源有所不同,但最終皆隸屬上述三種分類
### 量資料
定量資料是資料集中以數字形式呈現的觀察值通常可以進行分析、測量並用於數學運算。一些定量資料的例子包括一個國家的人口、一個人的身高或一家公司季度收益。通過進一步分析定量資料可以用來發現空氣品質指數AQI的季節性趨勢或估算典型工作日的高峰交通概率。
### 量資料
量化資料是在資料集中屬於數值的觀察值通常可以被分析、測量並以數學方式使用。量化資料的例子包括一個國家的人口、一個人的身高或一間公司的季報盈餘。經過進一步分析後量化資料可用來發現空氣品質指數AQI的季節性趨勢或估計典型工作日的尖峰時段交通機率。
### 性資料
定性資料,也稱為分類資料,是無法像定量資料那樣客觀測量的資料。它通常是各種格式的主觀資料,用來捕捉某物的品質,例如產品或流程。有時,定性資料是數字形式,但通常不會用於數學運算,例如電話號碼或時間戳。一些定性資料的例子包括:影片評論、汽車的品牌和型號或你最親密朋友的最喜歡的顏色。定性資料可以用來了解消費者最喜歡哪些產品或識別求職申請中流行的關鍵字。
### 性資料
質性資料又稱為類別資料,是無法像量化資料那樣被客觀測量的資料。它通常是各種主觀資料形式,捕捉某物的品質,例如產品或流程。有時質性資料是數值型態但通常不會用數學方式操作,如電話號碼或時間戳。質性資料的例子包括:影片留言、汽車的品牌與型號,或你最親近朋友的最愛顏色。質性資料可用來了解消費者最喜愛的產品,或辨識求職履歷中的熱門關鍵字。
### 結構化資料
結構化資料是以行和列的形式組織的資料,其中每一行都具有相同的列集合。列代表特定類型的值,並以描述該值代表內容的名稱來識別,而行則包含實際的值。列通常會有一組特定的規則或限制,以確保值準確地代表該列。例如,想像一個客戶的電子表格,其中每一行都必須有一個電話號碼,且電話號碼不能包含字母字符。可能會對電話號碼列施加規則,以確保它永遠不會是空的,並且只包含數字。
結構化資料以列與欄組織,每列擁有相同的欄位集合。欄位代表特定類型的數值,並以名稱辨識欄位代表的內容,而列則包含實際數值。欄位常有特定規則或限制,以確保數值能準確代表欄位內容。例如,假設一份客戶試算表中,每列必須有電話號碼,且電話號碼內不含英文字母。電話號碼欄位可能會有規則,確保其不為空值且只包含數字。
結構化資料的一個優勢是它可以以某種方式組織,使其可以與其他結構化資料相關聯。然而,由於資料被設計成以特定方式組織,對其整體結構進行更改可能需要付出大量努力。例如,向客戶電子表格中添加一個不能為空的電子郵件列,意味著需要找出如何將這些值添加到資料集中現有的客戶行
結構化資料的優點是能以某種方式組織,使其可以與其他結構化資料建立關聯。然而,因為資料設計成特定組織形式,變更整體結構通常需要大量努力。例如,想在客戶試算表新增非空的電子郵件欄,必須想辦法為現有每列客戶填入其電子郵件資料
結構化資料的例子:電子表格、關聯式資料庫、電話號碼、銀行對帳單
結構化資料範例:試算表、關聯式資料庫、電話號碼、銀行對帳單
### 非結構化資料
非結構化資料通常無法分類為行或列,並且不包含格式或規則集。由於非結構化資料對其結構的限制較少,因此相比於結構化資料集更容易添加新資訊。如果一個每兩分鐘捕捉一次氣壓資料的感測器收到更新,現在可以測量和記錄溫度,那麼如果資料是非結構化的,就不需要更改現有資料。然而,這可能會使分析或調查這類資料的過程變得更耗時。例如,一位科學家希望從感測器的資料中找到上個月的平均溫度,但發現感測器在某些記錄中用 "e" 表示它壞了,而不是典型的數字,這意味著資料不完整。
非結構化資料通常無法分類成列或欄且沒有固定格式或規則。因為非結構化資料結構限制較少相較於結構化資料更容易新增資訊。例如若一個每兩分鐘測量氣壓的感測器更新為能測量與記錄溫度若資料為非結構化不需修改既有資料。然而這可能導致分析此類資料時花費更多時間。譬如一位科學家想計算前一個月感測器記錄的平均溫度卻發現某些記錄數據中用字母「e」標記感測器故障而非典型的數字表示資料不完整。
非結構化資料的例子:文字檔案、簡訊、影片檔案
非結構化資料範例:文字檔案、簡訊、影片檔案
### 半結構化資料
半結構化資料具有結構化和非結構化資料的特徵。它通常不符合行和列的格式,但以某種被認為是結構化的方式組織,並可能遵循固定的格式或規則集。結構會因來源而異,例如從明確定義的層次結構到更靈活的方式,允許輕鬆整合新資訊。中繼資料是幫助決定資料如何組織和存儲的指標,並根據資料類型有不同的名稱。一些常見的中繼資料名稱包括標籤、元素、實體和屬性。例如,一封典型的電子郵件訊息會有主題、正文和一組收件人,可以根據發送者或發送時間進行組織。
半結構化資料兼具結構化與非結構化資料的特點。它通常不遵循列與欄的格式但依然以某種被視為結構化的方式組織可能遵循固定格式或規則。其結構會依據來源不同而異從明確階層到更具彈性方便整合新資訊。元資料是協助決定資料如何組織與儲存的指標根據資料類型有各種名稱常見有標籤、元素、實體與屬性。例如典型email訊息會有主旨、內容與收件者群且可根據寄件人或寄送時間組織。
半結構化資料的例子HTML、CSV 檔案、JavaScript Object Notation (JSON)
半結構化資料範例HTML、CSV 檔案、JavaScript 物件表示法 (JSON)
## 資料來源
資料來源是資料生成的初始位置,或其“存在”的地方,會根據資料的收集方式和時間而有所不同。由使用者生成的資料被稱為原始資料,而二手資料則來自於為一般用途收集資料的來源。例如,一群科學家在雨林中收集觀察資料被視為原始資料,而如果他們決定與其他科學家分享,對於使用這些資料的人來說則被視為二手資料。
資料來源是資料產生的初始位置,也就是資料「所在的位置」,會依資料如何及何時被收集而異。由使用者產生的資料稱為原始資料,次級資料則是指由其他來源收集供一般使用的資料。例如,一群科學家在雨林收集觀察資料則被視為原始資料;若他們決定與其他科學家分享,對那些使用者而言即為次級資料。
資料庫是常見的資料來源,依賴資料庫管理系統來托管和維護資料,使用者可以使用稱為查詢的命令來探索資料。作為資料來源的檔案可以是音訊、影像和影片檔案,也可以是像 Excel 這樣的電子表格。網路來源是托管資料的常見位置資料庫和檔案都可以在其中找到。應用程式介面API允許程式設計師通過網路創建與外部使用者共享資料的方式而網頁爬取則是從網頁中提取資料的過程。[《資料操作》課程](../../../../../../../../../2-Working-With-Data) 將重點介紹如何使用各種資料來源。
資料庫是常見資料來源,依賴資料庫管理系統來管理及維護資料,使用者用稱為查詢的指令來探索資料。檔案作為資料來源可能包括音訊、影像和影片檔案,以及像 Excel 這類的試算表。網際網路是一個常見的資料寄存位置裡面包含資料庫與檔案。應用程式介面API允許程式設計師透過網路與外部使用者共享資料而網路爬蟲則是從網頁擷取資料的過程。[與資料共事](../../../../../../../../../2-Working-With-Data)課程講授如何使用各種資料來源。
## 結論
在本課程中,我們學到了:
本課程學習了:
- 資料的定義
- 資料的描述方式
- 資料的分類和歸類方式
- 資料的來源
- 什麼是資料
- 資料如何被描述
- 資料如何被分類與歸類
- 資料可以從哪裡取得
## 🚀 挑戰
Kaggle 是一個開放資料集的絕佳來源。使用 [資料集搜尋工具](https://www.kaggle.com/datasets) 找到一些有趣的資料集,並根據以下標準分類 3-5 個資料集:
Kaggle 是極佳的公開資料集來源。使用 [資料集搜尋工具](https://www.kaggle.com/datasets) 找尋有趣的資料集,並依照以下條件分類 3-5 個資料集:
- 資料是定量還是定性?
- 資料是結構化、非結構化還是半結構化?
- 該資料是量化還是質性?
- 資料是結構化、非結構化還是半結構化?
## [課後測驗](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## 回顧與自學
- Microsoft Learn 單元 [分類你的資料](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) 詳細介紹了結構化、半結構化和非結構化資料。
## 複習與自學
- 微軟學習單元 [識別資料格式](https://learn.microsoft.com/en-us/training/modules/explore-core-data-concepts/2-data-formats?pivots=text) 詳細解析結構化、半結構化及非結構化資料。
## 作業
@ -72,5 +73,7 @@ Kaggle 是一個開放資料集的絕佳來源。使用 [資料集搜尋工具](
---
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
此文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們努力追求準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於關鍵資訊,建議採用專業人工翻譯。我們不對因使用此翻譯所產生的任何誤解或誤譯承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -4,8 +4,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Introduction to Probability and Statistics\n",
"在本筆記中,我們將試玩一些之前討論過的概念。許多機率與統計的概念都在 Python 的主要資料處理函式庫中得到很好的體現,例如 `numpy` 和 `pandas`。\n"
"# 機率與統計導論\n",
"在本筆記本中,我們將嘗試操作一些之前討論過的概念。許多機率與統計的概念在 Python 的主要資料處理庫中都有很好的呈現,例如 `numpy` 與 `pandas`。\n"
]
},
{
@ -25,7 +25,7 @@
"metadata": {},
"source": [
"## 隨機變數與分布\n",
"讓我們從 0 到 9 的均勻分布中抽取 30 個值的樣本。我們還將計算平均值和變異數。\n"
"讓我們從 0 到 9 的均勻分布中抽取 30 個樣本值。我們也會計算其平均數和變異數。\n"
]
},
{
@ -44,7 +44,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"要目視估計樣本中有多少不同的值,我們可以繪製**直方圖**\n"
"為了從視覺上估計樣本中有多少不同的值,我們可以繪製<strong>直方圖</strong>\n"
]
},
{
@ -61,9 +61,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 分析實數據\n",
"## 分析實數據\n",
"\n",
"平均值和變異數在分析真實世界的數據時非常重要。讓我們從 [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) 載入有關棒球選手的數據。\n"
"平均值和變異數在分析現實世界數據時非常重要。讓我們從 [SOCR MLB 身高/體重數據](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) 載入關於棒球選手的資料\n"
]
},
{
@ -80,9 +80,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> 我們這裡使用一個叫做 [**Pandas**](https://pandas.pydata.org/) 的套件來做資料分析。在這門課程的後面,我們會更深入討論 Pandas 以及在 Python 中操作資料的方法。\n",
"> 我們在這裡使用一個名為 [**Pandas**](https://pandas.pydata.org/) 的套件來進行資料分析。稍後在本課程中,我們會更詳細地介紹 Pandas 和在 Python 中操作資料的方法。\n",
"\n",
"讓我們計算年齡、身高和體重的平均值:\n"
"讓我們計算年齡、身高和體重的平均值:\n"
]
},
{
@ -98,7 +98,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"現在讓我們專注於身高,並計算標準差和變異數:\n"
"現在讓我們專注於身高,並計算標準差和變異數: \n"
]
},
{
@ -126,7 +126,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"除了平均值之外,也有必要查看中位數和四分位數。它們可以用 **盒鬍圖** 來視覺化:\n"
"除了平均數外,觀察中位數和四分位數也是有意義的。它們可以使用 <strong>箱形圖</strong> 來視覺化: \n"
]
},
{
@ -136,7 +136,7 @@
"outputs": [],
"source": [
"plt.figure(figsize=(10,2))\n",
"plt.boxplot(df['Height'].ffill(), vert=False, showmeans=True)\n",
"plt.boxplot(df['Height'].ffill(), orientation='horizontal', showmeans=True)\n",
"plt.grid(color='gray', linestyle='dotted')\n",
"plt.tight_layout()\n",
"plt.show()"
@ -146,7 +146,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我們也可以對資料集的子集製作箱型圖,例如依玩家角色分組。\n"
"我們也可以針對資料集的子集製作盒鬚圖,例如按玩家角色分組。 \n"
]
},
{
@ -165,9 +165,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **注意**:此圖表顯示,平均而言,一壘手的身高高於二壘手的身高。稍後我們將學習如何更正式地檢驗此假設,以及如何證明我們的資料在統計上具有顯著性。 \n",
"> <strong>注意</strong>:這個圖表顯示,平均來說,一壘手的身高比二壘手的身高還要高。接下來我們會學習如何更正式地檢驗這個假設,以及如何證明我們的資料在統計上具有顯著性以支持此論點。 \n",
"\n",
"年齡、身高和體重都是連續型隨機變數。你認為它們的分佈是什麼?一個不錯的方法是繪製數值的直方圖: \n"
"年齡、身高和體重都是連續隨機變數。你認為它們的分佈會是什麼樣子?了解的方法之一是繪製這些數值的直方圖: \n"
]
},
{
@ -188,9 +188,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 常態分\n",
"## 常態分\n",
"\n",
"讓我們建立一個符合常態分布的人工體重樣本,其平均數和變異數與我們的實際數據相同\n"
"讓我們建立一組符合常態分佈且具有與我們真實資料相同平均數和變異數的人工樣本\n"
]
},
{
@ -231,7 +231,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"由於現實生活中的大多數數值呈常態分佈,我們不應使用均勻隨機數生成器來產生樣本數據。以下是若嘗試使用均勻分布(由 `np.random.rand` 生成)來產生體重數據時的情況:\n"
"由於現實生活中大多數數值呈常態分佈,我們不應該使用均勻隨機數生成器來產生樣本資料。以下是如果我們嘗試使用均勻分布(由 `np.random.rand` 產生)生成體重時的情況:\n"
]
},
{
@ -253,7 +253,7 @@
"source": [
"## 信賴區間\n",
"\n",
"現在我們來計算棒球選手體重和身高的信賴區間。我們將使用[這個 stackoverflow 討論](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data)的程式碼:\n"
"現在讓我們計算棒球選手的體重和身高的信賴區間。我們將使用[來自此stackoverflow討論](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data)的程式碼:\n"
]
},
{
@ -272,7 +272,7 @@
" return m, h\n",
"\n",
"for p in [0.85, 0.9, 0.95]:\n",
" m, h = mean_confidence_interval(df['Weight'].fillna(method='pad'),p)\n",
" m, h = mean_confidence_interval(df['Weight'].ffill(),p)\n",
" print(f\"p={p:.2f}, mean = {m:.2f} ± {h:.2f}\")"
]
},
@ -282,7 +282,7 @@
"source": [
"## 假設檢定\n",
"\n",
"讓我們來探索我們的棒球選手資料集中不同的角色:\n"
"讓我們探索棒球球員資料集中不同的角色:\n"
]
},
{
@ -298,7 +298,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"讓我們來檢驗一個假設:一壘手比二壘手身高。最簡單的方法是檢驗信賴區間:\n"
"讓我們來檢驗一下「一壘手比二壘手高」的假設。最簡單的方法是檢驗信賴區間:\n"
]
},
{
@ -317,9 +317,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我們可以看到區間並未重疊。\n",
"我們可以看到這些區間並沒有重疊。\n",
"\n",
"一個在統計上更正確的證明方法是使用**Student t檢定**\n"
"一個統計上更正確的檢驗假設的方法是使用 **Student t 檢定**\n"
]
},
{
@ -338,18 +338,18 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"`ttest_ind` 函數回的兩個值是:\n",
"* p 值可以被視為兩個分布具有相同平均值的機率。在我們的例子中p 值非常低,這意味著有強烈的證據支持一壘手比較高。\n",
"* t 值是標準化平均差異的中間值,用於 t 檢定,並且會與給定信心水準的閾值進行比較。\n"
"`ttest_ind` 函數回的兩個值是:\n",
"* p 值可以被視為兩個分布具有相同平均值的機率。在我們的案例中p 值非常低,表示有強烈證據支持一壘手比較高。\n",
"* t 值是用於 t 檢定的正規化平均差異的中間值,會與給定信心水準的臨界值進行比較。\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 使用中心極限定理模擬常態分佈\n",
"## 利用中央極限定理模擬常態分布\n",
"\n",
"Python 中的偽隨機生成器是設計來產生均勻分佈的。如果我們想要創建一個常態分佈的生成器,我們可以使用中心極限定理。要得到一個常態分佈的值,我們只需計算一組均勻生成樣本的平均值。\n"
"Python 中的偽隨機產生器設計是給我們一個均勻分布。如果我們想建立一個常態分布的產生器,我們可以使用中央極限定理。要獲得常態分布的值,我們只需計算一組均勻分布樣本的平均值。\n"
]
},
{
@ -373,9 +373,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 相關性與邪惡棒球公司\n",
"## 相關性與邪惡棒球公司\n",
"\n",
"相關性讓我們能找到資料序列之間的關係。在我們的玩具範例中,假設有一家邪惡的棒球公司根據球員的身高支付薪水——球員身高越高拿到的錢就越多。假設有基本薪資1000美元以及根據身高額外支付0到100美元的獎金。我們將使用MLB的真實球員資料計算他們的假想薪水\n"
"相關性讓我們能找到資料序列之間的關係。在我們的玩具範例中,假設有一間邪惡的棒球公司根據球員的身高來支付薪水——球員身高越高得到的錢越多。假設基本薪資為1000美元並且根據身高額外給付0到100美元的獎金。我們將取用MLB的真實球員資料計算他們的假想薪資\n"
]
},
{
@ -384,7 +384,7 @@
"metadata": {},
"outputs": [],
"source": [
"heights = df['Height'].fillna(method='pad')\n",
"heights = df['Height'].ffill()\n",
"salaries = 1000+(heights-heights.min())/(heights.max()-heights.mean())*100\n",
"print(list(zip(heights, salaries))[:10])"
]
@ -393,7 +393,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"現在讓我們計算這些序列的共變異數與相關係數。`np.cov` 會給我們所謂的 **共變異數矩陣**,這是共變異數在多變量上的擴展。共變異數矩陣 $M$ 的元素 $M_{ij}$ 是輸入變量 $X_i$ 與 $X_j$ 之間的共變異數,而對角線上的值 $M_{ii}$ 則是 $X_i$ 的變異數。類似地,`np.corrcoef` 會給我們 **相關係數矩陣**。\n"
"現在讓我們計算這些序列的共變異數和相關係數。`np.cov` 會給我們所謂的<strong>共變異數矩陣</strong>,這是共變異數在多變量情況下的擴展。共變異數矩陣 $M$ 的元素 $M_{ij}$ 是輸入變數 $X_i$ 和 $X_j$ 之間的共變異數,而對角線上的值 $M_{ii}$ 是 $X_i$ 的變異數。同樣地,`np.corrcoef` 會給我們<strong>相關係數矩陣</strong>。\n"
]
},
{
@ -411,7 +411,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"相關係數等於1表示兩個變數之間存在強烈的**線性關係**。我們可以透過繪製一個變數相對於另一個變數的散點圖來直觀地觀察這種線性關係:\n"
"相關係數等於1表示兩個變數之間存在強烈的<strong>線性關係</strong>。我們可以透過將一個數值對另一個數值繪圖來直觀地看到線性關係:\n"
]
},
{
@ -430,7 +430,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"讓我們看看如果關係不是線性會發生什麼。假設我們的公司決定隱藏身高和薪資之間明顯的線性依賴關係,並在公式中引入一些非線性,比如 `sin`\n"
"讓我們看看如果關係不是線性會發生什麼。假設我們的公司決定隱藏身高和薪資之間明顯的線性依賴關係,並在公式中引入一些非線性,例如 `sin` \n"
]
},
{
@ -447,7 +447,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"在這種情況下,相關性略微降低,但仍然相當高。現在,為了讓這個關係不那麼明顯,我們可能想通過給薪水加入一些隨機變數來增加額外的隨機性。讓我們看看會發生什麼:\n"
"在這種情況下,相關性稍微小一點,但仍然相當高。現在,為了讓關係看起來不那麼明顯,我們可能想要透過在薪水中加入一些隨機變數來增加額外的隨機性。讓我們看看會發生什麼: \n"
]
},
{
@ -478,7 +478,7 @@
"source": [
"> 你能猜出為什麼這些點會排列成這樣的垂直線嗎?\n",
"\n",
"我們已經觀察到了像薪水這樣的人為設計概念與觀察變數*身高*之間的相關性。現在讓我們看看兩個觀察變數,例如身高和體重,是否也存在相關性:\n"
"我們已經觀察到了人為設計的概念如薪水與觀察到的變量<em>身高</em>之間的關聯性。讓我們再看看兩個觀察到的變量,比如身高和體重,是否也有相關性:\n"
]
},
{
@ -494,11 +494,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"不幸的是,我們沒有得到任何結果——只有一些奇怪的 `nan` 值。這是因為我們序列中的某些值是未定義的,以 `nan` 表示,導致運算結果也未定義。從矩陣中我們可以看到,`Weight` 是有問題的欄位,因為已經計算了 `Height` 值之間的自我相關。\n",
"不幸地,我們沒有得到任何結果——只有一些奇怪的 `nan` 值。這是因為我們的序列中有些值未定義,表示為 `nan`,這導致運算結果也未定義。從矩陣中可以看到 `Weight` 是有問題的欄位,因為已經計算了 `Height` 值之間的自我相關。\n",
"\n",
"> 這個範例顯示了**資料準備**與**清理**的重要性。沒有妥善的資料,我們無法計算任何東西。\n",
"> 此範例顯示了<strong>資料準備</strong>和<strong>清理</strong>的重要性。沒有適當的資料,我們無法計算任何東西。\n",
"\n",
"讓我們使用 `fillna` 方法填補缺失值,並計算相關性:\n"
"讓我們使用 `fillna` 方法填補缺失值,並計算相關性:\n"
]
},
{
@ -507,14 +507,14 @@
"metadata": {},
"outputs": [],
"source": [
"np.corrcoef(df['Height'].fillna(method='pad'), df['Weight'])"
"np.corrcoef(df['Height'].ffill(), df['Weight'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"確實存在相關性,但並不像我們的人工範例中那麼強烈。事實上,如果我們將一個值與另一個值繪製散點圖,關係會不那麼明顯:\n"
"確實存在相關性,但不像我們的人為範例中那樣強烈。事實上,如果我們將一個數值對另一個數值繪製散佈圖,關係會不那麼明顯: \n"
]
},
{
@ -537,14 +537,14 @@
"source": [
"## 結論\n",
"\n",
"在本筆記本中,我們學會如何對資料執行基本操作以計算統計函數。我們現在知道如何使用完善的數學和統計工具來證明一些假設,以及如何根據資料樣本計算任意變量的信賴區間。\n"
"在本筆記本中,我們學會如何對資料執行基本操作以計算統計函數。我們現在知道如何使用完善的數學和統計方法來證明某些假設,以及如何根據資料樣本計算任意變數的信賴區間。\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明** \n本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們努力確保翻譯的準確性,但自動翻譯可能仍包含錯誤或不準確之處。原始文件的母語版本應被視為權威版本。對於關鍵資訊,建議採用專業人工翻譯。我們不對因使用本翻譯所引起的任何誤解或誤譯負責。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明**\n此文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們努力追求準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於關鍵資訊,建議採用專業人工翻譯。我們不對因使用此翻譯所產生的任何誤解或誤譯承擔責任。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -568,12 +568,6 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
},
"coopTranslator": {
"original_hash": "0f899e3c5019f948e7c787b22f3b2304",
"translation_date": "2026-01-16T10:10:46+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "tw"
}
},
"nbformat": 4,

@ -4,11 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# COVID-19 疫情估計\n",
"# COVID-19 大流行估計\n",
"\n",
"## 載入資料\n",
"\n",
"我們將使用由 [約翰·霍普金斯大學](https://jhu.edu/) [系統科學與工程中心](https://systems.jhu.edu/)CSSE提供的 COVID-19 感染者資料。數據集可在 [此 GitHub 儲存庫](https://github.com/CSSEGISandData/COVID-19) 中取得。\n"
"我們將使用由[約翰·霍普金斯大學](https://jhu.edu/)的[系統科學與工程中心](https://systems.jhu.edu/)CSSE提供的COVID-19感染者資料。資料集可在[此GitHub倉庫](https://github.com/CSSEGISandData/COVID-19)取得。\n"
]
},
{
@ -27,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我們可以使用 `pd.read_csv` 直接從 GitHub 載入最新的數據。如果因某些原因數據無法取得,你總是可以使用位於 `data` 資料夾中的本地副本——只需取消註解下面定義 `base_url` 的那一行即可:\n"
"我們可以使用 `pd.read_csv` 直接從 GitHub 載入最新資料。如果因某些原因資料無法取得,您也可以使用儲存在 `data` 資料夾中的本機副本 — 只需取消註解下方定義 `base_url` 的那一行即可:\n"
]
},
{
@ -48,7 +48,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"現在讓我們載入感染者的數據,看看數據的樣子:\n"
"現在讓我們載入感染者的資料,看看資料長什麼樣子:\n"
]
},
{
@ -265,7 +265,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我們可以看到,表格的每一列定義了每個國家和/或省份的感染人數,欄位則對應日期。類似的表格也可以載入其他資料,例如康復人數和死亡人數。\n"
"我們可以看到該表格的每一列定義了每個國家和/或省的感染人數,欄位則對應日期。類似的表格也可用於其他數據,如康復人數和死亡人數。\n"
]
},
{
@ -282,9 +282,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 理解資料\n",
"## 理解資料的意義\n",
"\n",
"從上表中看不出「省份」欄位的作用。我們來看看「Province/State」欄中出現的不同值\n"
"從上表中,「省份」欄位的作用並不清楚。讓我們看看 `Province/State` 欄中存在的不同值: \n"
]
},
{
@ -322,7 +322,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"從名稱中我們可以推斷,像澳大利亞和中國這樣的國家,省份的細分更為詳盡。讓我們查找中國的相關資訊來看看範例:\n"
"從名稱上可以推測,像澳洲和中國這樣的國家會依省份有更詳細的分類。讓我們找找中國的相關資訊,來看看範例:\n"
]
},
{
@ -1321,9 +1321,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 資料預處理\n",
"## 預處理資料 \n",
"\n",
"我們不打算將國家細分為更小的區域,因此我們會先去除這種細分,將所有區域的資訊合併,以取得整個國家的資訊。這可以使用 `groupby` 來完成:\n"
"我們不打算將國家細分到更詳細的領土,因此我們會先移除此細分,並將所有領土的資訊合併,來取得整個國家的資料。這可以使用 `groupby` 完成:\n"
]
},
{
@ -1578,7 +1578,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"您可以看到,由於使用了 `groupby`,所有的 DataFrame 現在都是以國家/地區為索引。因而我們可以使用 `.loc` 來存取特定國家的資料:|\n"
"你可以看到,由於使用了 `groupby`,所有 DataFrame 現在都以 Country/Region 為索引。因此,我們可以使用 `.loc` 來存取特定國家的資料:|\n"
]
},
{
@ -1607,7 +1607,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **注意** 我們如何使用 `[3:]` 來移除包含非日期元資料的序列中前三個元素(省/州和地理位置欄位)。我們也可以直接刪除這三個欄位:\n"
"> <strong>注意</strong> 我們如何使用 `[3:]` 來刪除包含非日期元資料(省/州及地理位置欄)的序列前面三個元素。我們也可以直接刪除這三個欄位:\n"
]
},
{
@ -1625,9 +1625,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 調查資料\n",
"## 調查數據\n",
"\n",
"現在讓我們切換到調查特定國家。讓我們建立一個包含以日期為索引的感染資料的資料框\n"
"現在我們來調查一個特定國家的情況。讓我們建立一個包含按日期索引的感染數據的資料框架\n"
]
},
{
@ -1793,7 +1793,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"現在讓我們計算每天新增感染人數。這將讓我們看到疫情進展的速度。最簡單的方法是使用 `diff`\n"
"現在讓我們計算每天新增感染者的數量。這將讓我們看到疫情的進展速度。最簡單的方法是使用 `diff` \n"
]
},
{
@ -1823,7 +1823,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"我們可以看到數據有很大的波動。讓我們仔細看看其中一個月份:\n"
"我們可以看到數據有很大的波動。讓我們仔細看看其中一個月份:\n"
]
},
{
@ -1852,7 +1852,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"顯然數據中存在每週波動。因為我們想要能夠看到趨勢,所以透過計算移動平均來平滑曲線是合理的(也就是說,對於每一天,我們將計算前幾天的平均值):\n"
"數據明顯呈現每週波動。因為我們想要看趨勢,所以透過計算移動平均來平滑曲線是合理的(也就是對每一天,我們會計算前幾天的平均值): \n"
]
},
{
@ -1882,7 +1882,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"為了能夠比較多個國家,我們可能想要考慮該國的人口,並比較感染者佔該國人口的百分比。為了取得國家的人口數據,讓我們載入國家資料集:\n"
"為了能夠比較多個國家,我們可能想要考慮該國的人口,並將感染者的百分比與該國人口做比較。為了取得該國的人口,讓我們載入國家資料集:\n"
]
},
{
@ -2153,7 +2153,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"由於這個資料集包含了國家和省份的資訊,為了獲得整個國家的總人口數,我們需要稍微聰明一點:\n"
"因為這個資料集包含了國家和省份的資訊,要取得整個國家的人口,我們需要稍微聰明一點:\n"
]
},
{
@ -2261,15 +2261,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## 計算 $R_t$\n",
"\n",
"要了解疾病的傳染力,我們會觀察**基本傳播數** $R_0$,它表示一個感染者會進一步感染的人數。當 $R_0$ 大於 1 時,疫情可能會擴散。\n",
"為了了解疾病的傳染力,我們查看<strong>基本再生數</strong> $R_0$,它表示一個感染者進一步感染的人數。當 $R_0$ 大於 1 時,疫情可能會擴散。\n",
"\n",
"$R_0$ 是疾病本身的特性,並未考慮人們可能採取的一些防護措施來減緩疫情擴散。在疫情過程中,我們可以估計在任意時間 $t$ 的傳播數 $R_t$。研究顯示,可以透過取 8 天的視窗,並計算 \n",
"$$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"其中 $I_t$ 是第 $t$ 天的新感染者數量,來粗略估計此數字。\n",
"$R_0$ 是疾病本身的特性,並未考慮人們可能採取的減緩疫情的防護措施。在疫情進展過程中,我們可以估算任何給定時間 $t$ 的再生數 $R_t$。已證明該數值可大致通過取一個長度為 8 天的時間窗,並計算 $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"其中 $I_t$ 是第 $t$ 天新增感染者數量。\n",
"\n",
"現在讓我們計算疫情資料中的 $R_t$。為此,我們會取 8 個連續的 `ninfected` 值作為滾動視窗,並套用上述函數計算比率:\n"
"讓我們計算疫情資料的 $R_t$。為此,我們將取滾動視窗的 8 個 `ninfected` 值,並套用上式計算比率:\n"
]
},
{
@ -2299,9 +2299,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"你可以看到圖表中有一些空隙。這些可能是由於資料集中的 `NaN` 或 `inf` 值造成的。`inf` 可能是除以 0 引起的,而 `NaN` 則可能表示資料遺失,或無法計算結果(例如在我們的框架一開始,因為尚未有寬度為 8 的滾動視窗可用)。為了讓圖表看起來更好,我們需要使用 `replace` 和 `fillna` 函數填補這些值。\n",
"你可以看到圖表中有一些間隙。這些間隙可能是由於資料集中存在 `NaN` 或 `inf` 值所造成。`inf` 可能是因為除以 0 而產生,而 `NaN` 則可能表示資料遺失,或者沒有足夠的資料計算結果(就像我們的資料框開頭,寬度為 8 的滾動視窗尚未產生結果)。為了讓圖表更美觀,我們需要使用 `replace` 和 `fillna` 函數填補這些值。\n",
"\n",
"讓我們進一步看看疫情初期。我們也會將 y 軸值限制只顯示小於 6 的數值,以便更清楚地觀察,並繪製一條位於 1 的水平線。\n"
"讓我們進一步觀察疫情的開始階段。我們也將限制 y 軸的值只顯示低於 6 的數值,以便更清楚地觀察,並且在 y=1 畫一條水平線。\n"
]
},
{
@ -2332,7 +2332,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"另一個有趣的疫情指標是**導數**,或稱為新增病例的**每日差異**。它讓我們能清楚看到疫情何時在上升或下降。\n"
"另一個疫情的有趣指標是 <strong>導數</strong>,或稱為新病例的 <strong>每日差異</strong>。它讓我們能清楚看出疫情何時在增加或下降。\n"
]
},
{
@ -2361,7 +2361,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"鑑於報告造成資料有許多波動,因此透過執行移動平均來平滑曲線以獲得整體情況是有意義的。讓我們再次關注疫情的最初幾個月:\n"
"鑑於報告造成資料有許多波動,因此透過移動平均來平滑曲線,以獲得整體狀況,這是有意義的。我們再次聚焦於疫情的最初幾個月: \n"
]
},
{
@ -2391,26 +2391,27 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## 挑戰\n",
"\n",
"現在是時候讓你更多地玩弄程式碼和資料了!以下是一些你可以嘗試的建議:\n",
"* 查看疫情在不同國家的擴散情況。\n",
"* 繪製多國的 $R_t$ 圖表進行比較,或將多個圖表並排顯示。\n",
"* 查看死亡數和康復數如何與感染數相關。\n",
"* 嘗試透過視覺上將感染率和死亡率相關聯,並尋找異常點,來找出典型疾病持續的時間。你可能需要查看不同國家才能發現這點。\n",
"* 計算致死率及其隨時間的變化。你可能需要考慮疾病持續天數,在計算前對一個時間序列進行時間位移。\n"
"現在是你更多玩弄程式碼和數據的時間了!這裡有一些你可以嘗試的建議:\n",
"* 查看不同國家的疫情擴散情況。\n",
"* 在同一圖表上繪製數個國家的 $R_t$ 圖表以供比較,或並排繪製幾個圖表\n",
"* 查看死亡數和康復數與感染病例相關。\n",
"* 嘗試通過視覺相關感染率和死亡率並尋找異常情況,找出疾病一般持續多久。你可能需要查看不同國家來找出這點。\n",
"* 計算致死率及其隨時間的變化。你可能想考慮疾病持續的天數,在計算前將其中一個時間序列作位移。\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## References\n",
"## 參考資料\n",
"\n",
"You may look at further studies of COVID epidemic spread in the following publications:\n",
"* [Sliding SIR Model for Rt Estimation during COVID Pandemic](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/), blog post by [Dmitry Soshnikov](http://soshnikov.com)\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [Estimation of Time-Dependent Reproduction Number for Global COVID-19 Outbreak](https://www.preprints.org/manuscript/202006.0289/v1). *Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [Code for the above paper on GitHub](https://github.com/shwars/SlidingSIR)\n"
"您可以參考以下刊物中的 COVID 疫情擴散進一步研究:\n",
"* [COVID 大流行期間 Rt 估計的滑動 SIR 模型](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/)[Dmitry Soshnikov](http://soshnikov.com) 的部落格文章\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [全球 COVID-19 爆發時間依賴繁殖數的估計](https://www.preprints.org/manuscript/202006.0289/v1)。*Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [上述論文的 GitHub 程式碼](https://github.com/shwars/SlidingSIR)\n"
]
},
{
@ -2424,7 +2425,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明** \n本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於保持準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件之母語版本應視為權威來源。針對重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生之任何誤解或誤譯負責。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明**\n此文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們努力追求準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於關鍵資訊,建議採用專業人工翻譯。我們不對因使用此翻譯所產生的任何誤解或誤譯承擔責任。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],

@ -1,29 +1,33 @@
# 危險關係數據可視化項目
# 危險關係數據視覺化專案
開始之前,請確保您的電腦上已安裝 NPM 和 Node。安裝依賴項npm install然後在本地運行項目npm run serve
要開始,您需要確保機器上執行的 NPM 和 Node **>=20.0.0**。安裝相依套件npm install然後本地執行專案npm run serve
## 項目設置
## 專案設置
```
npm install
```
### 編譯並熱重載以進行開發
### 編譯並提供開發熱重新載入
```
npm run serve
```
### 編譯並壓縮以進行生產環境
### 編譯並為生產環境壓縮
```
npm run build
```
### 檢查並修復文件
### 進行程式碼檢查並修正檔案
```
npm run lint
```
### 自定義配置
請參閱 [配置參考](https://cli.vuejs.org/config/)。
### 自訂設
請參考 [設定參考](https://cli.vuejs.org/config/)。
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵資訊,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋不承擔責任。
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
此文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們努力追求準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於關鍵資訊,建議採用專業人工翻譯。我們不對因使用此翻譯所產生的任何誤解或誤譯承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,29 +1,33 @@
# 危險關係數據可視化項目
# 危險關係資料視覺化專案
開始之前,請確保您的機器上已安裝 NPM 和 Node。安裝依賴項npm install然後在本地運行項目npm run serve
要開始之前,您需要確保您的機器上已安裝 NPM 和 Node **>=20.0.0**。安裝依賴套件npm install然後在本機執行專案npm run serve
## 項目設置
## 專案設定
```
npm install
```
### 編譯並熱重載以進行開發
### 編譯並在開發環境中熱重載
```
npm run serve
```
### 編譯並壓縮以進行生產環境
### 編譯並壓縮以供生產環境使用
```
npm run build
```
### 檢查並修復文件
### 進行程式碼檢查和修復檔案
```
npm run lint
```
### 自定義配置
請參閱 [配置參考](https://cli.vuejs.org/config/)。
### 自訂設
請參考 [設定參考](https://cli.vuejs.org/config/)。
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們努力確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵資訊,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋不承擔責任。
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
此文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們努力追求準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於關鍵資訊,建議採用專業人工翻譯。我們不對因使用此翻譯所產生的任何誤解或誤譯承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save