亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Home php教程 php手冊(cè) 用 PHP 使 Web 數(shù)據(jù)分析進(jìn)入更高境界

用 PHP 使 Web 數(shù)據(jù)分析進(jìn)入更高境界

Jun 21, 2016 am 09:14 AM
php quot this web

web|數(shù)據(jù)

計(jì)您的數(shù)據(jù)分析,做比簡(jiǎn)單原始計(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é)沒(méi)有更多的了解。在本文中,Paul Meagher 向 Web 開(kāi)發(fā)人員傳授了將推論統(tǒng)計(jì)學(xué)應(yīng)用到 Web 數(shù)據(jù)流所需的技能和概念。

動(dòng)態(tài)網(wǎng)站不斷生成大量的數(shù)據(jù) — 訪問(wèn)日志、民意測(cè)驗(yàn)和調(diào)查結(jié)果、客戶(hù)概要信息、訂單及其它,Web 開(kāi)發(fā)人員的工作不僅是創(chuàng)建生成這些數(shù)據(jù)的應(yīng)用程序,而且還要開(kāi)發(fā)使這些數(shù)據(jù)流有意義的應(yīng)用程序和方法。

通常,對(duì)于由管理站點(diǎn)所產(chǎn)生的不斷增長(zhǎng)的數(shù)據(jù)分析需求,Web 開(kāi)發(fā)人員的應(yīng)對(duì)是不夠的。一般而言,除了報(bào)告各種描述性統(tǒng)計(jì)信息之外,Web 開(kāi)發(fā)人員并沒(méi)有其它更好的方法來(lái)反映數(shù)據(jù)流特征。有許多推論統(tǒng)計(jì)步驟(根據(jù)樣本數(shù)據(jù)估計(jì)總體參數(shù)的方法)可以被充分利用,但目前卻沒(méi)有應(yīng)用它們。

例如,Web 訪問(wèn)統(tǒng)計(jì)信息(按當(dāng)前所編輯的)只不過(guò)是以各種方式進(jìn)行分組的頻率計(jì)數(shù)。以原始計(jì)數(shù)和百分比表示民意測(cè)驗(yàn)和調(diào)查結(jié)果的情況比比皆是。

開(kāi)發(fā)人員用比較淺顯的方法處理數(shù)據(jù)流的統(tǒng)計(jì)分析或許已經(jīng)足夠了,我們不應(yīng)期望太多。畢竟,有從事較復(fù)雜的數(shù)據(jù)流分析的專(zhuān)業(yè)人士;他們是統(tǒng)計(jì)師和受過(guò)訓(xùn)練的分析師。當(dāng)組織需要的不僅僅是描述性統(tǒng)計(jì)時(shí),可以請(qǐng)他們加入。

但另一種應(yīng)對(duì)是承認(rèn)對(duì)推論統(tǒng)計(jì)學(xué)日益加深的了解正成為 Web 開(kāi)發(fā)人員工作描述的一部分。動(dòng)態(tài)站點(diǎn)正在生成越來(lái)越多的數(shù)據(jù),事實(shí)表明,設(shè)法將這些數(shù)據(jù)變成有用的知識(shí)正是 Web 開(kāi)發(fā)人員和系統(tǒng)管理員的責(zé)任。

我提倡采取后一種應(yīng)對(duì);本文旨在幫助 Web 開(kāi)發(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ù)收集過(guò)程與實(shí)驗(yàn)設(shè)計(jì)中的關(guān)鍵差別關(guān)聯(lián)起來(lái)的能力同樣很重要:測(cè)量尺度是什么?樣本的代表性如何?總體是什么?正在檢驗(yàn)的假設(shè)是什么?

要將推論統(tǒng)計(jì)學(xué)應(yīng)用到 Web 數(shù)據(jù)流,需要先把結(jié)果看作是由實(shí)驗(yàn)設(shè)計(jì)生成的;然后選擇適用于該實(shí)驗(yàn)設(shè)計(jì)的分析過(guò)程。即使您可能認(rèn)為將 Web 民意測(cè)驗(yàn)和訪問(wè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è)量?jī)x器的標(biāo)準(zhǔn)化的偏移量指示該物體的重量。

有四種重要的衡量標(biāo)準(zhǔn):

