快速业务通道

用PHP使Web数据分析进入更高境界

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
并且计算该结果的 X 平方分布统计。由于随机抽样的可变性,因此这个 X 平方分布统计会随实验的不同而不同。

下面的脚本将每次实验获得的 X 平方分布统计写到一个输出文件以便稍后用图表表示。

清单 2. 将获得的 X 平方分布统计写到输出文件

<?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);

?>

为了使运行该实验所期望获得的结果可视化,对我来说,最简单的方法就是将 data.txt 文件装入开放源码统计包 R,运行 histogram 命令,并且在图形编辑器中编辑该图表,如下所示:

x = scan("data.txt")
hist(x, 50)

正如您可以看到的,这些 X 平方分布值的直方图与上面表示的 df = 2 的连续 X 平方分布的分布近似。

图 3. 与 df=2 的连续分布近似的值

在下面几节中,我将侧重于说明这个模拟实验中所使用的 X 平方分布软件的工作原理。通常情况下,X 平方分布软件将用于分析实际的定类尺度数据(例如 Web 民意测验结果、每周的流量报告或者客户品牌偏好报告),而不是您使用的模拟数据。您可能还会对该软件生成的其它输出 — 例如汇总表和尾数概率 — 感兴趣。
X 平方分布的实例变量

我开发的基于 php 的 X 平方分布软件包由用于分析频率数据的类构成,频率数据是按照一维或两维(ChiSquare1D.php 和 ChiSquare2D.php)进行分类的。我的讨论将仅局限于说明 ChiSquare1D.php 类的工作原理,以及说明如何将其应用于一维 Web 民意测验数据。

在继续之前,应当说明:按照两维对数据进行分类(例如,按照性别对啤酒偏好进行分类),允许您通过查找列联表单元中的系统关系或条件概率开始说明您的结果。尽管下面的许多讨论将有助于您理解 ChiSquare2D.php 软件的工作原理,但本文未讨论的其它实验、分析和可视化问题也是使用这个类之前必须处理的。

清单 3 研究了 ChiSquare1D.php 类的片段,它由以下部分构成:

1.一个被包含的文件
2.类实例变量

清单 3. 带有被包含的文件和实例变量的 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 中这个脚本的顶部包含了一个名为 Distribution.php 的文件。所包含的路径合并了在 init.php 文件中设置的 PHP_MATH 常量,假定 init.php 文件已包含在调用

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号