[{"data":1,"prerenderedAt":1179},["ShallowReactive",2],{"navigation_docs":3,"-statistic-chi-square-test-intro":352,"-statistic-chi-square-test-intro-surround":1174},[4,54,83,116,125,161,179,200],{"title":5,"path":6,"stem":7,"children":8},"Ai","/ai","ai",[9,12,42,46,50],{"title":10,"path":6,"stem":11},"AI 技術探索","ai/index",{"title":13,"path":14,"stem":15,"children":16,"page":41},"Rag","/ai/rag","ai/RAG",[17,21,25,29,33,37],{"title":18,"path":19,"stem":20},"BM25 演算法深入解析：從 TF-IDF 到現代搜尋引擎的核心技術","/ai/rag/bm25-deep-dive-from-tf-idf-to-rag","ai/RAG/bm25-deep-dive-from-tf-idf-to-rag",{"title":22,"path":23,"stem":24},"Dense Retrieval（向量檢索）深入解析","/ai/rag/dense-retrieval-deep-dive","ai/RAG/dense-retrieval-deep-dive",{"title":26,"path":27,"stem":28},"RAG（Retrieval-Augmented Generation）原理與實作入門","/ai/rag/rag-intro-principles-and-implementation","ai/RAG/rag-intro-principles-and-implementation",{"title":30,"path":31,"stem":32},"RAG Retrieval Strategy 深入解析","/ai/rag/rag-retrieval-strategy-deep-dive","ai/RAG/rag-retrieval-strategy-deep-dive",{"title":34,"path":35,"stem":36},"Reciprocal Rank Fusion（RRF）教學：打造更穩定的檢索融合策略","/ai/rag/rrf-reciprocal-rank-fusion-guide","ai/RAG/rrf-reciprocal-rank-fusion-guide",{"title":38,"path":39,"stem":40},"TF-IDF（Term Frequency–Inverse Document Frequency）深入解析","/ai/rag/tf-idf-deep-dive","ai/RAG/tf-idf-deep-dive",false,{"title":43,"path":44,"stem":45},"Docus AI 功能完整實作指南","/ai/docus-ai-implementation","ai/docus-ai-implementation",{"title":47,"path":48,"stem":49},"llms.txt 是什麼？在 Nuxt 中控制 AI 與搜尋引擎爬蟲的新方式","/ai/llms-txt","ai/llms-txt",{"title":51,"path":52,"stem":53},"MCP（Model Context Protocol）是什麼？用「AI 的 USB-C」理解模型如何安全連接工具與資料","/ai/mcp_concept","ai/mcp_concept",{"title":55,"path":56,"stem":57,"children":58,"page":41},"Data Analysis","/data-analysis","data-analysis",[59,63,67,71,75,79],{"title":60,"path":61,"stem":62},"Exploratory Data Analysis（EDA）資料探索分析入門","/data-analysis/exploratory-data-analysis-eda","data-analysis/exploratory-data-analysis-eda",{"title":64,"path":65,"stem":66},"PR-AUC 深入解析：不平衡分類問題的重要評估指標","/data-analysis/pr-auc-for-imbalanced-classification","data-analysis/pr-auc-for-imbalanced-classification",{"title":68,"path":69,"stem":70},"ROC-AUC 深入解析：理解分類模型的判斷能力","/data-analysis/roc-auc-complete-guide","data-analysis/roc-auc-complete-guide",{"title":72,"path":73,"stem":74},"SHAP（SHapley Additive exPlanations）模型解釋方法深入解析","/data-analysis/shap-model-interpretation-complete-guide","data-analysis/shap-model-interpretation-complete-guide",{"title":76,"path":77,"stem":78},"Social Network Analysis（SNA）深入解析","/data-analysis/social-network-analysis-sna","data-analysis/social-network-analysis-sna",{"title":80,"path":81,"stem":82},"Time-based Split：為什麼時間序列資料不能使用 Random Split？","/data-analysis/time-based-split-vs-random-split","data-analysis/time-based-split-vs-random-split",{"title":84,"path":85,"stem":86,"children":87,"page":41},"MachineLearning","/machine_learning","machine_learning",[88,92,96,100,104,108,112],{"title":89,"path":90,"stem":91},"Confusion Matrix（混淆矩陣）完整解析","/machine_learning/confusion-matrix","machine_learning/confusion-matrix",{"title":93,"path":94,"stem":95},"Decision Tree 模型完整教學：從原理到 Python 實作","/machine_learning/decision-tree-complete-guide","machine_learning/decision-tree-complete-guide",{"title":97,"path":98,"stem":99},"為什麼 Decision Tree 在 Tabular Data 上常常勝過 Deep Learning？","/machine_learning/decision-tree-vs-deep-learning-on-tabular-data","machine_learning/decision-tree-vs-deep-learning-on-tabular-data",{"title":101,"path":102,"stem":103},"LightGBM 模型入門：理解高效能的 Gradient Boosting 演算法","/machine_learning/lightgbm-intro-for-tabular-data","machine_learning/lightgbm-intro-for-tabular-data",{"title":105,"path":106,"stem":107},"Logistic Regression（Logit 回歸）完整教學","/machine_learning/logistic-regression-complete-guide","machine_learning/logistic-regression-complete-guide",{"title":109,"path":110,"stem":111},"為什麼模型訓練需要 Train / Validation / Test Dataset？","/machine_learning/train-validation-test-dataset","machine_learning/train-validation-test-dataset",{"title":113,"path":114,"stem":115},"XGBoost 原理與實務教學","/machine_learning/xgboost-complete-guide","machine_learning/xgboost-complete-guide",{"title":117,"path":118,"stem":119,"children":120,"page":41},"Network","/network","network",[121],{"title":122,"path":123,"stem":124},"DNS 設定入門：CNAME vs A Record 完整解析","/network/dns-cname-vs-a-record-guide","network/dns-cname-vs-a-record-guide",{"title":126,"path":127,"stem":128,"children":129},"Nuxt","/nuxt","nuxt",[130,133,137,141,145,149,153,157],{"title":131,"path":127,"stem":132},"Nuxt 實戰指南","nuxt/index",{"title":134,"path":135,"stem":136},"Abstraction Layer 與 Adapter 的差別，一次搞懂設計角色","/nuxt/adapter_abstraction_layer","nuxt/adapter_abstraction_layer",{"title":138,"path":139,"stem":140},"Nuxt 4 全面理解 — 專案檔案結構解析","/nuxt/directory_structure","nuxt/directory_structure",{"title":142,"path":143,"stem":144},"Nuxt 前端 build 流程完整解析","/nuxt/frontend_build","nuxt/frontend_build",{"title":146,"path":147,"stem":148},"Nitro 是什麼？從 Nuxt 專案到 Server 與 Edge 的關鍵引擎","/nuxt/nitro","nuxt/nitro",{"title":150,"path":151,"stem":152},"深入理解 Nuxt 的 .nuxt 與 .output：為什麼部署時一定要分清楚？","/nuxt/nuxt_and_output","nuxt/nuxt_and_output",{"title":154,"path":155,"stem":156},"Nuxt 中 dev、build、preview 的差異一次搞懂","/nuxt/nuxt_dev_build_preview","nuxt/nuxt_dev_build_preview",{"title":158,"path":159,"stem":160},"Nuxt Image vs \u003Cimg>：為什麼 Nuxt 3 專案幾乎都該用 \u003CNuxtImg>？","/nuxt/nuxt_image","nuxt/nuxt_image",{"title":162,"path":163,"stem":164,"children":165},"Python 程式開發","/python","python/index",[166,167,171,175],{"title":162,"path":163,"stem":164},{"title":168,"path":169,"stem":170},"如何在 FastAPI 中調用記憶體 Buffer 回傳圖片 (附實例)","/python/memory_buffer","python/memory_buffer",{"title":172,"path":173,"stem":174},"Python 單元測試教學：如何為你的程式撰寫 Test","/python/python-unit-testing-unittest-pytest","python/python-unit-testing-unittest-pytest",{"title":176,"path":177,"stem":178},"如何使用 uv 取代 pip：改善 Python 專案的開發流程","/python/uv","python/uv",{"title":180,"path":181,"stem":182,"children":183,"page":41},"Statistic","/statistic","statistic",[184,188,192,196],{"title":185,"path":186,"stem":187},"卡方檢定（Chi-Square Test）入門教學","/statistic/chi-square-test-intro","statistic/chi-square-test-intro",{"title":189,"path":190,"stem":191},"常見抽樣方法（Sampling Methods）教學：Stratified、Quota、Convenience、Systematic、Simple Random","/statistic/common-sampling-methods-guide","statistic/common-sampling-methods-guide",{"title":193,"path":194,"stem":195},"Cramér’s V 指標介紹：如何衡量兩個類別變數之間的關聯","/statistic/cramers-v-for-categorical-association","statistic/cramers-v-for-categorical-association",{"title":197,"path":198,"stem":199},"Mann–Whitney U 與 Kolmogorov–Smirnov（KS）檢定：非參數統計檢定的入門指南","/statistic/mann-whitney-u-and-ks-test-intro","statistic/mann-whitney-u-and-ks-test-intro",{"title":201,"path":202,"stem":203,"children":204},"WebDev","/web_dev","web_dev",[205,208,234,248,282,312,334],{"title":206,"path":202,"stem":207},"Web 前端開發","web_dev/index",{"title":209,"path":210,"stem":211,"children":212},"瀏覽器與渲染","/web_dev/browser","web_dev/browser/index",[213,214,218,222,226,230],{"title":209,"path":210,"stem":211},{"title":215,"path":216,"stem":217},"瀏覽器儲存空間完整解析：Cookie、localStorage、IndexedDB 到 Cache Storage","/web_dev/browser/browser-storage-comprehensive-guide","web_dev/browser/browser-storage-comprehensive-guide",{"title":219,"path":220,"stem":221},"DOM (Document Object Model) 深入解析","/web_dev/browser/dom","web_dev/browser/dom",{"title":223,"path":224,"stem":225},"Service Worker Request Flow 深入解析","/web_dev/browser/service-worker-request-flow","web_dev/browser/service-worker-request-flow",{"title":227,"path":228,"stem":229},"CSR、SSR 與 SSG 是什麼？前端渲染策略完整比較","/web_dev/browser/ssr_csr_ssg","web_dev/browser/ssr_csr_ssg",{"title":231,"path":232,"stem":233},"Virtual DOM 深入解析：為什麼它能優化前端效能？","/web_dev/browser/virtual_dom","web_dev/browser/virtual_dom",{"title":235,"path":236,"stem":237,"children":238},"圖形技術","/web_dev/graphics","web_dev/graphics/index",[239,240,244],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"為什麼 Three.js 專案幾乎都選擇 CSR？從 SSR 問題談起","/web_dev/graphics/threejs_csr","web_dev/graphics/threejs_csr",{"title":245,"path":246,"stem":247},"WebGL 是什麼？為什麼前端 3D 幾乎都靠它？","/web_dev/graphics/webgl","web_dev/graphics/webGL",{"title":249,"path":250,"stem":251,"children":252},"架構與配置","/web_dev/infrastructure","web_dev/infrastructure/index",[253,254,258,262,266,270,274,278],{"title":249,"path":250,"stem":251},{"title":255,"path":256,"stem":257},"Zeabur + K3s + Nuxt 部署架構完整解析","/web_dev/infrastructure/k3s-zeabur","web_dev/infrastructure/K3s-zeabur",{"title":259,"path":260,"stem":261},"ECS vs Docker vs Kubernetes：從部署堆疊理解三層架構","/web_dev/infrastructure/ecs-docker-kubernetes-stack","web_dev/infrastructure/ecs-docker-kubernetes-stack",{"title":263,"path":264,"stem":265},"ECS vs VPS 是什麼？從部署網站的角度一次搞懂差別","/web_dev/infrastructure/ecs-vs-vps","web_dev/infrastructure/ecs-vs-vps",{"title":267,"path":268,"stem":269},"Zeabur 內網服務連線完整入門指南","/web_dev/infrastructure/k3s-internal-networking","web_dev/infrastructure/k3s-internal-networking",{"title":271,"path":272,"stem":273},"使用 Microservices 架構設計系統的優勢解析","/web_dev/infrastructure/microservices-architecture-advantages","web_dev/infrastructure/microservices-architecture-advantages",{"title":275,"path":276,"stem":277},"Nginx 入門教學：從反向代理到與 Kubernetes 的架構比較","/web_dev/infrastructure/nginx-intro","web_dev/infrastructure/nginx-intro",{"title":279,"path":280,"stem":281},"YAML 配置是什麼？為什麼現代開發都在用它","/web_dev/infrastructure/yaml-configuration","web_dev/infrastructure/yaml-configuration",{"title":283,"path":284,"stem":285,"children":286},"網絡與通訊","/web_dev/network","web_dev/network/index",[287,288,292,296,300,304,308],{"title":283,"path":284,"stem":285},{"title":289,"path":290,"stem":291},"HTTP Request 結構完整解析：從 Request Line 到 Header 一次看懂","/web_dev/network/http-request-structure","web_dev/network/http-request-structure",{"title":293,"path":294,"stem":295},"OSI 模型（Open Systems Interconnection Model）完整解析","/web_dev/network/osi-model","web_dev/network/osi-model",{"title":297,"path":298,"stem":299},"RESTful API 設計原則與實務解析","/web_dev/network/restful-api","web_dev/network/restful-api",{"title":301,"path":302,"stem":303},"RESTful API 五大設計原則深入解析","/web_dev/network/restful-api-principles","web_dev/network/restful-api-principles",{"title":305,"path":306,"stem":307},"Server-Sent Events (SSE) 深入解析與實作教學","/web_dev/network/sse-introduction","web_dev/network/sse-introduction",{"title":309,"path":310,"stem":311},"WebSocket 入門教學：從概念到 Node.js 實作","/web_dev/network/websocket-introduction","web_dev/network/websocket-introduction",{"title":313,"path":314,"stem":315,"children":316},"認證與安全","/web_dev/security","web_dev/security/index",[317,318,322,326,330],{"title":313,"path":314,"stem":315},{"title":319,"path":320,"stem":321},"使用 Cookie 與 Session 建立使用者驗證（完整新手教學）","/web_dev/security/cookie-session-authentication","web_dev/security/cookie-session-authentication",{"title":323,"path":324,"stem":325},"JWT 驗證機制完整解析：從登入流程到實務應用","/web_dev/security/jwt-authentication","web_dev/security/jwt-authentication",{"title":327,"path":328,"stem":329},"Secret Key 簽名是什麼？從零理解資料簽名的本質","/web_dev/security/secret-key-signing","web_dev/security/secret-key-signing",{"title":331,"path":332,"stem":333},"SSH（Secure Shell）是什麼？從遠端登入到安全通道的核心概念","/web_dev/security/ssh","web_dev/security/ssh",{"title":335,"path":336,"stem":337,"children":338},"SEO 與規範","/web_dev/seo","web_dev/seo/index",[339,340,344,348],{"title":335,"path":336,"stem":337},{"title":341,"path":342,"stem":343},"Canonical URL 是什麼？用生活化方式搞懂前端 SEO 的基本保命符","/web_dev/seo/canonical_link","web_dev/seo/canonical_link",{"title":345,"path":346,"stem":347},"robots.txt 是什麼？SEO 的第一道守門員","/web_dev/seo/robot_txt","web_dev/seo/robot_txt",{"title":349,"path":350,"stem":351},"Nuxt SEO 中的 Meta 與 SEO 工具是如何運作的？","/web_dev/seo/seo","web_dev/seo/seo",{"id":353,"title":185,"body":354,"description":1162,"extension":1163,"links":1164,"meta":1165,"navigation":847,"path":186,"seo":1172,"stem":187,"__hash__":1173},"docs/statistic/chi-square-test-intro.md",{"type":355,"value":356,"toc":1140},"minimark",[357,362,366,369,372,385,393,395,443,450,456,459,463,466,474,480,486,488,491,497,500,554,560,563,571,574,579,582,584,588,594,597,600,603,606,609,642,649,663,666,680,683,685,688,694,697,700,703,718,721,729,735,737,740,746,749,754,757,761,764,771,786,788,792,800,974,983,985,988,991,995,1001,1003,1014,1017,1021,1024,1032,1035,1043,1046,1050,1053,1064,1067,1069,1072,1075,1079,1082,1084,1095,1102,1106,1109,1114,1117,1119,1122,1129,1136],[358,359,361],"h2",{"id":360},"為什麼需要卡方檢定","為什麼需要卡方檢定？",[363,364,365],"p",{},"在資料分析或機器學習中，我們經常會遇到這樣的問題：",[363,367,368],{},"「兩個分類變數之間是否存在關聯？」",[363,370,371],{},"例如：",[373,374,375,379,382],"ul",{},[376,377,378],"li",{},"性別是否會影響某產品的購買行為？",[376,380,381],{},"是否為會員是否與是否購買有關？",[376,383,384],{},"詐欺交易是否與某種交易類型有關？",[363,386,387,388,392],{},"這類問題的資料通常不是連續數值，而是",[389,390,391],"strong",{},"分類資料（categorical data）","。",[363,394,371],{},[396,397,398,411],"table",{},[399,400,401],"thead",{},[402,403,404,408],"tr",{},[405,406,407],"th",{},"性別",[405,409,410],{},"是否購買",[412,413,414,423,431,437],"tbody",{},[402,415,416,420],{},[417,418,419],"td",{},"男",[417,421,422],{},"是",[402,424,425,428],{},[417,426,427],{},"女",[417,429,430],{},"否",[402,432,433,435],{},[417,434,419],{},[417,436,422],{},[402,438,439,441],{},[417,440,427],{},[417,442,430],{},[363,444,445,446,449],{},"在這種情況下，我們無法使用平均數、相關係數等方法來判斷關係，因此就需要一種專門處理",[389,447,448],{},"分類資料關聯性","的方法。",[363,451,452,455],{},[389,453,454],{},"卡方檢定（Chi-Square Test）"," 正是為了解決這類問題而設計的統計工具。",[457,458],"hr",{},[358,460,462],{"id":461},"卡方檢定在做什麼","卡方檢定在做什麼？",[363,464,465],{},"卡方檢定的核心想法其實非常直觀：",[467,468,469],"blockquote",{},[363,470,471],{},[389,472,473],{},"比較「實際觀察到的數量」與「理論上應該出現的數量」是否有顯著差異。",[363,475,476,477],{},"如果兩者差異很大，我們就會懷疑：",[389,478,479],{},"這兩個變數之間可能存在關聯。",[363,481,482,483],{},"如果差異很小，則表示：",[389,484,485],{},"資料看起來只是隨機產生，兩個變數可能彼此獨立。",[457,487],{},[358,489,490],{"id":490},"一個簡單的例子",[363,492,493,494],{},"假設某電商平台想研究：",[389,495,496],{},"性別是否會影響商品購買行為。",[363,498,499],{},"收集到的資料如下：",[396,501,502,518],{},[399,503,504],{},[402,505,506,508,512,515],{},[405,507,407],{},[405,509,511],{"align":510},"right","購買",[405,513,514],{"align":510},"未購買",[405,516,517],{"align":510},"總數",[412,519,520,533,543],{},[402,521,522,524,527,530],{},[417,523,419],{},[417,525,526],{"align":510},"40",[417,528,529],{"align":510},"60",[417,531,532],{"align":510},"100",[402,534,535,537,539,541],{},[417,536,427],{},[417,538,529],{"align":510},[417,540,526],{"align":510},[417,542,532],{"align":510},[402,544,545,547,549,551],{},[417,546,517],{},[417,548,532],{"align":510},[417,550,532],{"align":510},[417,552,553],{"align":510},"200",[363,555,556,557,392],{},"這個表格稱為 ",[389,558,559],{},"列聯表（Contingency Table）",[363,561,562],{},"從表面上看，好像：",[373,564,565,568],{},[376,566,567],{},"男生比較不買",[376,569,570],{},"女生比較會買",[363,572,573],{},"但問題是：",[467,575,576],{},[363,577,578],{},"這個差異是真的存在，還是只是隨機造成？",[363,580,581],{},"這就是卡方檢定要回答的問題。",[457,583],{},[358,585,587],{"id":586},"如何計算期望值","如何計算「期望值」？",[363,589,590,591],{},"卡方檢定會先計算：",[389,592,593],{},"如果兩個變數完全沒有關係，每個格子應該出現多少數量。",[363,595,596],{},"公式為：",[363,598,599],{},"$$\nExpected = \\frac{Row\\ Total \\times Column\\ Total}{Grand\\ Total}\n$$",[363,601,602],{},"例如，「男性且購買」這格的期望值為：",[363,604,605],{},"$$\n\\frac{100 \\times 100}{200} = 50\n$$",[363,607,608],{},"因此期望表格會變成：",[396,610,611,623],{},[399,612,613],{},[402,614,615,617,620],{},[405,616,407],{},[405,618,619],{"align":510},"購買 (Expected)",[405,621,622],{"align":510},"未購買 (Expected)",[412,624,625,634],{},[402,626,627,629,632],{},[417,628,419],{},[417,630,631],{"align":510},"50",[417,633,631],{"align":510},[402,635,636,638,640],{},[417,637,427],{},[417,639,631],{"align":510},[417,641,631],{"align":510},[363,643,644,645,648],{},"也就是說，如果性別和購買行為",[389,646,647],{},"完全沒有關係","，理論上應該是：",[373,650,651,654,657,660],{},[376,652,653],{},"男買 50",[376,655,656],{},"男不買 50",[376,658,659],{},"女買 50",[376,661,662],{},"女不買 50",[363,664,665],{},"但實際觀察到的是：",[373,667,668,671,674,677],{},[376,669,670],{},"男買 40",[376,672,673],{},"男不買 60",[376,675,676],{},"女買 60",[376,678,679],{},"女不買 40",[363,681,682],{},"因此就出現了差異。",[457,684],{},[358,686,687],{"id":687},"卡方統計量",[363,689,690,691],{},"接下來我們要計算：",[389,692,693],{},"實際值與期望值的差距有多大。",[363,695,696],{},"卡方統計量公式為：",[363,698,699],{},"$$\n\\chi^2 = \\sum \\frac{(Observed - Expected)^2}{Expected}\n$$",[363,701,702],{},"這個公式的意思是：",[704,705,706,709,712,715],"ol",{},[376,707,708],{},"計算每個格子的差異",[376,710,711],{},"把差異平方",[376,713,714],{},"再除以期望值",[376,716,717],{},"最後全部加總",[363,719,720],{},"如果：",[373,722,723,726],{},[376,724,725],{},"$\\chi^2$ 很小 → 代表差異不大",[376,727,728],{},"$\\chi^2$ 很大 → 代表差異明顯",[363,730,731,732],{},"當 $\\chi^2$ 超過某個門檻時，我們就會認為：",[389,733,734],{},"兩個變數之間存在統計上的關聯。",[457,736],{},[358,738,739],{"id":739},"假設檢定的觀念",[363,741,742,743,392],{},"卡方檢定其實是一種",[389,744,745],{},"假設檢定（Hypothesis Testing）",[363,747,748],{},"我們會先建立兩個假設：",[750,751,753],"h3",{"id":752},"虛無假設h","虛無假設（H₀）",[363,755,756],{},"兩個變數彼此獨立，沒有關聯。",[750,758,760],{"id":759},"對立假設h","對立假設（H₁）",[363,762,763],{},"兩個變數之間存在關聯。",[363,765,766,767,770],{},"接著透過卡方統計量計算 ",[389,768,769],{},"p-value","：",[373,772,773,780],{},[376,774,775,776,779],{},"如果 ",[389,777,778],{},"p-value \u003C 0.05"," → 拒絕虛無假設 → 代表兩個變數可能存在關聯",[376,781,775,782,785],{},[389,783,784],{},"p-value ≥ 0.05"," → 無法拒絕虛無假設 → 資料不足以證明兩者有關",[457,787],{},[358,789,791],{"id":790},"python-實作範例","Python 實作範例",[363,793,794,795,799],{},"在 Python 中，我們可以使用 ",[796,797,798],"code",{},"scipy"," 來進行卡方檢定。",[801,802,807],"pre",{"className":803,"code":804,"language":805,"meta":806,"style":806},"language-python shiki shiki-themes github-dark","import numpy as np\nfrom scipy.stats import chi2_contingency\n\n# 建立列聯表\ntable = np.array([\n    [40, 60],\n    [60, 40]\n])\n\nchi2, p, dof, expected = chi2_contingency(table)\n\nprint(\"Chi-square:\", chi2)\nprint(\"p-value:\", p)\nprint(\"Expected table:\\n\", expected)\n","python","",[796,808,809,828,842,849,856,868,885,899,905,910,921,926,942,955],{"__ignoreMap":806},[810,811,814,818,822,825],"span",{"class":812,"line":813},"line",1,[810,815,817],{"class":816},"snl16","import",[810,819,821],{"class":820},"s95oV"," numpy ",[810,823,824],{"class":816},"as",[810,826,827],{"class":820}," np\n",[810,829,831,834,837,839],{"class":812,"line":830},2,[810,832,833],{"class":816},"from",[810,835,836],{"class":820}," scipy.stats ",[810,838,817],{"class":816},[810,840,841],{"class":820}," chi2_contingency\n",[810,843,845],{"class":812,"line":844},3,[810,846,848],{"emptyLinePlaceholder":847},true,"\n",[810,850,852],{"class":812,"line":851},4,[810,853,855],{"class":854},"sAwPA","# 建立列聯表\n",[810,857,859,862,865],{"class":812,"line":858},5,[810,860,861],{"class":820},"table ",[810,863,864],{"class":816},"=",[810,866,867],{"class":820}," np.array([\n",[810,869,871,874,877,880,882],{"class":812,"line":870},6,[810,872,873],{"class":820},"    [",[810,875,526],{"class":876},"sDLfK",[810,878,879],{"class":820},", ",[810,881,529],{"class":876},[810,883,884],{"class":820},"],\n",[810,886,888,890,892,894,896],{"class":812,"line":887},7,[810,889,873],{"class":820},[810,891,529],{"class":876},[810,893,879],{"class":820},[810,895,526],{"class":876},[810,897,898],{"class":820},"]\n",[810,900,902],{"class":812,"line":901},8,[810,903,904],{"class":820},"])\n",[810,906,908],{"class":812,"line":907},9,[810,909,848],{"emptyLinePlaceholder":847},[810,911,913,916,918],{"class":812,"line":912},10,[810,914,915],{"class":820},"chi2, p, dof, expected ",[810,917,864],{"class":816},[810,919,920],{"class":820}," chi2_contingency(table)\n",[810,922,924],{"class":812,"line":923},11,[810,925,848],{"emptyLinePlaceholder":847},[810,927,929,932,935,939],{"class":812,"line":928},12,[810,930,931],{"class":876},"print",[810,933,934],{"class":820},"(",[810,936,938],{"class":937},"sU2Wk","\"Chi-square:\"",[810,940,941],{"class":820},", chi2)\n",[810,943,945,947,949,952],{"class":812,"line":944},13,[810,946,931],{"class":876},[810,948,934],{"class":820},[810,950,951],{"class":937},"\"p-value:\"",[810,953,954],{"class":820},", p)\n",[810,956,958,960,962,965,968,971],{"class":812,"line":957},14,[810,959,931],{"class":876},[810,961,934],{"class":820},[810,963,964],{"class":937},"\"Expected table:",[810,966,967],{"class":876},"\\n",[810,969,970],{"class":937},"\"",[810,972,973],{"class":820},", expected)\n",[363,975,976,977,979,980],{},"如果輸出的 ",[796,978,769],{}," 小於 0.05，就表示：",[389,981,982],{},"性別與購買行為之間可能存在關聯。",[457,984],{},[358,986,987],{"id":987},"卡方檢定在資料科學中的應用",[363,989,990],{},"卡方檢定在資料科學中其實非常常見，尤其是在以下情境：",[750,992,994],{"id":993},"_1-特徵篩選feature-selection","1) 特徵篩選（Feature Selection）",[363,996,997,998],{},"在機器學習中，可以用卡方檢定來判斷：",[389,999,1000],{},"某個類別型特徵是否與目標變數有關。",[363,1002,371],{},[373,1004,1005,1008,1011],{},[376,1006,1007],{},"device type",[376,1009,1010],{},"transaction type",[376,1012,1013],{},"merchant category",[363,1015,1016],{},"如果卡方檢定顯示某個特徵與目標高度相關，就可以保留該特徵。",[750,1018,1020],{"id":1019},"_2-ab-test-分析","2) A/B Test 分析",[363,1022,1023],{},"例如比較：",[373,1025,1026,1029],{},[376,1027,1028],{},"不同版本 UI",[376,1030,1031],{},"不同廣告文案",[363,1033,1034],{},"是否影響：",[373,1036,1037,1040],{},[376,1038,1039],{},"點擊率",[376,1041,1042],{},"轉換率",[363,1044,1045],{},"只要資料是分類型（點擊 / 未點擊），就可以使用卡方檢定。",[750,1047,1049],{"id":1048},"_3-詐欺偵測","3) 詐欺偵測",[363,1051,1052],{},"在金融詐欺分析中，可以檢查：",[373,1054,1055,1058,1061],{},[376,1056,1057],{},"transaction type vs fraud",[376,1059,1060],{},"country vs fraud",[376,1062,1063],{},"device vs fraud",[363,1065,1066],{},"看看哪些類別與詐欺交易存在關聯。",[457,1068],{},[358,1070,1071],{"id":1071},"卡方檢定的限制",[363,1073,1074],{},"雖然卡方檢定非常常見，但它也有一些限制。",[750,1076,1078],{"id":1077},"_1-只適用於分類資料","1) 只適用於分類資料",[363,1080,1081],{},"卡方檢定不能直接用於連續數值資料。",[363,1083,371],{},[373,1085,1086,1089,1092],{},[376,1087,1088],{},"年齡",[376,1090,1091],{},"收入",[376,1093,1094],{},"金額",[363,1096,1097,1098,1101],{},"需要先進行 ",[389,1099,1100],{},"分箱（binning）"," 才能使用。",[750,1103,1105],{"id":1104},"_2-樣本數太小時不適用","2) 樣本數太小時不適用",[363,1107,1108],{},"卡方檢定有一個常見建議：",[467,1110,1111],{},[363,1112,1113],{},"每個格子的期望值最好大於 5。",[363,1115,1116],{},"如果資料太少，結果可能不可靠。",[457,1118],{},[358,1120,1121],{"id":1121},"結論",[363,1123,1124,1125,1128],{},"卡方檢定（Chi-Square Test）是一種用來檢驗",[389,1126,1127],{},"分類變數之間是否存在關聯","的重要統計方法。它的核心概念是比較「觀察值」與「期望值」之間的差距，透過卡方統計量與 p-value 判斷這個差異是否具有統計意義。",[363,1130,1131,1132,1135],{},"在資料科學實務中，卡方檢定常被用於",[389,1133,1134],{},"特徵篩選、A/B Test 分析以及詐欺偵測等情境","。理解它的原理不僅有助於統計分析，也能幫助我們更好地解讀資料中的模式與關係。",[1137,1138,1139],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":806,"searchDepth":830,"depth":830,"links":1141},[1142,1143,1144,1145,1146,1147,1151,1152,1157,1161],{"id":360,"depth":830,"text":361},{"id":461,"depth":830,"text":462},{"id":490,"depth":830,"text":490},{"id":586,"depth":830,"text":587},{"id":687,"depth":830,"text":687},{"id":739,"depth":830,"text":739,"children":1148},[1149,1150],{"id":752,"depth":844,"text":753},{"id":759,"depth":844,"text":760},{"id":790,"depth":830,"text":791},{"id":987,"depth":830,"text":987,"children":1153},[1154,1155,1156],{"id":993,"depth":844,"text":994},{"id":1019,"depth":844,"text":1020},{"id":1048,"depth":844,"text":1049},{"id":1071,"depth":830,"text":1071,"children":1158},[1159,1160],{"id":1077,"depth":844,"text":1078},{"id":1104,"depth":844,"text":1105},{"id":1121,"depth":830,"text":1121},"以直觀的方式理解卡方檢定（Chi-Square Test）的概念、原理與實際應用，學習如何判斷兩個分類變數是否存在關聯。","md",null,{"tags":1166,"category":182,"date":1171},[1167,1168,1169,1170],"statistics","chi-square","hypothesis-testing","data-science","2026-03-08",{"title":185,"description":1162},"_H5jfP2TBqiQnTyt4U0pL037Mr7lgaK9RbOOFVI8DSI",[1175,1177],{"title":176,"path":177,"stem":178,"description":1176,"children":-1},"介紹 uv 及其基礎指令 (init, add, sync)，幫助初學者理解如何利用 uv 進行高效且穩定的 Python 環境與套件管理。",{"title":189,"path":190,"stem":191,"description":1178,"children":-1},"介紹統計學中常見的五種抽樣方法，包括分層抽樣、配額抽樣、便利抽樣、系統抽樣與簡單隨機抽樣，並說明其原理與適用情境。",1776690843894]