定比尺度(ratio)— 千克尺度是定比尺度的一個(gè)示例 ? 分配給物體屬性的符號(hào)具有數(shù)字意義。您可以對(duì)這些符號(hào)執(zhí)行各種運(yùn)算(如計(jì)算比率),而對(duì)于通過(guò)使用功能不那么強(qiáng)大的衡量標(biāo)準(zhǔn)獲得的數(shù)值,您不能使用這些運(yùn)算。


定距尺度(interval)— 在定距尺度中,任意兩個(gè)相鄰測(cè)量單位之間的距離(也稱(chēng)為間距)是相等的,但零點(diǎn)是任意的。定距尺度的示例包括對(duì)經(jīng)度和潮汐高度的度量,以及不同年份始末的度量。定距尺度的值可以加減,但乘除則沒(méi)有意義。


定序尺度(rank)— 定序尺度可應(yīng)用于一組有順序的數(shù)據(jù),有順序指的是屬于該尺度的值和觀察值可以按順序排列或附帶有評(píng)級(jí)尺度。常見(jiàn)的示例包括“好惡”民意測(cè)驗(yàn),其中將數(shù)字分配給各個(gè)屬性(從 1 = 非常厭惡到 5 = 非常喜歡)。通常,一組有序數(shù)據(jù)的類(lèi)別有自然的順序,但尺度上相鄰點(diǎn)之間的差距不必總是相同的。對(duì)于有順序的數(shù)據(jù),您可以計(jì)數(shù)和排序,但不能測(cè)量。


定類(lèi)尺度(nominal)— 衡量標(biāo)準(zhǔn)的定類(lèi)尺度是衡量標(biāo)準(zhǔn)中最弱的一種形式,主要指將項(xiàng)目分配給組或類(lèi)別。這種測(cè)量不帶數(shù)量信息,并且不表示對(duì)項(xiàng)目進(jìn)行排序。對(duì)定類(lèi)尺度數(shù)據(jù)執(zhí)行的主要數(shù)值運(yùn)算是每一類(lèi)別中項(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ù)和排序。
定類(lèi)尺度 不是。 只能計(jì)數(shù)。

在本文中,我將主要討論通過(guò)使用測(cè)量的定類(lèi)尺度收集的數(shù)據(jù),以及適用于定類(lèi)數(shù)據(jù)的推論技術(shù)。


使用定類(lèi)尺度

幾乎所有 Web 用戶(hù) — 設(shè)計(jì)人員、客戶(hù)和系統(tǒng)管理員 — 都熟悉定類(lèi)尺度。Web 民意測(cè)驗(yàn)和訪問(wèn)日志類(lèi)似,因?yàn)樗鼈兂3J褂枚?lèi)尺度作為衡量標(biāo)準(zhǔn)。在 Web 民意測(cè)驗(yàn)中,用戶(hù)常常通過(guò)請(qǐng)求人們選擇回答選項(xiàng)(如“您偏愛(ài)品牌 A、品牌 B,還是品牌 C?”)來(lái)衡量人們的偏好。通過(guò)對(duì)各類(lèi)回答的頻率進(jìn)行計(jì)數(shù)來(lái)匯總數(shù)據(jù)。

類(lèi)似的,測(cè)量網(wǎng)站流量的常用方法是對(duì)一個(gè)星期內(nèi)一天之中的每次點(diǎn)擊或訪問(wèn)都劃分給這一天,然后對(duì)每一天出現(xiàn)的點(diǎn)擊或訪問(wèn)的數(shù)目計(jì)數(shù)。另外,您可以(也確實(shí)可以)通過(guò)瀏覽器類(lèi)型、操作系統(tǒng)類(lèi)型和訪問(wèn)者所在的國(guó)家或地區(qū) — 以及任何您想得到的分類(lèi)尺度 — 對(duì)點(diǎn)擊計(jì)數(shù)。

因?yàn)?Web 民意測(cè)驗(yàn)和訪問(wèn)統(tǒng)計(jì)信息都需要對(duì)數(shù)據(jù)歸入某一特定性質(zhì)類(lèi)別的次數(shù)進(jìn)行計(jì)數(shù),所以可以用相似的無(wú)參數(shù)統(tǒng)計(jì)檢驗(yàn)(允許您根據(jù)分布形狀而不是總體參數(shù)作出推論的檢驗(yàn))來(lái)分析它們。

