用 PHP 使 Web 數(shù)據(jù)區(qū)分進(jìn)入更高境界
發(fā)表時(shí)間:2024-02-24 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]計(jì)您的數(shù)據(jù)分析,做比簡單原始計(jì)數(shù)更多的事對(duì) Web 數(shù)據(jù)進(jìn)行有效和多層次的分析是許多面向 Web 企業(yè)能夠生存的關(guān)鍵因素,數(shù)據(jù)分析檢驗(yàn)的設(shè)計(jì)(和決策)通常是系統(tǒng)管理員和內(nèi)部應(yīng)用程序設(shè)計(jì)人員的工作,而他們可能除了能夠把原始計(jì)數(shù)制成表格之外,對(duì)統(tǒng)計(jì)學(xué)沒有更多的了解。在本文中,Paul Meagher ...
計(jì)您的數(shù)據(jù)分析,做比簡單原始計(jì)數(shù)更多的事
對(duì) Web 數(shù)據(jù)進(jìn)行有效和多層次的分析是許多面向 Web 企業(yè)能夠生存的關(guān)鍵因素,數(shù)據(jù)分析檢驗(yàn)的設(shè)計(jì)(和決策)通常是系統(tǒng)管理員和內(nèi)部應(yīng)用程序設(shè)計(jì)人員的工作,而他們可能除了能夠把原始計(jì)數(shù)制成表格之外,對(duì)統(tǒng)計(jì)學(xué)沒有更多的了解。在本文中,Paul Meagher 向 Web 開發(fā)人員傳授了將推論統(tǒng)計(jì)學(xué)應(yīng)用到 Web 數(shù)據(jù)流所需的技能和概念。
動(dòng)態(tài)網(wǎng)站不斷生成大量的數(shù)據(jù) — 訪問日志、民意測(cè)驗(yàn)和調(diào)查結(jié)果、客戶概要信息、訂單及其它,Web 開發(fā)人員的工作不僅是創(chuàng)建生成這些數(shù)據(jù)的應(yīng)用程序,而且還要開發(fā)使這些數(shù)據(jù)流有意義的應(yīng)用程序和方法。
通常,對(duì)于由管理站點(diǎn)所產(chǎn)生的不斷增長的數(shù)據(jù)分析需求,Web 開發(fā)人員的應(yīng)對(duì)是不夠的。一般而言,除了報(bào)告各種描述性統(tǒng)計(jì)信息之外,Web 開發(fā)人員并沒有其它更好的方法來反映數(shù)據(jù)流特征。有許多推論統(tǒng)計(jì)步驟(根據(jù)樣本數(shù)據(jù)估計(jì)總體參數(shù)的方法)可以被充分利用,但目前卻沒有應(yīng)用它們。
例如,Web 訪問統(tǒng)計(jì)信息(按當(dāng)前所編輯的)只不過是以各種方式進(jìn)行分組的頻率計(jì)數(shù)。以原始計(jì)數(shù)和百分比表示民意測(cè)驗(yàn)和調(diào)查結(jié)果的情況比比皆是。
開發(fā)人員用比較淺顯的方法處理數(shù)據(jù)流的統(tǒng)計(jì)分析或許已經(jīng)足夠了,我們不應(yīng)期望太多。畢竟,有從事較復(fù)雜的數(shù)據(jù)流分析的專業(yè)人士;他們是統(tǒng)計(jì)師和受過訓(xùn)練的分析師。當(dāng)組織需要的不僅僅是描述性統(tǒng)計(jì)時(shí),可以請(qǐng)他們加入。
但另一種應(yīng)對(duì)是承認(rèn)對(duì)推論統(tǒng)計(jì)學(xué)日益加深的了解正成為 Web 開發(fā)人員工作描述的一部分。動(dòng)態(tài)站點(diǎn)正在生成越來越多的數(shù)據(jù),事實(shí)表明,設(shè)法將這些數(shù)據(jù)變成有用的知識(shí)正是 Web 開發(fā)人員和系統(tǒng)管理員的責(zé)任。
我提倡采取后一種應(yīng)對(duì);本文旨在幫助 Web 開發(fā)人員和系統(tǒng)管理員學(xué)習(xí)(或重溫,如果知識(shí)已遺忘的話)將推論統(tǒng)計(jì)學(xué)應(yīng)用到 Web 數(shù)據(jù)流所需的設(shè)計(jì)和分析技能。
使 Web 數(shù)據(jù)與實(shí)驗(yàn)設(shè)計(jì)相關(guān)
將推論統(tǒng)計(jì)學(xué)應(yīng)用到 Web 數(shù)據(jù)流需要的不僅僅是學(xué)習(xí)作為各種統(tǒng)計(jì)檢驗(yàn)基礎(chǔ)的數(shù)學(xué)知識(shí)。將數(shù)據(jù)收集過程與實(shí)驗(yàn)設(shè)計(jì)中的關(guān)鍵差別關(guān)聯(lián)起來的能力同樣很重要:測(cè)量尺度是什么?樣本的代表性如何?總體是什么?正在檢驗(yàn)的假設(shè)是什么?
要將推論統(tǒng)計(jì)學(xué)應(yīng)用到 Web 數(shù)據(jù)流,需要先把結(jié)果看作是由實(shí)驗(yàn)設(shè)計(jì)生成的;然后選擇適用于該實(shí)驗(yàn)設(shè)計(jì)的分析過程。即使您可能認(rèn)為將 Web 民意測(cè)驗(yàn)和訪問日志數(shù)據(jù)看作實(shí)驗(yàn)的結(jié)果是多此一舉,但這樣做確實(shí)很重要。為什么?
1.這將幫助您選擇適當(dāng)?shù)慕y(tǒng)計(jì)檢驗(yàn)方法。
2.這將幫助您從收集的數(shù)據(jù)中得出適當(dāng)?shù)慕Y(jié)論。
在確定要使用哪些適當(dāng)?shù)慕y(tǒng)計(jì)檢驗(yàn)時(shí),實(shí)驗(yàn)設(shè)計(jì)的一個(gè)重要方面是選擇數(shù)據(jù)收集的衡量尺度。
衡量標(biāo)準(zhǔn)的示例
測(cè)量尺度只是指定了一個(gè)對(duì)所感興趣的現(xiàn)象分配符號(hào)、字母或數(shù)字的步驟。例如,千克尺度允許您給一個(gè)物體分配數(shù)字,根據(jù)測(cè)量儀器的標(biāo)準(zhǔn)化的偏移量指示該物體的重量。
有四種重要的衡量標(biāo)準(zhǔn):
定比尺度(ratio)— 千克尺度是定比尺度的一個(gè)示例 ? 分配給物體屬性的符號(hào)具有數(shù)字意義。您可以對(duì)這些符號(hào)執(zhí)行各種運(yùn)算(如計(jì)算比率),而對(duì)于通過使用功能不那么強(qiáng)大的衡量標(biāo)準(zhǔn)獲得的數(shù)值,您不能使用這些運(yùn)算。
定距尺度(interval)— 在定距尺度中,任意兩個(gè)相鄰測(cè)量單位之間的距離(也稱為間距)是相等的,但零點(diǎn)是任意的。定距尺度的示例包括對(duì)經(jīng)度和潮汐高度的度量,以及不同年份始末的度量。定距尺度的值可以加減,但乘除則沒有意義。
定序尺度(rank)— 定序尺度可應(yīng)用于一組有順序的數(shù)據(jù),有順序指的是屬于該尺度的值和觀察值可以按順序排列或附帶有評(píng)級(jí)尺度。常見的示例包括“好惡”民意測(cè)驗(yàn),其中將數(shù)字分配給各個(gè)屬性(從 1 = 非常厭惡到 5 = 非常喜歡)。通常,一組有序數(shù)據(jù)的類別有自然的順序,但尺度上相鄰點(diǎn)之間的差距不必總是相同的。對(duì)于有順序的數(shù)據(jù),您可以計(jì)數(shù)和排序,但不能測(cè)量。
定類尺度(nominal)— 衡量標(biāo)準(zhǔn)的定類尺度是衡量標(biāo)準(zhǔn)中最弱的一種形式,主要指將項(xiàng)目分配給組或類別。這種測(cè)量不帶數(shù)量信息,并且不表示對(duì)項(xiàng)目進(jìn)行排序。對(duì)定類尺度數(shù)據(jù)執(zhí)行的主要數(shù)值運(yùn)算是每一類別中項(xiàng)目的頻率計(jì)數(shù)。
下表對(duì)比了每種衡量標(biāo)準(zhǔn)的特征:
衡量標(biāo)準(zhǔn)尺度 屬性具有絕對(duì)的數(shù)字含義嗎? 能執(zhí)行大多數(shù)數(shù)學(xué)運(yùn)算嗎?
定比尺度 是。 是。
定距尺度 對(duì)于定距尺度是這樣;零點(diǎn)是任意的。 加和減。
定序尺度 不是。 計(jì)數(shù)和排序。
定類尺度 不是。 只能計(jì)數(shù)。
在本文中,我將主要討論通過使用測(cè)量的定類尺度收集的數(shù)據(jù),以及適用于定類數(shù)據(jù)的推論技術(shù)。
使用定類尺度
幾乎所有 Web 用戶 — 設(shè)計(jì)人員、客戶和系統(tǒng)管理員 — 都熟悉定類尺度。Web 民意測(cè)驗(yàn)和訪問日志類似,因?yàn)樗鼈兂3J褂枚惓叨茸鳛楹饬繕?biāo)準(zhǔn)。在 Web 民意測(cè)驗(yàn)中,用戶常常通過請(qǐng)求人們選擇回答選項(xiàng)(如“您偏愛品牌 A、品牌 B,還是品牌 C?”)來衡量人們的偏好。通過對(duì)各類回答的頻率進(jìn)行計(jì)數(shù)來匯總數(shù)據(jù)。
類似的,測(cè)量網(wǎng)站流量的常用方法是對(duì)一個(gè)星期內(nèi)一天之中的每次點(diǎn)擊或訪問都劃分給這一天,然后對(duì)每一天出現(xiàn)的點(diǎn)擊或訪問的數(shù)目計(jì)數(shù)。另外,您可以(也確實(shí)可以)通過瀏覽器類型、操作系統(tǒng)類型和訪問者所在的國家或地區(qū) — 以及任何您想得到的分類尺度 — 對(duì)點(diǎn)擊計(jì)數(shù)。
因?yàn)?Web 民意測(cè)驗(yàn)和訪問統(tǒng)計(jì)信息都需要對(duì)數(shù)據(jù)歸入某一特定性質(zhì)類別的次數(shù)進(jìn)行計(jì)數(shù),所以可以用相似的無參數(shù)統(tǒng)計(jì)檢驗(yàn)(允許您根據(jù)分布形狀而不是總體參數(shù)作出推論的檢驗(yàn))來分析它們。
David Sheskin 在他的 Handbook of Parametric and Non-Parametric Statistical Procedures 一書(第 19 頁, 1997)中,是這樣區(qū)分參數(shù)檢驗(yàn)和非參數(shù)檢驗(yàn)的:
本書中將過程分類為參數(shù)檢驗(yàn)和非參數(shù)檢驗(yàn)所使用的區(qū)別主要基于被分析數(shù)據(jù)所代表的測(cè)量級(jí)別。作為通用規(guī)則,評(píng)估類別/定類尺度數(shù)據(jù)和順序/等級(jí)-順序數(shù)據(jù)的推論統(tǒng)計(jì)檢驗(yàn)被歸類為非參數(shù)檢驗(yàn),而那些評(píng)估定距尺度數(shù)據(jù)或定比尺度數(shù)據(jù)的檢驗(yàn)則被歸類為參數(shù)檢驗(yàn)。
當(dāng)作為參數(shù)檢驗(yàn)基礎(chǔ)的某些假設(shè)值得懷疑時(shí),非參數(shù)檢驗(yàn)也很有用;當(dāng)不滿足參數(shù)假設(shè)時(shí),非參數(shù)檢驗(yàn)在檢測(cè)總體差異時(shí)有很大的作用。對(duì)于 Web 民意測(cè)驗(yàn)的示例,我使用了非參數(shù)分析過程,因?yàn)?Web 民意測(cè)驗(yàn)通常使用定類尺度來記錄投票者的偏好。
我并不是在建議 Web 民意測(cè)驗(yàn)和 Web 訪問統(tǒng)計(jì)信息應(yīng)該始終使用定類尺度衡量標(biāo)準(zhǔn),或者說非參數(shù)統(tǒng)計(jì)檢驗(yàn)是唯一可用于分析這類數(shù)據(jù)的方法。不難設(shè)想有(譬如)這樣的民意測(cè)驗(yàn)和調(diào)查,它們要求用戶對(duì)每個(gè)選項(xiàng)提供數(shù)值評(píng)分(從 1 到 100),對(duì)此,參數(shù)性的統(tǒng)計(jì)檢驗(yàn)就比較合適。
盡管如此,許多 Web 數(shù)據(jù)流包括編輯類別計(jì)數(shù)數(shù)據(jù),而且通過定義定距尺度(譬如從 17 到 21)并將每個(gè)數(shù)據(jù)點(diǎn)分配給一個(gè)定距尺度(如“年輕人”),可以將這些數(shù)據(jù)(通過使用功能更強(qiáng)大的衡量標(biāo)準(zhǔn)測(cè)量)變成定類尺度數(shù)據(jù)。頻率數(shù)據(jù)的普遍存在(已經(jīng)是 Web 開發(fā)人員經(jīng)驗(yàn)的一部分),使得專注于非參數(shù)統(tǒng)計(jì)學(xué)成為學(xué)習(xí)如何將推論技術(shù)應(yīng)用到數(shù)據(jù)流的良好起點(diǎn)。
為了使本文保持合理的篇幅,我將把對(duì) Web 數(shù)據(jù)流分析的討論局限于 Web 民意測(cè)驗(yàn)。但是請(qǐng)記住,許多 Web 數(shù)據(jù)流都可以用定類計(jì)數(shù)數(shù)據(jù)表示,而我討論的推論技術(shù)將使您能做比報(bào)告簡單的計(jì)數(shù)數(shù)據(jù)更多的事情。
從抽樣開始
假設(shè)您在您的站點(diǎn) www.NovaScotiaBeerDrinkers.com 上進(jìn)行每周一次的民意測(cè)驗(yàn),詢問成員對(duì)各種主題的意見。您已經(jīng)創(chuàng)建了一個(gè)民意測(cè)驗(yàn),詢問成員喜愛的啤酒品牌(在加拿大新斯科舍。∟ova Scotia)有三種知名的啤酒品牌:Keiths、Olands 和 Schooner)。為了使調(diào)查盡可能范圍廣泛,您在回答中包括“其它”。
您收到 1,000 條回答,請(qǐng)觀察到表 1 中的結(jié)果。(本文顯示的結(jié)果只作為演示之用,并不基于任何實(shí)際調(diào)查。)
表 1. 啤酒民意測(cè)驗(yàn)Keiths Olands Schooner 其它
285(28.50%) 250(25.00%) 215(21.50%) 250(25.00%)
這些數(shù)據(jù)看上去支持這樣的結(jié)論:Keiths 是最受新斯科舍省居民歡迎的品牌。根據(jù)這些數(shù)字,您能得出這一結(jié)論嗎?換句話說,您能根據(jù)從樣本獲得的結(jié)果對(duì)新斯科舍省的啤酒消費(fèi)者總體作出推論嗎?
許多與樣本收集方式有關(guān)的因素會(huì)使相對(duì)受歡迎程度的推論不正確?赡軜颖局邪诉^多 Keiths 釀酒廠的雇員;可能您沒有完全預(yù)防一個(gè)人投多次票的情況,而這個(gè)人可能使結(jié)果出現(xiàn)偏差;或許被挑選出來投票的人與沒有被挑選出來投票的人不同;或許上網(wǎng)的投票人與不上網(wǎng)的投票人不同。
大多數(shù) Web 民意測(cè)驗(yàn)都存在這些解釋上的困難。當(dāng)您試圖從樣本統(tǒng)計(jì)數(shù)據(jù)得出有關(guān)總體參數(shù)的結(jié)論時(shí),就會(huì)出現(xiàn)這些解釋上的困難。從實(shí)驗(yàn)設(shè)計(jì)觀點(diǎn)看,在收集數(shù)據(jù)之前首先要問的一個(gè)問題是:能否采取步驟幫助確保樣本能夠代表所研究的總體。
如果對(duì)所研究的總體得出結(jié)論是您做 Web 民意測(cè)驗(yàn)的動(dòng)機(jī)(而不是為站點(diǎn)訪問者提供的消遣),那么您應(yīng)該實(shí)現(xiàn)一些技術(shù),以確保一人一票(所以,他們必須用唯一的標(biāo)識(shí)登錄才能投票),并確保隨機(jī)選擇投票者樣本(例如,隨機(jī)選擇成員的子集,然后給他們發(fā)電子郵件,鼓勵(lì)他們投票)。
最終,目標(biāo)是消除(至少減少)各種偏差,它們可能會(huì)削弱對(duì)所研究總體得出結(jié)論的能力。
檢驗(yàn)假設(shè)
假設(shè)新斯科舍省啤酒消費(fèi)者統(tǒng)計(jì)樣本沒有發(fā)生偏差,您現(xiàn)在能夠得出 Keiths 是最受歡迎品牌這一結(jié)論嗎?
要回答這個(gè)問題,請(qǐng)考慮一個(gè)相關(guān)的問題:如果您要獲得另一個(gè)新斯科舍省啤酒消費(fèi)者的樣本,您希望看到完全相同的結(jié)果嗎?實(shí)際上,您會(huì)希望不同樣本中所觀察到的結(jié)果有一定的變化。
考慮這個(gè)預(yù)期的抽樣可變性,您可能懷疑通過隨機(jī)抽樣可變性是否比反映所研究總體中的實(shí)際差異能更好地說明觀察到的品牌偏好。在統(tǒng)計(jì)學(xué)術(shù)語中,這個(gè)抽樣可變性說明被稱為虛假設(shè)(null hypothesis)。(虛假設(shè)由符號(hào) Ho 表示)在本例中,用公式將它表示成這樣的語句:在作出回答的所有類別中,各種回答的期望數(shù)目相同。
Ho:# Keiths = # Olands = # Schooner = # Other
如果您能夠排除虛假設(shè),那么您在回答 Keiths 是否是最受歡迎品牌這個(gè)最初的問題上取得了一些進(jìn)展。那么,另一個(gè)可接受的假設(shè)是在所研究的總體中,各種回答所占比例不同。
這個(gè)“先檢驗(yàn)虛假設(shè)”邏輯在民意測(cè)驗(yàn)數(shù)據(jù)分析中的多個(gè)階段都適用。排除這一虛假設(shè),這樣數(shù)據(jù)就不會(huì)完全不同,隨后您可以繼續(xù)檢驗(yàn)一個(gè)更具體的虛假設(shè),即 Keiths 和 Schooner,或者 Keiths 與其它所有品牌之間沒有差別。
您繼續(xù)檢驗(yàn)虛假設(shè)而不是直接評(píng)估另一假設(shè),是因?yàn)閷?duì)于在虛假設(shè)條件下人們希望觀察到的事物進(jìn)行統(tǒng)計(jì)建模更容易。接下來,我將演示如何對(duì)在虛假設(shè)下所期望的事物建模,這樣我就可以將觀察結(jié)果與在虛假設(shè)條件下所期望的結(jié)果加以比較。
對(duì)虛假設(shè)建模:X 平方分布統(tǒng)計(jì)
到目前為止,您已經(jīng)使用一個(gè)報(bào)告每種回答選項(xiàng)頻率計(jì)數(shù)(和百分比)的表匯總了 Web 民意測(cè)驗(yàn)的結(jié)果。要檢驗(yàn)虛假設(shè)(表單元頻率之間不存在差別),計(jì)算每個(gè)表單元與您在虛假設(shè)條件下所期望值的總體偏差度量要容易得多。
在這個(gè)啤酒歡迎度民意測(cè)驗(yàn)的示例中,在虛假設(shè)條件下的期望頻率如下:
期望頻率 = 觀察數(shù)目 / 回答選項(xiàng)的數(shù)目
期望頻率 = 1000 / 4
期望頻率 = 250
要計(jì)算每個(gè)單元中回答的內(nèi)容與期望頻率相差多少的總體度量,您可以將所有的差別總計(jì)到一個(gè)反映觀察頻率與期望頻率相差多少的總體度量中:(285 - 250) + (250 - 250) + (215 - 250) + (250 - 250)。
如果您這么做,您會(huì)發(fā)現(xiàn)期望頻率是 0,因?yàn)槠骄档钠畹暮陀肋h(yuǎn)是 0。要解決這個(gè)問題,應(yīng)當(dāng)取所有差值的平方(這就是X 平方分布(Chi Square)中平方的由來)。最后,為了使各樣本(這些樣本具有不同的觀察數(shù))的這個(gè)值具有可比性(換句話說,使它標(biāo)準(zhǔn)化),將該值除以期望頻率。因此,X 平方分布統(tǒng)計(jì)的公式如下所示(“O”表示“觀察頻率”,“E”等于“期望頻率”):
圖 1. X 平方分布統(tǒng)計(jì)的公式
如果計(jì)算啤酒歡迎度民意測(cè)驗(yàn)數(shù)據(jù)的 X 平方分布統(tǒng)計(jì),會(huì)得到值 9.80。要檢驗(yàn)虛假設(shè),需要知道在假設(shè)存在隨機(jī)抽樣可變性的情況下獲得這么一個(gè)極限值的概率。要得出這一概率,需要理解 X 平方分布的抽樣分布是什么樣的。
觀察 X 平方分布的抽樣分布
圖 2. X 平方分布圖
在每幅圖中,橫軸表示所得到的 X 平方分布值大。▓D中所示范圍從 0 到 10)。縱軸顯示各 X 平方分布值的概率(或稱為出現(xiàn)的相對(duì)頻率)。
當(dāng)您研究這些 X 平方分布圖時(shí),請(qǐng)注意,當(dāng)您在實(shí)驗(yàn)中改變自由度(即 df)時(shí),概率函數(shù)的形狀會(huì)改變。對(duì)于民意測(cè)驗(yàn)數(shù)據(jù)的示例,自由度是這樣計(jì)算的:記下民意測(cè)驗(yàn)中的回答選項(xiàng)(k)的數(shù)目,然后用這個(gè)值減 1(df = k - 1)。
通常,當(dāng)您在實(shí)驗(yàn)中增加回答選項(xiàng)的數(shù)目時(shí),獲得較大 X 平方分布值的概率會(huì)下降。這是因?yàn)楫?dāng)增加回答選項(xiàng)時(shí),就增加了方差值的數(shù)目 — (觀察值 - 期望值)2 — 您可以求它的總數(shù)。因此,當(dāng)您增加回答選項(xiàng)時(shí),獲得大的 X 平方分布值的統(tǒng)計(jì)概率應(yīng)該增加,而獲得較小 X 平方分布值的概率會(huì)減少。這就是為什么 X 平方分布的抽樣分布的形狀隨著 df 值的不同而變化的原因。
此外,要注意到通常人們對(duì) X 平方分布結(jié)果的小數(shù)點(diǎn)部分不感興趣,而是對(duì)位于所獲得的值右邊曲線的總計(jì)部分感興趣。該尾數(shù)概率告訴您獲取一個(gè)象您觀察到的極限值是可能(如一個(gè)大的尾數(shù)區(qū)域)還是不可能(小的尾數(shù)區(qū)域)。(實(shí)際上,我不使用這些圖來計(jì)算尾數(shù)概率,因?yàn)槲铱梢詫?shí)現(xiàn)數(shù)學(xué)函數(shù)來返回給定 X 平方分布值的尾數(shù)概率。我在本文后面討論的 X 平方分布程序中會(huì)采用這種做法。)
要進(jìn)一步了解這些圖是如何派生出來的,可以看看如何模擬與 df = 2(它表示 k = 3)對(duì)應(yīng)的圖的內(nèi)容。想象把數(shù)字 1、2 和 3 放進(jìn)帽子里,搖一搖,選一個(gè)數(shù)字,然后記錄所選的數(shù)字作為一次嘗試。對(duì)這個(gè)實(shí)驗(yàn)進(jìn)行 300 次嘗試,然后計(jì)算 1、2 和 3 出現(xiàn)的頻率。
每次您做這個(gè)實(shí)驗(yàn)時(shí),都應(yīng)當(dāng)期望結(jié)果有稍微不同的頻率分布,這一分布反映了抽樣的可變性,同時(shí),這個(gè)分布又不會(huì)真正偏離可能的概率范圍。
下面的 Multinomial 類實(shí)現(xiàn)了這一想法。您可以用以下值初始化該類:要做實(shí)驗(yàn)的次數(shù)、每個(gè)實(shí)驗(yàn)中所做嘗試的次數(shù),以及每次試驗(yàn)的選項(xiàng)數(shù)目。每個(gè)實(shí)驗(yàn)的結(jié)果記錄在一個(gè)名為 Outcomes 的數(shù)組中。
清單 1. Multinomial 類的內(nèi)容
<?php
// Multinomial.php
// Copyright 2003, Paul Meagher
// Distributed under LGPL
class Multinomial {
var $NExps;
var $NTrials;
var $NOptions;
var $Outcomes = array();
function Multinomial($NExps, $NTrials, $NOptions) {
$this->NExps = $NExps;
$this->NTrials = $NTrials;
$this->NOptions = $NOptions;
for ($i=0; $i < $this->NExps; $i++) {
$this->Outcomes[$i] = $this->runExperiment();
}
}
function runExperiment() {
$Outcome = array();
for ($i = 0; $i < $this->NExps; $i++){
$choice = rand(1,$this->NOptions);
$Outcome[$choice]++;
}
return $Outcome;
}
}
?>
請(qǐng)注意,runExperiment 方法是該腳本中非常重要的一部分,它保證在每次實(shí)驗(yàn)中所做出的選擇是隨機(jī)的,并且跟蹤到目前為止在模擬實(shí)驗(yàn)中做出了哪些選擇。
為了找到 X 平方分布統(tǒng)計(jì)的抽樣分布,只需獲取每次實(shí)驗(yàn)的結(jié)果,并且計(jì)算該結(jié)果的 X 平方分布統(tǒng)計(jì)。由于隨機(jī)抽樣的可變性,因此這個(gè) X 平方分布統(tǒng)計(jì)會(huì)隨實(shí)驗(yà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é)果可視化,對(duì)我來說,最簡單的方法就是將 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 民意測(cè)驗(yàn)結(jié)果、每周的流量報(bào)告或者客戶品牌偏好報(bào)告),而不是您使用的模擬數(shù)據(jù)。您可能還會(huì)對(duì)該軟件生成的其它輸出 — 例如匯總表和尾數(shù)概率 — 感興趣。
X 平方分布的實(shí)例變量
我開發(fā)的基于 php 的 X 平方分布軟件包由用于分析頻率數(shù)據(jù)的類構(gòu)成,頻率數(shù)據(jù)是按照一維或兩維(ChiSquare1D.php 和 ChiSquare2D.php)進(jìn)行分類的。我的討論將僅局限于說明 ChiSquare1D.php 類的工作原理,以及說明如何將其應(yīng)用于一維 Web 民意測(cè)驗(yàn)數(shù)據(jù)。
在繼續(xù)之前,應(yīng)當(dāng)說明:按照兩維對(duì)數(shù)據(jù)進(jìn)行分類(例如,按照性別對(duì)啤酒偏好進(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é)果對(duì)象。這個(gè)結(jié)果對(duì)象包含了有關(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.前六行涉及了相對(duì)簡單的賦值和被記錄的計(jì)算值,以便于完整的結(jié)果對(duì)象可用于調(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é)果對(duì)象值的更多信息(請(qǐng)參閱參考資料)。
處理輸出問題
清單 5 中的代碼展示了使用 ChiSquare1D.php 類執(zhí)行 X 平方分布分析是多么容易。它還演示了輸出問題的處理。
該腳本調(diào)用一個(gè)名為 ChiSquare1D_HTML.php 的包裝器腳本。這個(gè)包裝器腳本的目的是使 X 平方分布過程的邏輯與它的表示方面相分離。_HTML 后綴表明輸出針對(duì)的是標(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ù)偷母怕剩?br>
如果您決定排除虛假設(shè) — 結(jié)果可以按照零分布的隨機(jī)抽樣可變性獲得,那么大多數(shù)統(tǒng)計(jì)師都不會(huì)有爭議。您的民意測(cè)驗(yàn)結(jié)果更有可能反映了新斯科舍省的啤酒消費(fèi)者總體對(duì)于啤酒品牌偏好的真正差別。
為了確認(rèn)這一結(jié)論,可以用獲得的 X 平方分布值與臨界值進(jìn)行比較。
為什么臨界值很重要呢?臨界值建立在為該分析設(shè)置的某一重要級(jí)別(即 alpha 斷開級(jí)別)之上。alpha 斷開值按照慣例被設(shè)置為 0.05(上述分析使用的就是該值)。該設(shè)置用于查找 X 平方分布的抽樣分布中包含尾數(shù)區(qū)域等于 alpha 斷開值(0.05)的位置(或臨界值)。
在本文中,獲得的 X 平方分布值大于臨界值。這意味著超出了保持虛假設(shè)說明的閾值。另一種假設(shè) — 對(duì)象總體中存在著比例差異 — 在統(tǒng)計(jì)上可能更正確。
在數(shù)據(jù)流的自動(dòng)化分析中,alpha 斷開設(shè)置可以為知識(shí)-發(fā)現(xiàn)算法(例如 X 平方分布自動(dòng)交互檢測(cè)(Chi Square Automatic Interaction Detection,CHIAD))設(shè)置輸出過濾,這樣的算法自身在發(fā)現(xiàn)真正有用的模式方面無法為人們?cè)敿?xì)的指導(dǎo)。
重新進(jìn)行民意測(cè)驗(yàn)
單向 X 平方分布檢驗(yàn)的另一個(gè)有趣應(yīng)用是重新進(jìn)行民意測(cè)驗(yàn),以了解人們的回答是否已發(fā)生變化。
假定過一段時(shí)間后,您打算對(duì)新斯科舍省的啤酒消費(fèi)者進(jìn)行另一次 Web 民意測(cè)驗(yàn)。您再次詢問他們喜愛的啤酒品牌,現(xiàn)在觀察到下列結(jié)果:
表 4. 新的啤酒民意測(cè)驗(yàn)
Keiths Olands Schooner 其它
385 (27.50%) 350 (25.00%) 315 (22.50%) 350 (25.00%)
舊的數(shù)據(jù)如下所示:
表 1. 舊的啤酒民意測(cè)驗(yàn)(再一次顯示)
Keiths Olands Schooner 其它
285 (28.50%) 250 (25.00%) 215 (21.50%) 250 (25.00%)
民意測(cè)驗(yàn)結(jié)果之間的明顯區(qū)別在于,第一次民意測(cè)驗(yàn)有 1,000 個(gè)調(diào)查對(duì)象,而第二次有 1,400 個(gè)調(diào)查對(duì)象。這些額外調(diào)查對(duì)象的主要影響是,使得每個(gè)回答情形的頻率計(jì)數(shù)增加了 100 點(diǎn)。
當(dāng)準(zhǔn)備好對(duì)新的民意測(cè)驗(yàn)進(jìn)行分析時(shí),可以利用缺省的方法 — 計(jì)算期望頻率來分析數(shù)據(jù),也可以利用每個(gè)結(jié)果的期望概率(基于前一次民意測(cè)驗(yàn)所觀察到的比例)來初始化分析。在第二種情形中,您將以前獲得的比例裝入期望概率數(shù)組($ExpProb),并使用它們來計(jì)算每個(gè)回答選項(xiàng)的期望頻率值。
清單 6 顯示了用于檢測(cè)偏好變化的啤酒民意測(cè)驗(yàn)分析代碼:
清單 6. 檢測(cè)偏好的變化
<?php
// beer_repoll_analysis.php
require_once "../init.php";
require PHP_MATH . "chi/ChiSquare1D_HTML.php";
$Headings = array("Keiths", "Olands", "Schooner", "Other");
$ObsFreq = array(385, 350, 315, 350);
$Alpha = 0.05;
$ExpProb = array(.285, .250, .215, .250);
$Chi = new ChiSquare1D_HTML($ObsFreq, $Alpha, $ExpProb);
$Chi->showTableSummary($Headings);
echo "<br><br>";
$Chi->showChiSquareStats();
?>
表 5 和 6 顯示了 beer_repoll_analysis.php 腳本生成的 HTML 輸出:
表 5. 運(yùn)行 beer_repoll_analysis.php 而獲得的期望頻率和方差
Keiths Olands Schooner 其它 合計(jì)
觀察值 385 350 315 350 1400
期望值 399 350 301 350 1400
方差 0.49 0.00 0.65 0.00 1.14
表 6. 運(yùn)行 beer_repoll_analysis.php 所獲得的各種 X 平方分布統(tǒng)計(jì)信息統(tǒng)計(jì)
DF 獲得值 概率 臨界值
X 平方分布 3 1.14 0.77 7.81
表 6 表明,在虛假設(shè)條件下,獲得 X 平方分布值 1.14 的概率是 77%。我們不能排除這樣的虛假設(shè),即自從上一次民意測(cè)驗(yàn)以來,新斯科舍省啤酒消費(fèi)者偏好已經(jīng)發(fā)生了變化。觀察頻率和期望頻率之間的任何差異都可以解釋為新斯科舍省相同啤酒消費(fèi)者的期望抽樣可變性。考慮到最初民意測(cè)驗(yàn)結(jié)果的轉(zhuǎn)換只是通過向前面每個(gè)民意測(cè)驗(yàn)結(jié)果添加常數(shù) 100 完成的,那么這種零發(fā)現(xiàn)也不應(yīng)當(dāng)有什么令人吃驚的地方了。
但是,您可以設(shè)想結(jié)果已經(jīng)發(fā)生了變化,并且設(shè)想這些結(jié)果可能暗示著另一種品牌的啤酒正在變得更加流行(請(qǐng)注意表 5 中每列底部報(bào)告的方差大小)。您可以進(jìn)一步設(shè)想這一發(fā)現(xiàn)對(duì)所討論的釀酒廠的財(cái)務(wù)方面有顯著的含義,因?yàn)榫瓢衫习逋鶗?huì)采購酒吧里最暢銷的啤酒。
這些結(jié)果將受到釀酒廠老板極其詳細(xì)的檢查,他們會(huì)對(duì)分析過程和實(shí)驗(yàn)方法的適合性提出疑問;特別地,他們會(huì)對(duì)樣本的代表性提出疑問。如果您打算進(jìn)行一次 Web 實(shí)驗(yàn),該實(shí)驗(yàn)可能具有重要的實(shí)際含義,那么,對(duì)于用來收集數(shù)據(jù)的實(shí)驗(yàn)方法和用來從數(shù)據(jù)得出推論的分析技術(shù),您需要給予同等的關(guān)注。
因此,本文不僅為您奠定了一個(gè)良好的基礎(chǔ),以便于可以加強(qiáng)您對(duì) Web 數(shù)據(jù)的有效理解,它還提供了一些建議,這些建議是有關(guān)如何保護(hù)您的統(tǒng)計(jì)檢驗(yàn)選擇的,并且使得從數(shù)據(jù)獲得的結(jié)論更具合理性。
應(yīng)用學(xué)到的知識(shí)
在本文中,您已經(jīng)了解了如何將推論統(tǒng)計(jì)學(xué)應(yīng)用于普遍存在的用于匯總 Web 數(shù)據(jù)流的頻率數(shù)據(jù),側(cè)重于 Web 民意測(cè)驗(yàn)數(shù)據(jù)的分析。但是,所討論的簡單的單向 X 平方分布分析過程也能夠有效地應(yīng)用于其它類型的數(shù)據(jù)流(訪問日志、調(diào)查結(jié)果、客戶概要信息和客戶訂單),以便將原始數(shù)據(jù)轉(zhuǎn)換成有用的知識(shí)。
在將推論統(tǒng)計(jì)學(xué)應(yīng)用于 Web 數(shù)據(jù)時(shí),我還介紹了希望將數(shù)據(jù)流視作 Web 實(shí)驗(yàn)的結(jié)果,以便于在作推論時(shí)提高引用實(shí)驗(yàn)設(shè)計(jì)考慮事項(xiàng)的可能性。通常由于您對(duì)于數(shù)據(jù)采集的過程缺乏足夠的控制,因此您不能做出推論。但是,如果在將實(shí)驗(yàn)的設(shè)計(jì)原則應(yīng)用于 Web 數(shù)據(jù)收集過程時(shí)您更加主動(dòng)(例如,在您的 Web 民意測(cè)驗(yàn)過程中隨機(jī)選擇投票者),那么可以改變這種情形。
最后,我演示了如何模擬不同自由度的 X 平方分布的抽樣分布,而不只是僅說明其來源。在這樣做的過程中,對(duì)于測(cè)量類別的期望頻率小于 5(換而言之,即小 N 實(shí)驗(yàn))— 我還演示了一種變通方法(使用小 $NTrials 值模擬實(shí)驗(yàn)的抽樣分布)來禁止使用 X 平方分布檢驗(yàn)。因此,我不只是使用研究過程中的 df 來計(jì)算樣本結(jié)果的概率,對(duì)于數(shù)量較小的嘗試,可能還需要使用 $NTrials 值作為參數(shù)來求得所觀察 X 平方分布結(jié)果的概率。
考慮您可能會(huì)如何分析小 N 實(shí)驗(yàn)是值得的,因?yàn)槟ǔ?赡芟M跀?shù)據(jù)采集完成之前分析您的數(shù)據(jù) — 當(dāng)每次觀察的代價(jià)都很昂貴時(shí),當(dāng)觀察需要花費(fèi)很長時(shí)間才能獲得時(shí),或者只是因?yàn)槟芎闷。在嘗試這一級(jí)別的 Web 數(shù)據(jù)分析時(shí),最好謹(jǐn)記下面這兩個(gè)問題:
*您是否有理由在小 N 條件下進(jìn)行推論?
*模擬有助于您決定在這些環(huán)境下獲得什么推論嗎?