
用 PHP 使 Web 數(shù)據(jù)分析進(jìn)入更高境界(三)
下面的腳本將每次實(shí)驗(yàn)獲得的 X 平方分布統(tǒng)計(jì)寫到一個(gè)輸出文件以便稍后用圖表表示。 清單 2. 將獲得的 X 平方分布統(tǒng)計(jì)寫到輸出文件 <?php // simulate.php // Copyright 2003, Paul Meagher // Distributed under LGPL // Set time limit to 0 so script doesn't time out set_time_limit(0); require_once "../init.php"; require PHP_MATH . "chi/Multinomial.php"; require PHP_MATH . "chi/ChiSquare1D.php"; // Initialization parameters $NExps = 10000; $NTrials = 300; $NOptions = 3; $multi = new Multinomial($NExps, $NTrials, $NOptions); $output = fopen("./data.txt","w") OR die("file won't open"); for ($i=0; $i<$NExps; $i++) { // For each multinomial experiment, do chi square analysis $chi = new ChiSquare1D($multi->Outcomes[$i]); // Load obtained chi square value into sampling distribution array $distribution[$i] = $chi->ChiSqObt; // Write obtained chi square value to file fputs($output, $distribution[$i]."\n"); } fclose ($output); ?> 為了使運(yùn)行該實(shí)驗(yàn)所期望獲得的結(jié)果可視化,對我來說,最簡單的方法就是將 data.txt 文件裝入開放源碼統(tǒng)計(jì)包 R,運(yùn)行 histogram 命令,并且在圖形編輯器中編輯該圖表,如下所示: x = scan("data.txt") hist(x, 50) 正如您可以看到的,這些 X 平方分布值的直方圖與上面表示的 df = 2 的連續(xù) X 平方分布的分布近似。 圖 3. 與 df=2 的連續(xù)分布近似的值 在下面幾節(jié)中,我將側(cè)重于說明這個(gè)模擬實(shí)驗(yàn)中所使用的 X 平方分布軟件的工作原理。
通常情況下,X 平方分布軟件將用于分析實(shí)際的定類尺度數(shù)據(jù)(例如 Web 民意測驗(yàn)結(jié)果、每周的流量報(bào)告或者客戶品牌偏好報(bào)告),而不是您使用的模擬數(shù)據(jù)。您可能還會對該軟件生成的其它輸出 ― 例如匯總表和尾數(shù)概率 ― 感興趣。 X 平方分布的實(shí)例變量 我開發(fā)的基于 php 的 X 平方分布軟件包由用于分析頻率數(shù)據(jù)的類構(gòu)成,頻率數(shù)據(jù)是按照一維或兩維(ChiSquare1D.php 和 ChiSquare2D.php)進(jìn)行分類的。我的討論將僅局限于說明 ChiSquare1D.php 類的工作原理,以及說明如何將其應(yīng)用于一維 Web 民意測驗(yàn)數(shù)據(jù)。 在繼續(xù)之前,應(yīng)當(dāng)說明:按照兩維對數(shù)據(jù)進(jìn)行分類(例如,按照性別對啤酒偏好進(jìn)行分類),允許您通過查找列聯(lián)表單元中的系統(tǒng)關(guān)系或條件概率開始說明您的結(jié)果。盡管下面的許多討論將有助于您理解 ChiSquare2D.php 軟件的工作原理,但本文未討論的其它實(shí)驗(yàn)、分析和可視化問題也是使用這個(gè)類之前必須處理的。
清單 3 研究了 ChiSquare1D.php 類的片段,它由以下部分構(gòu)成: 1.一個(gè)被包含的文件 2.類實(shí)例變量 清單 3. 帶有被包含的文件和實(shí)例變量的 X 平方分布類的片段 <?php // ChiSquare1D.php // Copyright 2003, Paul Meagher // Distributed under LGPL require_once PHP_MATH . "dist/Distribution.php"; class ChiSquare1D { var $Total; var $ObsFreq = array(); // Observed frequencies var $ExpFreq = array(); // Expected frequencies var $ExpProb = array(); // Expected probabilities var $NumCells; var $ChiSqObt; var $DF; var $Alpha; var $ChiSqProb; var $ChiSqCrit; } ?> 清單 3 中這個(gè)腳本的頂部包含了一個(gè)名為 Distribution.php 的文件。所包含的路徑合并了在 init.php 文件中設(shè)置的 PHP_MATH 常量,假定 init.php 文件已包含在調(diào)用腳本中。 所包含的文件 Distribution.php 包含了為幾個(gè)常用的抽樣分布(T 分布、F 分布和 X 平方分布)生成抽樣分布統(tǒng)計(jì)信息的方法。ChiSquare1D.php 類必須能夠訪問 Distribution.php 中的 X 平方分布方法,以計(jì)算所得到的 X 平方分布值的尾數(shù)概率。 這個(gè)類中的實(shí)例變量列表值得注意,因?yàn)樗鼈兌x了由分析過程生成的結(jié)果對象。
這個(gè)結(jié)果對象包含了有關(guān)檢驗(yàn)的所有重要詳細(xì)信息,包括三個(gè)重要的 X 平方分布統(tǒng)計(jì) ― ChiSqObt、ChiSqProb 和 ChiSqCrit。關(guān)于如何計(jì)算每個(gè)實(shí)例變量的詳細(xì)信息,可以查閱該類的構(gòu)造函數(shù)方法,所有這些值都源自那里。 構(gòu)造函數(shù):X 平方分布檢驗(yàn)的主干 清單 4 給出了 X 平方分布的構(gòu)造函數(shù)代碼,它構(gòu)成了 X 平方分布檢驗(yàn)的主干。 清單 4. X 平方分布的構(gòu)造函數(shù) <?php class ChiSquare1D { function ChiSquare1D($ObsFreq, $Alpha=0.05, $ExpProb=FALSE) { $this->ObsFreq = $ObsFreq; $this->ExpProb = $ExpProb; $this->Alpha = $Alpha; $this->NumCells = count($this->ObsFreq); $this->DF = $this->NumCells - 1; $this->Total = $this->getTotal(); $this->ExpFreq = $this->getExpFreq(); $this->ChiSqObt = $this->getChiSqObt(); $this->ChiSqCrit = $this->getChiSqCrit(); $this->ChiSqProb = $this->getChiSqProb(); return true; } } ?> 構(gòu)造函數(shù)方法中值得注意的四個(gè)方面是:
1.構(gòu)造函數(shù)接受一個(gè)由觀察到的頻率組成的數(shù)組、alpha 概率斷開點(diǎn)(cutoff score)和一個(gè)可選的期望概率的數(shù)組。
2.前六行涉及了相對簡單的賦值和被記錄的計(jì)算值,以便于完整的結(jié)果對象可用于調(diào)用腳本。
3.最后四行執(zhí)行大量的獲取 X 平方分布統(tǒng)計(jì)的工作,這些統(tǒng)計(jì)是您最感興趣的。
4.該類只實(shí)現(xiàn) X 平方分布檢驗(yàn)邏輯。沒有與該類相關(guān)聯(lián)的輸出方法。 您可以研究本文的代碼下載中包含的類方法,以了解關(guān)于如何計(jì)算每個(gè)結(jié)果對象值的更多信息(請參閱參考資料)。 處理輸出問題 清單 5 中的代碼展示了使用 ChiSquare1D.php 類執(zhí)行 X 平方分布分析是多么容易。
它還演示了輸出問題的處理。 該腳本調(diào)用一個(gè)名為 ChiSquare1D_HTML.php 的包裝器腳本。這個(gè)包裝器腳本的目的是使 X 平方分布過程的邏輯與它的表示方面相分離。_HTML 后綴表明輸出針對的是標(biāo)準(zhǔn)的 Web 瀏覽器或其它顯示 HTML 的設(shè)備。 包裝器腳本的另一個(gè)目的是用便于理解數(shù)據(jù)的方式組織輸出。為了達(dá)到這個(gè)目的,該類包含了兩個(gè)用于顯示 X 平方分布分析結(jié)果的方法。showTableSummary 方法顯示了在代碼后面展示的第一個(gè)輸出表(表 2),而 showChiSquareStats 顯示了第二個(gè)輸出表(表 3)。
清單 5. 利用包裝器腳本組織數(shù)據(jù) <?php // beer_poll_analysis.php require_once "../init.php"; require_once PHP_MATH . "chi/ChiSquare1D_HTML.php"; $Headings = array("Keiths", "Olands", "Schooner", "Other"); $ObsFreq = array(285, 250, 215, 250); $Alpha = 0.05; $Chi = new ChiSquare1D_HTML($ObsFreq, $Alpha); $Chi->showTableSummary($Headings); echo "<br><br>"; $Chi->showChiSquareStats(); ?> 該腳本生成了下列輸出: 表 2. 運(yùn)行包裝器腳本而獲得的期望頻率和方差 Keiths Olands Schooner 其它 合計(jì) 觀察值 285 250 215 250 1000 期望值 250 250 250 250 1000 方差 4.90 0.00 4.90 0.00 9.80 表 3. 運(yùn)行包裝器腳本獲得的各種 X 平方分布統(tǒng)計(jì)信息統(tǒng)計(jì) DF 獲得值 概率 臨界值 X 平方分布 3 9.80 0.02 7.81 表 2 顯示了期望頻率以及每個(gè)單元的方差度量 (O - E)2 / E。方差值的和等于獲得的 X 平方分布(9.80)值,這個(gè)值顯示在匯總表的右下單元中。
表 3 報(bào)告了各種 X 平方分布統(tǒng)計(jì)信息。它包括了分析中使用的自由度,并再次報(bào)告了獲得的 X 平方分布值。獲得的 X 平方分布值被重新表示成尾數(shù)概率值 ― 在本例中是 0.02。這意味著,在虛假設(shè)條件下,觀察到 X 平方分布極限值 9.80 的概率是 2%(這是一個(gè)相當(dāng)?shù)偷母怕剩?nbsp;
如果您決定排除虛假設(shè) ― 結(jié)果可以按照零分布的隨機(jī)抽樣可變性獲得,那么大多數(shù)統(tǒng)計(jì)師都不會有爭議。您的民意測驗(yàn)結(jié)果更有可能反映了新斯科舍省的啤酒消費(fèi)者總體對于啤酒品牌偏好的真正差別。 為了確認(rèn)這一結(jié)論,可以用獲得的 X 平方分布值與臨界值進(jìn)行比較。 為什么臨界值很重要呢?臨界值建立在為該分析設(shè)置的某一重要級別(即 alpha 斷開級別)之上。alpha 斷開值按照慣例被設(shè)置為 0.05(上述分析使用的就是該值)。該設(shè)置用于查找 X 平方分布的抽樣分布中包含尾數(shù)區(qū)域等于 alpha 斷開值(0.05)的位置(或臨界值)。 在本文中,獲得的 X 平方分布值大于臨界值。這意味著超出了保持虛假設(shè)說明的閾值。
另一種假設(shè) ― 對象總體中存在著比例差異 ― 在統(tǒng)計(jì)上可能更正確。 在數(shù)據(jù)流的自動化分析中,alpha 斷開設(shè)置可以為知識-發(fā)現(xiàn)算法(例如 X 平方分布自動交互檢測(Chi Square Automatic Interaction Detection,CHIAD))設(shè)置輸出過濾,這樣的算法自身在發(fā)現(xiàn)真正有用的模式方面無法為人們詳細(xì)的指導(dǎo)。 重新進(jìn)行民意測驗(yàn) 單向 X 平方分布檢驗(yàn)的另一個(gè)有趣應(yīng)用是重新進(jìn)行民意測驗(yàn),以了解人們的回答是否已發(fā)生變化。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營問題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10