David Sheskin 在他的 Handbook of Parametric and Non-Parametric Statistical Procedures 一書(shū)(第 19 頁(yè), 1997)中,是這樣區(qū)分參數(shù)檢驗(yàn)和非參數(shù)檢驗(yàn)的:


本書(shū)中將過(guò)程分類(lèi)為參數(shù)檢驗(yàn)和非參數(shù)檢驗(yàn)所使用的區(qū)別主要基于被分析數(shù)據(jù)所代表的測(cè)量級(jí)別。作為通用規(guī)則,評(píng)估類(lèi)別/定類(lèi)尺度數(shù)據(jù)和順序/等級(jí)-順序數(shù)據(jù)的推論統(tǒng)計(jì)檢驗(yàn)被歸類(lèi)為非參數(shù)檢驗(yàn),而那些評(píng)估定距尺度數(shù)據(jù)或定比尺度數(shù)據(jù)的檢驗(yàn)則被歸類(lèi)為參數(shù)檢驗(yàn)。


當(dāng)作為參數(shù)檢驗(yàn)基礎(chǔ)的某些假設(shè)值得懷疑時(shí),非參數(shù)檢驗(yàn)也很有用;當(dāng)不滿(mǎn)足參數(shù)假設(shè)時(shí),非參數(shù)檢驗(yàn)在檢測(cè)總體差異時(shí)有很大的作用。對(duì)于 Web 民意測(cè)驗(yàn)的示例,我使用了非參數(shù)分析過(guò)程,因?yàn)?Web 民意測(cè)驗(yàn)通常使用定類(lèi)尺度來(lái)記錄投票者的偏好。

我并不是在建議 Web 民意測(cè)驗(yàn)和 Web 訪問(wèn)統(tǒng)計(jì)信息應(yīng)該始終使用定類(lèi)尺度衡量標(biāo)準(zhǔn),或者說(shuō)非參數(shù)統(tǒng)計(jì)檢驗(yàn)是唯一可用于分析這類(lèi)數(shù)據(jù)的方法。不難設(shè)想有(譬如)這樣的民意測(cè)驗(yàn)和調(diào)查,它們要求用戶(hù)對(duì)每個(gè)選項(xiàng)提供數(shù)值評(píng)分(從 1 到 100),對(duì)此,參數(shù)性的統(tǒng)計(jì)檢驗(yàn)就比較合適。

盡管如此,許多 Web 數(shù)據(jù)流包括編輯類(lèi)別計(jì)數(shù)數(shù)據(jù),而且通過(guò)定義定距尺度(譬如從 17 到 21)并將每個(gè)數(shù)據(jù)點(diǎn)分配給一個(gè)定距尺度(如“年輕人”),可以將這些數(shù)據(jù)(通過(guò)使用功能更強(qiáng)大的衡量標(biāo)準(zhǔn)測(cè)量)變成定類(lèi)尺度數(shù)據(jù)。頻率數(shù)據(jù)的普遍存在(已經(jīng)是 Web 開(kāi)發(fā)人員經(jīng)驗(yàn)的一部分),使得專(zhuā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ù)流都可以用定類(lèi)計(jì)數(shù)數(shù)據(jù)表示,而我討論的推論技術(shù)將使您能做比報(bào)告簡(jiǎn)單的計(jì)數(shù)數(shù)據(jù)更多的事情。


從抽樣開(kāi)始

假設(shè)您在您的站點(diǎn) www.NovaScotiaBeerDrinkers.com 上進(jìn)行每周一次的民意測(cè)驗(yàn),詢(xún)問(wèn)成員對(duì)各種主題的意見(jiàn)。您已經(jīng)創(chuàng)建了一個(gè)民意測(cè)驗(yàn),詢(xún)問(wèn)成員喜愛(ài)的啤酒品牌(在加拿大新斯科舍?。∟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é)論嗎?換句話說(shuō),您能根據(jù)從樣本獲得的結(jié)果對(duì)新斯科舍省的啤酒消費(fèi)者總體作出推論嗎?

許多與樣本收集方式有關(guān)的因素會(huì)使相對(duì)受歡迎程度的推論不正確??赡軜颖局邪诉^(guò)多 Keiths 釀酒廠的雇員;可能您沒(méi)有完全預(yù)防一個(gè)人投多次票的情況,而這個(gè)人可能使結(jié)果出現(xiàn)偏差;或許被挑選出來(lái)投票的人與沒(méi)有被挑選出來(lái)投票的人不同;或許上網(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ù)之前首先要問(wèn)的一個(gè)問(wèn)題是:能否采取步驟幫助確保樣本能夠代表所研究的總體。

如果對(duì)所研究的總體得出結(jié)論是您做 Web 民意測(cè)驗(yàn)的動(dòng)機(jī)(而不是為站點(diǎn)訪問(wè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ì)樣本沒(méi)有發(fā)生偏差,您現(xiàn)在能夠得出 Keiths 是最受歡迎品牌這一結(jié)論嗎?

要回答這個(gè)問(wèn)題,請(qǐng)考慮一個(gè)相關(guān)的問(wèn)題:如果您要獲得另一個(gè)新斯科舍省啤酒消費(fèi)者的樣本,您希望看到完全相同的結(jié)果嗎?實(shí)際上,您會(huì)希望不同樣本中所觀察到的結(jié)果有一定的變化。

考慮這個(gè)預(yù)期的抽樣可變性,您可能懷疑通過(guò)隨機(jī)抽樣可變性是否比反映所研究總體中的實(shí)際差異能更好地說(shuō)明觀察到的品牌偏好。在統(tǒng)計(jì)學(xué)術(shù)語(yǔ)中,這個(gè)抽樣可變性說(shuō)明被稱(chēng)為虛假設(shè)(null hypothesis)。(虛假設(shè)由符號(hào) Ho 表示)在本例中,用公式將它表示成這樣的語(yǔ)句:在作出回答的所有類(lèi)別中,各種回答的期望數(shù)目相同。

Ho:# Keiths = # Olands = # Schooner = # Other

如果您能夠排除虛假設(shè),那么您在回答 Keiths 是否是最受歡迎品牌這個(gè)最初的問(wèn)題上取得了一些進(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 與其它所有品牌之間沒(méi)有差別。

您繼續(xù)檢驗(yàn)虛假設(shè)而不是直接評(píng)估另一假設(shè),是因?yàn)閷?duì)于在虛假設(shè)條件下人們希望觀察到的事物進(jìn)行統(tǒng)計(jì)建模更容易。接下來(lái),我將演示如何對(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è)問(wèn)題,應(yīng)當(dāng)取所有差值的平方(這就是X 平方分布(Chi Square)中平方的由來(lái))。最后,為了使各樣本(這些樣本具有不同的觀察數(shù))的這個(gè)值具有可比性(換句話說(shuō),使它標(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)??v軸顯示各 X 平方分布值的概率(或稱(chēng)為出現(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í)際上,我不使用這些圖來(lái)計(jì)算尾數(shù)概率,因?yàn)槲铱梢詫?shí)現(xiàn)數(shù)學(xué)函數(shù)來(lái)返回給定 X 平方分布值的尾數(shù)概率。我在本文后面討論的 X 平方分布程序中會(huì)采用這種做法。)

要進(jìn)一步了解這些圖是如何派生出來(lái)的,可以看看如何模擬與 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 類(lèi)實(shí)現(xiàn)了這一想法。您可以用以下值初始化該類(lèi):要做實(shí)驗(yàn)的次數(shù)、每個(gè)實(shí)驗(yàn)中所做嘗試的次數(shù),以及每次試驗(yàn)的選項(xiàng)數(shù)目。每個(gè)實(shí)驗(yàn)的結(jié)果記錄在一個(gè)名為 Outcomes 的數(shù)組中。

清單 1. Multinomial 類(lèi)的內(nèi)容


// 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 NExps; $i++) {
$this->Outcomes[$i] = $this->runExperiment();
}
}

function runExperiment() {
$Outcome = array();
for ($i = 0; $i 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ì)寫(xiě)到一個(gè)輸出文件以便稍后用圖表表示。

清單 2. 將獲得的 X 平方分布統(tǒng)計(jì)寫(xiě)到輸出文件

// 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// 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ì)我來(lái)說(shuō),最簡(jiǎn)單的方法就是將 data.txt 文件裝入開(kāi)放源碼統(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è)重于說(shuō)明這個(gè)模擬實(shí)驗(yàn)中所使用的 X 平方分布軟件的工作原理。通常情況下,X 平方分布軟件將用于分析實(shí)際的定類(lèi)尺度數(shù)據(jù)(例如 Web 民意測(cè)驗(yàn)結(jié)果、每周的流量報(bào)告或者客戶(hù)品牌偏好報(bào)告),而不是您使用的模擬數(shù)據(jù)。您可能還會(huì)對(duì)該軟件生成的其它輸出 — 例如匯總表和尾數(shù)概率 — 感興趣。


X 平方分布的實(shí)例變量

我開(kāi)發(fā)的基于 php 的 X 平方分布軟件包由用于分析頻率數(shù)據(jù)的類(lèi)構(gòu)成,頻率數(shù)據(jù)是按照一維或兩維(ChiSquare1D.php 和 ChiSquare2D.php)進(jìn)行分類(lèi)的。我的討論將僅局限于說(shuō)明 ChiSquare1D.php 類(lèi)的工作原理,以及說(shuō)明如何將其應(yīng)用于一維 Web 民意測(cè)驗(yàn)數(shù)據(jù)。

在繼續(xù)之前,應(yīng)當(dāng)說(shuō)明:按照兩維對(duì)數(shù)據(jù)進(jìn)行分類(lèi)(例如,按照性別對(duì)啤酒偏好進(jìn)行分類(lèi)),允許您通過(guò)查找列聯(lián)表單元中的系統(tǒng)關(guān)系或條件概率開(kāi)始說(shuō)明您的結(jié)果。盡管下面的許多討論將有助于您理解 ChiSquare2D.php 軟件的工作原理,但本文未討論的其它實(shí)驗(yàn)、分析和可視化問(wèn)題也是使用這個(gè)類(lèi)之前必須處理的。

清單 3 研究了 ChiSquare1D.php 類(lèi)的片段,它由以下部分構(gòu)成:

1.一個(gè)被包含的文件
2.類(lèi)實(shí)例變量

清單 3. 帶有被包含的文件和實(shí)例變量的 X 平方分布類(lèi)的片段


// 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 類(lèi)必須能夠訪問(wèn) Distribution.php 中的 X 平方分布方法,以計(jì)算所得到的 X 平方分布值的尾數(shù)概率。

這個(gè)類(lèi)中的實(shí)例變量列表值得注意,因?yàn)樗鼈兌x了由分析過(guò)程生成的結(jié)果對(duì)象。這個(gè)結(jié)果對(duì)象包含了有關(guān)檢驗(yàn)的所有重要詳細(xì)信息,包括三個(gè)重要的 X 平方分布統(tǒng)計(jì) — ChiSqObt、ChiSqProb 和 ChiSqCrit。關(guān)于如何計(jì)算每個(gè)實(shí)例變量的詳細(xì)信息,可以查閱該類(lèi)的構(gòu)造函數(shù)方法,所有這些值都源自那里。


構(gòu)造函數(shù):X 平方分布檢驗(yàn)的主干

清單 4 給出了 X 平方分布的構(gòu)造函數(shù)代碼,它構(gòu)成了 X 平方分布檢驗(yàn)的主干。

清單 4. X 平方分布的構(gòu)造函數(shù)


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 概率斷開(kāi)點(diǎn)(cutoff score)和一個(gè)可選的期望概率的數(shù)組。
2.前六行涉及了相對(duì)簡(jiǎn)單的賦值和被記錄的計(jì)算值,以便于完整的結(jié)果對(duì)象可用于調(diào)用腳本。
3.最后四行執(zhí)行大量的獲取 X 平方分布統(tǒng)計(jì)的工作,這些統(tǒng)計(jì)是您最感興趣的。
4.該類(lèi)只實(shí)現(xiàn) X 平方分布檢驗(yàn)邏輯。沒(méi)有與該類(lèi)相關(guān)聯(lián)的輸出方法。
您可以研究本文的代碼下載中包含的類(lèi)方法,以了解關(guān)于如何計(jì)算每個(gè)結(jié)果對(duì)象值的更多信息(請(qǐng)參閱參考資料)。


處理輸出問(wèn)題
清單 5 中的代碼展示了使用 ChiSquare1D.php 類(lèi)執(zhí)行 X 平方分布分析是多么容易。它還演示了輸出問(wèn)題的處理。

該腳本調(diào)用一個(gè)名為 ChiSquare1D_HTML.php 的包裝器腳本。這個(gè)包裝器腳本的目的是使 X 平方分布過(guò)程的邏輯與它的表示方面相分離。_HTML 后綴表明輸出針對(duì)的是標(biāo)準(zhǔn)的 Web 瀏覽器或其它顯示 HTML 的設(shè)備。

包裝器腳本的另一個(gè)目的是用便于理解數(shù)據(jù)的方式組織輸出。為了達(dá)到這個(gè)目的,該類(lèi)包含了兩個(gè)用于顯示 X 平方分布分析結(jié)果的方法。showTableSummary 方法顯示了在代碼后面展示的第一個(gè)輸出表(表 2),而 showChiSquareStats 顯示了第二個(gè)輸出表(表 3)。

清單 5. 利用包裝器腳本組織數(shù)據(jù)

// 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 "

";
$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ì)有爭(zhēng)議。您的民意測(cè)驗(yàn)結(jié)果更有可能反映了新斯科舍省的啤酒消費(fèi)者總體對(duì)于啤酒品牌偏好的真正差別。

為了確認(rèn)這一結(jié)論,可以用獲得的 X 平方分布值與臨界值進(jìn)行比較。

為什么臨界值很重要呢?臨界值建立在為該分析設(shè)置的某一重要級(jí)別(即 alpha 斷開(kāi)級(jí)別)之上。alpha 斷開(kāi)值按照慣例被設(shè)置為 0.05(上述分析使用的就是該值)。該設(shè)置用于查找 X 平方分布的抽樣分布中包含尾數(shù)區(qū)域等于 alpha 斷開(kāi)值(0.05)的位置(或臨界值)。

在本文中,獲得的 X 平方分布值大于臨界值。這意味著超出了保持虛假設(shè)說(shuō)明的閾值。另一種假設(shè) — 對(duì)象總體中存在著比例差異 — 在統(tǒng)計(jì)上可能更正確。

在數(shù)據(jù)流的自動(dòng)化分析中,alpha 斷開(kāi)設(shè)置可以為知識(shí)-發(fā)現(xiàn)算法(例如 X 平方分布自動(dòng)交互檢測(cè)(Chi Square Automatic Interaction Detection,CHIAD))設(shè)置輸出過(guò)濾,這樣的算法自身在發(fā)現(xiàn)真正有用的模式方面無(wú)法為人們?cè)敿?xì)的指導(dǎo)。


重新進(jìn)行民意測(cè)驗(yàn)
單向 X 平方分布檢驗(yàn)的另一個(gè)有趣應(yīng)用是重新進(jìn)行民意測(cè)驗(yàn),以了解人們的回答是否已發(fā)生變化。

假定過(guò)一段時(shí)間后,您打算對(duì)新斯科舍省的啤酒消費(fèi)者進(jìn)行另一次 Web 民意測(cè)驗(yàn)。您再次詢(xún)問(wèn)他們喜愛(ài)的啤酒品牌,現(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ì)算期望頻率來(lái)分析數(shù)據(jù),也可以利用每個(gè)結(jié)果的期望概率(基于前一次民意測(cè)驗(yàn)所觀察到的比例)來(lái)初始化分析。在第二種情形中,您將以前獲得的比例裝入期望概率數(shù)組($ExpProb),并使用它們來(lái)計(jì)算每個(gè)回答選項(xiàng)的期望頻率值。

清單 6 顯示了用于檢測(cè)偏好變化的啤酒民意測(cè)驗(yàn)分析代碼:


清單 6. 檢測(cè)偏好的變化


// 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 "

";
$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)以來(lái),新斯科舍省啤酒消費(fèi)者偏好已經(jīng)發(fā)生了變化。觀察頻率和期望頻率之間的任何差異都可以解釋為新斯科舍省相同啤酒消費(fèi)者的期望抽樣可變性??紤]到最初民意測(cè)驗(yàn)結(jié)果的轉(zhuǎn)換只是通過(guò)向前面每個(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)告的方差大?。D梢赃M(jìn)一步設(shè)想這一發(fā)現(xiàn)對(duì)所討論的釀酒廠的財(cái)務(wù)方面有顯著的含義,因?yàn)榫瓢衫习逋鶗?huì)采購(gòu)酒吧里最暢銷(xiāo)的啤酒。

這些結(jié)果將受到釀酒廠老板極其詳細(xì)的檢查,他們會(huì)對(duì)分析過(guò)程和實(shí)驗(yàn)方法的適合性提出疑問(wèn);特別地,他們會(huì)對(duì)樣本的代表性提出疑問(wèn)。如果您打算進(jìn)行一次 Web 實(shí)驗(yàn),該實(shí)驗(yàn)可能具有重要的實(shí)際含義,那么,對(duì)于用來(lái)收集數(shù)據(jù)的實(shí)驗(yàn)方法和用來(lái)從數(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ù)的分析。但是,所討論的簡(jiǎn)單的單向 X 平方分布分析過(guò)程也能夠有效地應(yīng)用于其它類(lèi)型的數(shù)據(jù)流(訪問(wèn)日志、調(diào)查結(jié)果、客戶(hù)概要信息和客戶(hù)訂單),以便將原始數(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ù)采集的過(guò)程缺乏足夠的控制,因此您不能做出推論。但是,如果在將實(shí)驗(yàn)的設(shè)計(jì)原則應(yīng)用于 Web 數(shù)據(jù)收集過(guò)程時(shí)您更加主動(dòng)(例如,在您的 Web 民意測(cè)驗(yàn)過(guò)程中隨機(jī)選擇投票者),那么可以改變這種情形。

最后,我演示了如何模擬不同自由度的 X 平方分布的抽樣分布,而不只是僅說(shuō)明其來(lái)源。在這樣做的過(guò)程中,對(duì)于測(cè)量類(lèi)別的期望頻率小于 5(換而言之,即小 N 實(shí)驗(yàn))— 我還演示了一種變通方法(使用小 $NTrials 值模擬實(shí)驗(yàn)的抽樣分布)來(lái)禁止使用 X 平方分布檢驗(yàn)。因此,我不只是使用研究過(guò)程中的 df 來(lái)計(jì)算樣本結(jié)果的概率,對(duì)于數(shù)量較小的嘗試,可能還需要使用 $NTrials 值作為參數(shù)來(lái)求得所觀察 X 平方分布結(jié)果的概率。

考慮您可能會(huì)如何分析小 N 實(shí)驗(yàn)是值得的,因?yàn)槟ǔ?赡芟M跀?shù)據(jù)采集完成之前分析您的數(shù)據(jù) — 當(dāng)每次觀察的代價(jià)都很昂貴時(shí),當(dāng)觀察需要花費(fèi)很長(zhǎng)時(shí)間才能獲得時(shí),或者只是因?yàn)槟芎闷妗T趪L試這一級(jí)別的 Web 數(shù)據(jù)分析時(shí),最好謹(jǐn)記下面這兩個(gè)問(wèn)題:


*您是否有理由在小 N 條件下進(jìn)行推論?
*模擬有助于您決定在這些環(huán)境下獲得什么推論嗎?



Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1488
72
How to use PHP to build social sharing functions PHP sharing interface integration practice How to use PHP to build social sharing functions PHP sharing interface integration practice Jul 25, 2025 pm 08:51 PM

The core method of building social sharing functions in PHP is to dynamically generate sharing links that meet the requirements of each platform. 1. First get the current page or specified URL and article information; 2. Use urlencode to encode the parameters; 3. Splice and generate sharing links according to the protocols of each platform; 4. Display links on the front end for users to click and share; 5. Dynamically generate OG tags on the page to optimize sharing content display; 6. Be sure to escape user input to prevent XSS attacks. This method does not require complex authentication, has low maintenance costs, and is suitable for most content sharing needs.

PHP calls AI intelligent voice assistant PHP voice interaction system construction PHP calls AI intelligent voice assistant PHP voice interaction system construction Jul 25, 2025 pm 08:45 PM

User voice input is captured and sent to the PHP backend through the MediaRecorder API of the front-end JavaScript; 2. PHP saves the audio as a temporary file and calls STTAPI (such as Google or Baidu voice recognition) to convert it into text; 3. PHP sends the text to an AI service (such as OpenAIGPT) to obtain intelligent reply; 4. PHP then calls TTSAPI (such as Baidu or Google voice synthesis) to convert the reply to a voice file; 5. PHP streams the voice file back to the front-end to play, completing interaction. The entire process is dominated by PHP to ensure seamless connection between all links.

How to use PHP combined with AI to achieve text error correction PHP syntax detection and optimization How to use PHP combined with AI to achieve text error correction PHP syntax detection and optimization Jul 25, 2025 pm 08:57 PM

To realize text error correction and syntax optimization with AI, you need to follow the following steps: 1. Select a suitable AI model or API, such as Baidu, Tencent API or open source NLP library; 2. Call the API through PHP's curl or Guzzle and process the return results; 3. Display error correction information in the application and allow users to choose whether to adopt it; 4. Use php-l and PHP_CodeSniffer for syntax detection and code optimization; 5. Continuously collect feedback and update the model or rules to improve the effect. When choosing AIAPI, focus on evaluating accuracy, response speed, price and support for PHP. Code optimization should follow PSR specifications, use cache reasonably, avoid circular queries, review code regularly, and use X

PHP creates a blog comment system to monetize PHP comment review and anti-brush strategy PHP creates a blog comment system to monetize PHP comment review and anti-brush strategy Jul 25, 2025 pm 08:27 PM

1. Maximizing the commercial value of the comment system requires combining native advertising precise delivery, user paid value-added services (such as uploading pictures, top-up comments), influence incentive mechanism based on comment quality, and compliance anonymous data insight monetization; 2. The audit strategy should adopt a combination of pre-audit dynamic keyword filtering and user reporting mechanisms, supplemented by comment quality rating to achieve content hierarchical exposure; 3. Anti-brushing requires the construction of multi-layer defense: reCAPTCHAv3 sensorless verification, Honeypot honeypot field recognition robot, IP and timestamp frequency limit prevents watering, and content pattern recognition marks suspicious comments, and continuously iterate to deal with attacks.

How to use PHP to combine AI to generate image. PHP automatically generates art works How to use PHP to combine AI to generate image. PHP automatically generates art works Jul 25, 2025 pm 07:21 PM

PHP does not directly perform AI image processing, but integrates through APIs, because it is good at web development rather than computing-intensive tasks. API integration can achieve professional division of labor, reduce costs, and improve efficiency; 2. Integrating key technologies include using Guzzle or cURL to send HTTP requests, JSON data encoding and decoding, API key security authentication, asynchronous queue processing time-consuming tasks, robust error handling and retry mechanism, image storage and display; 3. Common challenges include API cost out of control, uncontrollable generation results, poor user experience, security risks and difficult data management. The response strategies are setting user quotas and caches, providing propt guidance and multi-picture selection, asynchronous notifications and progress prompts, key environment variable storage and content audit, and cloud storage.

PHP realizes commodity inventory management and monetization PHP inventory synchronization and alarm mechanism PHP realizes commodity inventory management and monetization PHP inventory synchronization and alarm mechanism Jul 25, 2025 pm 08:30 PM

PHP ensures inventory deduction atomicity through database transactions and FORUPDATE row locks to prevent high concurrent overselling; 2. Multi-platform inventory consistency depends on centralized management and event-driven synchronization, combining API/Webhook notifications and message queues to ensure reliable data transmission; 3. The alarm mechanism should set low inventory, zero/negative inventory, unsalable sales, replenishment cycles and abnormal fluctuations strategies in different scenarios, and select DingTalk, SMS or Email Responsible Persons according to the urgency, and the alarm information must be complete and clear to achieve business adaptation and rapid response.

Beyond the LAMP Stack: PHP's Role in Modern Enterprise Architecture Beyond the LAMP Stack: PHP's Role in Modern Enterprise Architecture Jul 27, 2025 am 04:31 AM

PHPisstillrelevantinmodernenterpriseenvironments.1.ModernPHP(7.xand8.x)offersperformancegains,stricttyping,JITcompilation,andmodernsyntax,makingitsuitableforlarge-scaleapplications.2.PHPintegrateseffectivelyinhybridarchitectures,servingasanAPIgateway

PHP integrated AI speech recognition and translator PHP meeting record automatic generation solution PHP integrated AI speech recognition and translator PHP meeting record automatic generation solution Jul 25, 2025 pm 07:06 PM

Select the appropriate AI voice recognition service and integrate PHPSDK; 2. Use PHP to call ffmpeg to convert recordings into API-required formats (such as wav); 3. Upload files to cloud storage and call API asynchronous recognition; 4. Analyze JSON results and organize text using NLP technology; 5. Generate Word or Markdown documents to complete the automation of meeting records. The entire process needs to ensure data encryption, access control and compliance to ensure privacy and security.

See all articles