韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

用 PHP 完成的容易線性回歸(二)

用 PHP 完成的容易線性回歸(二)

更新時間:2022-10-18 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

解決輸出和概率函數(shù)缺陷的數(shù)據(jù)研究工具

本系列文章的第 1 部分結(jié)尾處提到了簡單線性回歸(Simple Linear Regression)類中缺少的三個元素。在本文中,作者 Paul Meagher 用基于 PHP 的概率函數(shù)彌補(bǔ)了這些缺陷,演示了如何將輸出方法集成到 SimpleLinearRegression 類中并創(chuàng)建了圖形輸出。他通過構(gòu)建數(shù)據(jù)研究工具解決了這些問題,該工具旨在深層次地研究中小規(guī)模的數(shù)據(jù)集所包含的信息。(在第 1 部分中,作者演示了如何用 PHP 作為實(shí)現(xiàn)語言來開發(fā)和實(shí)現(xiàn)簡單線性回歸算法包的核心部分。)


在這個由兩部分組成的系列文章的第 1 部分(“用 PHP 實(shí)現(xiàn)的簡單線性回歸”)中,我說明了數(shù)學(xué)庫對 PHP 有用的原因。我還演示了如何用 PHP 作為實(shí)現(xiàn)語言來開發(fā)和實(shí)現(xiàn)簡單線性回歸算法的核心部分。

本文的目標(biāo)是向您展示如何使用第 1 部分中討論的 SimpleLinearRegression 類來構(gòu)建一個重要的數(shù)據(jù)研究工具。

簡要回顧:概念
簡單線性回歸建模背后的基本目標(biāo)是從成對的 X 值和 Y 值(即 X 和 Y 測量值)組成的二維平面中找到最吻合的直線。一旦用最小方差法找到這條直線,就可以執(zhí)行各種統(tǒng)計(jì)測試,以確定這條直線與觀測到的 Y 值的偏離量吻合程度。

線性方程(y = mx + b)有兩個參數(shù)必須根據(jù)所提供的 X 和 Y 數(shù)據(jù)估算出來,它們是斜率(m)和 y 軸截距(b)。一旦估算出這兩個參數(shù),就可以將觀測值輸入線性方程,并觀察方程所生成的 Y 預(yù)測值。

要使用最小方差法估算出 m 和 b 參數(shù),就要找到 m 和 b 的估計(jì)值,使它們對于所有的 X 值得到的 Y 值的觀測值和預(yù)測值最小。觀測值和預(yù)測值之差稱為誤差(yi - (mxi + b)),并且,如果對每個誤差值都求平方,然后求這些殘差的和,其結(jié)果是一個被稱為預(yù)測平方差的數(shù)。使用最小方差法來確定最吻合的直線涉及尋找使預(yù)測方差最小的 m 和 b 的估計(jì)值。

可以用兩種基本方法來找到滿足最小方差法的估計(jì)值 m 和 b。第一種方法,可以使用數(shù)值搜索過程設(shè)定不同的 m 和 b 值并對它們求值,最終決定產(chǎn)生最小方差的估計(jì)值。第二種方法是使用微積分找到用于估算 m 和 b 的方程。我不打算深入討論推導(dǎo)出這些方程所涉及的微積分,但我確實(shí)在 SimpleLinearRegression 類中使用了這些分析方程,以找到 m 和 b 的最小平方估計(jì)值(請參閱 SimpleLinearRegression 類中的 getSlope() 和 getYIntercept 方法)。

即使擁有了可以用來找到 m 和 b 的最小平方估計(jì)值的方程,也并不意味著只要將這些參數(shù)代入線性方程,其結(jié)果就是一條與數(shù)據(jù)良好吻合的直線。這個簡單線性回歸過程中的下一步是確定其余的預(yù)測方差是否可以接受。

可以使用統(tǒng)計(jì)決策過程來否決“直線與數(shù)據(jù)吻合”這個備擇假設(shè)。這個過程基于對 T 統(tǒng)計(jì)值的計(jì)算,使用概率函數(shù)求得隨機(jī)大的觀測值的概率。正如第 1 部分所提到的,SimpleLinearRegression 類生成了為數(shù)眾多的匯總值,其中一個重要的匯總值是 T 統(tǒng)計(jì)值,它可以用來衡量線性方程與數(shù)據(jù)的吻合程度。如果吻合良好,則 T 統(tǒng)計(jì)值往往是一個較大的值;如果 T 值很小,就應(yīng)該用一個缺省模型代替您的線性方程,該模型假定 Y 值的平均值是最佳預(yù)測值(因?yàn)橐唤M值的平均值通?梢允窍乱粋觀測值的有用的預(yù)測值)。

要測試 T 統(tǒng)計(jì)值是否大到可以不用 Y 值的平均值作為最佳預(yù)測值,需要計(jì)算隨機(jī)獲得 T 統(tǒng)計(jì)值的概率。如果概率很低,那就可以不采用平均值是最佳預(yù)測值這一無效假設(shè),并且相應(yīng)地可以確信簡單線性模型是與數(shù)據(jù)良好吻合的。(有關(guān)計(jì)算 T 統(tǒng)計(jì)值概率的更多信息,請參閱第 1 部分。)

回過頭討論統(tǒng)計(jì)決策過程。它告訴您何時不采用無效假設(shè),卻沒有告訴您是否接受備擇假設(shè)。在研究環(huán)境中,需要通過理論參數(shù)和統(tǒng)計(jì)參數(shù)來建立線性模型備擇假設(shè)。

您將構(gòu)建的數(shù)據(jù)研究工具實(shí)現(xiàn)了用于線性模型(T 測試)的統(tǒng)計(jì)決策過程,并提供了可以用來構(gòu)造理論和統(tǒng)計(jì)參數(shù)的匯總數(shù)據(jù),這些參數(shù)是建立線性模型所需要的。數(shù)據(jù)研究工具可以歸類為決策支持工具,供知識工作者在中小規(guī)模的數(shù)據(jù)集中研究模式。

從學(xué)習(xí)的角度來看,簡單線性回歸建模值得研究,因?yàn)樗抢斫飧呒壭问降慕y(tǒng)計(jì)建模的必由之路。例如,簡單線性回歸中的許多核心概念為理解多次回歸(Multiple Regression)、要素分析(Factor Analysis)和時間序列(Time Series)等建立了良好的基礎(chǔ)。

簡單線性回歸還是一種多用途的建模技術(shù)。通過轉(zhuǎn)換原始數(shù)據(jù)(通常用對數(shù)或冪轉(zhuǎn)換),可以用它來為曲線數(shù)據(jù)建模。這些轉(zhuǎn)換可以使數(shù)據(jù)線性化,這樣就可以使用簡單線性回歸來為數(shù)據(jù)建模。所生成的線性模型將被表示為與被轉(zhuǎn)換值相關(guān)的線性公式。

概率函數(shù)

在前一篇文章中,我通過交由 R 來求得概率值,從而避開了用 PHP 實(shí)現(xiàn)概率函數(shù)的問題。我對這個解決方案并非完全滿意,因此我開始研究這個問題:開發(fā)基于 PHP 的概率函數(shù)需要些什么。

我開始上網(wǎng)查找信息和代碼。一個兩者兼有的來源是書籍 [url=http://www.library.cornell.edu/nr/bookcpdf.html]Numerical Recipes in C [/url] 中的概率函數(shù)。我用 PHP 重新實(shí)現(xiàn)了一些概率函數(shù)代碼(gammln.c 和 betai.c 函數(shù)),但我對結(jié)果還是不滿意。與其它一些實(shí)現(xiàn)相比,其代碼似乎多了些。此外,我還需要反概率函數(shù)。

幸運(yùn)的是,我偶然發(fā)現(xiàn)了 John Pezzullo 的 Interactive Statistical Calculation。John 關(guān)于概率分布函數(shù)的網(wǎng)站上有我需要的所有函數(shù),為便于學(xué)習(xí),這些函數(shù)已用 JavaScript 實(shí)現(xiàn)。

我將 Student T 和 Fisher F 函數(shù)移植到了 PHP。我對 API 作了一點(diǎn)改動,以便符合 Java 命名風(fēng)格,并將所有函數(shù)嵌入到名為 Distribution 的類中。該實(shí)現(xiàn)的一個很棒的功能是 doCommonMath 方法,這個庫中的所有函數(shù)都重用了它。我沒有花費(fèi)力氣去實(shí)現(xiàn)的其它測試(正態(tài)測試和卡方測試)也都使用 doCommonMath 方法。

這次移植的另一個方面也值得注意。通過使用 JavaScript,用戶可以將動態(tài)確定的值賦給實(shí)例變量,譬如:

var PiD2 = pi() / 2


在 PHP 中不能這樣做。只能把簡單的常量值賦給實(shí)例變量。希望在 PHP5 中會解決這個缺陷。

請注意清單 1 中的代碼并未定義實(shí)例變量 — 這是因?yàn)樵?JavaScript 版本中,它們是動態(tài)賦予的值。

清單 1. 實(shí)現(xiàn)概率函數(shù)
<?php

// Distribution.php

// Copyright John Pezullo
// Released under same terms as PHP.
// PHP Port and OO'fying by Paul Meagher

class Distribution {

function doCommonMath($q, $i, $j, $b) {

$zz = 1;
$z = $zz;
$k = $i;


while($k <= $j) {
$zz = $zz * $q * $k / ($k - $b);
$z = $z + $zz;
$k = $k + 2;
}
return $z;
}

function getStudentT($t, $df) {

$t = abs($t);
$w = $t / sqrt($df);
$th = atan($w);

if ($df == 1) {
return 1 - $th / (pi() / 2);
}

$sth = sin($th);
$cth = cos($th);

if( ($df % 2) ==1 ) {
return
1 - ($th + $sth * $cth * $this->doCommonMath($cth * $cth, 2, $df - 3, -1))
/ (pi()/2);
} else {
return 1 - $sth * $this->doCommonMath($cth * $cth, 1, $df - 3, -1);
}

}

function getInverseStudentT($p, $df) {

$v = 0.5;
$dv = 0.5;
$t = 0;

while($dv > 1e-6) {
$t = (1 / $v) - 1;
$dv = $dv / 2;
if ( $this->getStudentT($t, $df) > $p) {
$v = $v - $dv;
} else {
$v = $v + $dv;
}
}
return $t;
}


function getFisherF($f, $n1, $n2) {
// implemented but not shown
}

function getInverseFisherF($p, $n1, $n2) {
// implemented but not shown
}

}
?>




輸出方法
既然您已經(jīng)用 PHP 實(shí)現(xiàn)了概率函數(shù),那么開發(fā)基于 PHP 的數(shù)據(jù)研究工具剩下的唯一難題就是設(shè)計(jì)用于顯示分析結(jié)果的方法。

簡單的解決方案是根據(jù)需要將所有實(shí)例變量的值都顯示到屏幕上。在第一篇文章中,當(dāng)顯示燃耗研究(Burnout Study)的線性方程、T 值和 T 概率時,我就是這么做的。能根據(jù)特定目的而訪問特定值是很有幫助的,SimpleLinearRegression 支持此類用法。

然而,另一種用于輸出結(jié)果的方法是將輸出的各部分系統(tǒng)化地進(jìn)行分組。如果研究用于回歸分析的主要統(tǒng)計(jì)軟件包的輸出,就會發(fā)現(xiàn)它們往往是用同樣的方式對輸出進(jìn)行分組的。它們往往有摘要表(Summary Table)、偏離值分析(Analysis Of Variance)表、參數(shù)估計(jì)值(Parameter Estimate)表和 R 值(R Value)。類似地,我創(chuàng)建了一些輸出方法,名稱如下:

showSummaryTable()
showAnalysisOfVariance()
showParameterEstimates()
showRValues()

我還有一個用于顯示線性預(yù)測公式的方法(getFormula())。許多統(tǒng)計(jì)軟件包不輸出公式,而是希望用戶根據(jù)上述方法的輸出構(gòu)造公式。部分是由于您最后用來對數(shù)據(jù)建模的公式的最終形式可能由于下列原因而與缺省公式不同:

1.Y 軸截距沒有有意義的解釋
2.或者輸入值可能是經(jīng)過轉(zhuǎn)換的,而您可能需要取消對它們的轉(zhuǎn)換以獲取最終的解釋。

所有這些方法都假定輸出媒介是網(wǎng)頁?紤]到您有可能希望用非網(wǎng)頁的其它媒介輸出這些匯總值,所以我決定將這些輸出方法包裝在一個繼承了 SimpleLinearRegression 類的類中。清單 2 中的代碼旨在演示輸出類的通用邏輯。為了使通用邏輯更突出,所以除去了實(shí)現(xiàn)各種 show 方法的代碼。

清單 2. 演示輸出類的通用邏輯
<?php

// HTML.php

// Copyright 2003, Paul Meagher
// Distributed under GPL

include_once "slr/SimpleLinearRegression.php";

class SimpleLinearRegressionHTML extends SimpleLinearRegression {

function SimpleLinearRegressionHTML($X, $Y, $conf_int) {
SimpleLinearRegression::SimpleLinearRegression($X, $Y, $conf_int);
}

function showTableSummary($x_name, $y_name) { }

function showAnalysisOfVariance() { }

function showParameterEstimates() { }

function showFormula($x_name, $y_name) { }

function showRValues() {}
}

?>




這個類的構(gòu)造函數(shù)只是 SimpleLinearRegression 類構(gòu)造函數(shù)的包裝器。這意味著如果您想顯示 SimpleLinearRegression 分析的 HTML 輸出,則應(yīng)該實(shí)例化 SimpleLinearRegressionHTML 類,而不是直接實(shí)例化 SimpleLinearRegression 類。其優(yōu)點(diǎn)是不會有許多未使用的方法充斥 SimpleLinearRegression 類,并且可以更自由地定義用于其它輸出媒介的類(也許會對不同媒介類型實(shí)現(xiàn)同一 API)。

圖形輸出
迄今為止,您已經(jīng)實(shí)現(xiàn)的輸出方法都以 HTML 格式顯示匯總值。它也適合于用 GIF、JPEG 或 PNG 格式顯示這些數(shù)據(jù)的分布圖(scatter plot)或線圖(line plot)。

與其親自編寫生成線圖和分布圖的代碼,我認(rèn)為最好使用名為 JpGraph 的基于 PHP 的圖形庫。JpGraph 正由 Johan Persson 積極開發(fā),其項(xiàng)目網(wǎng)站這樣描述它:


無論是對于只有最少代碼的“以快捷但不恰當(dāng)方式獲得的”圖形,還是對于需要非常細(xì)粒度控制的復(fù)雜專業(yè)圖形,JpGraph 都可以使它們的繪制變得簡單。JpGraph 同樣適用于科學(xué)和商業(yè)類型的圖形。

JpGraph 分發(fā)版中包含大量可以根據(jù)特定需求進(jìn)行定制的示例腳本。將 JpGraph 用于數(shù)據(jù)研究工具非常簡單,只需找到功能與我的需求類似的示例腳本,然后對該腳本進(jìn)行改寫以滿足我的特定需求即可。

清單 3 中的腳本是從樣本數(shù)據(jù)研究工具(explore.php)中抽取的,它演示了如何調(diào)用該庫以及如何將來自于 SimpleLinearRegression 分析的數(shù)據(jù)填入 Line 和 Scatter 類。這段代碼中的注釋是 Johan Persson 編寫的(JPGraph 代碼庫的文檔化工作做得很好)。

清單 3. 來自于樣本數(shù)據(jù)研究工具 explore.php 的函數(shù)的詳細(xì)內(nèi)容<?php

// Snippet extracted from explore.php script

include ("jpgraph/jpgraph.php");
include ("jpgraph/jpgraph_scatter.php");
include ("jpgraph/jpgraph_line.php");

// Create the graph
$graph = new Graph(300,200,'auto');
$graph->SetScale("linlin");

// Setup title
$graph->title->Set("$title");
$graph->img->SetMargin(50,20,20,40);
$graph->xaxis->SetTitle("$x_name","center");
$graph->yaxis->SetTitleMargin(30);
$graph->yaxis->title->Set("$y_name");

$graph->title->SetFont(FF_FONT1,FS_BOLD);

// make sure that the X-axis is always at the
// bottom at the plot and not just at Y=0 which is
// the default position
$graph->xaxis->SetPos('min');

// Create the scatter plot with some nice colors
$sp1 = new ScatterPlot($slr->Y, $slr->X);
$sp1->mark->SetType(MARK_FILLEDCIRCLE);
$sp1->mark->SetFillColor("red");
$sp1->SetColor("blue");
$sp1->SetWeight(3);
$sp1->mark->SetWidth(4);

// Create the regression line
$lplot = new LinePlot($slr->PredictedY, $slr->X);
$lplot->SetWeight(2);
$lplot->SetColor('navy');

// Add the pltos to the line
$graph->Add($sp1);
$graph->Add($lplot);

// ... and stroke
$graph_name = "temp/test.png";
$graph->Stroke($graph_name);
?>
<img src=><?php echo $graph_name ?>' vspace='15'>

?>


數(shù)據(jù)研究腳本
該數(shù)據(jù)研究工具由單個腳本(explore.php)構(gòu)成,該腳本調(diào)用 SimpleLinearRegressionHTML 類和 JpGraph 庫的方法。

該腳本使用了簡單的處理邏輯。該腳本的第一部分對所提交的表單數(shù)據(jù)執(zhí)行基本驗(yàn)證。如果這些表單數(shù)據(jù)通過驗(yàn)證,則執(zhí)行該腳本的第二部分。

該腳本的第二部分所包含的代碼用于分析數(shù)據(jù),并以 HTML 和圖形格式顯示匯總結(jié)果。清單 4 中顯示了 explore.php 腳本的基本結(jié)構(gòu):

清單 4. explore.php 的結(jié)構(gòu)
<?php

// explore.php

if (!empty($x_values)) {
$X = explode(",", $x_values);
$numX = count($X);
}

if (!empty($y_values)) {
$Y = explode(",", $y_values);
$numY = count($Y);
}

// display entry data entry form if variables not set

if ( (empty($title)) OR (empty($x_name)) OR (empty($x_values)) OR
(empty($y_name)) OR (empty($conf_int)) OR (empty($y_values)) OR
($numX != $numY) ) {

// Omitted code for displaying entry form

} else {

include_once "slr/SimpleLinearRegressionHTML.php";
$slr = new SimpleLinearRegressionHTML($X, $Y, $conf_int);

echo "<h2>$title</h2>";

$slr->showTableSummary($x_name, $y_name);
echo "<br><br>";

$slr->showAnalysisOfVariance();
echo "<br><br>";

$slr->showParameterEstimates($x_name, $y_name);
echo "<br>";

$slr->showFormula($x_name, $y_name);
echo "<br><br>";

$slr->showRValues($x_name, $y_name);
echo "<br>";

include ("jpgraph/jpgraph.php");
include ("jpgraph/jpgraph_scatter.php");
include ("jpgraph/jpgraph_line.php");

// The code for displaying the graphics is inline in the
// explore.php script. The code for these two line plots
// finishes off the script:

// Omitted code for displaying scatter plus line plot
// Omitted code for displaying residuals plot

}

?>


火災(zāi)損失研究
為了演示如何使用數(shù)據(jù)研究工具,我將使用來自假想的火災(zāi)損失研究的數(shù)據(jù)。這個研究將主要住宅區(qū)火災(zāi)損失的金額與它們到最近消防站的距離關(guān)聯(lián)起來。例如,出于確定保險費(fèi)的目的,保險公司會對這種關(guān)系的研究感興趣。

該研究的數(shù)據(jù)如圖 1 中的輸入屏幕所示。

圖 1. 顯示研究數(shù)據(jù)的輸入屏幕



數(shù)據(jù)被提交之后,會對它進(jìn)行分析,并顯示這些分析的結(jié)果。第一個顯示的結(jié)果集是 Table Summary,如圖 2 所示。

圖 2. Table Summary 是所顯示的第一個結(jié)果集



Table Summary 以表格形式顯示了輸入數(shù)據(jù)和其它列,這些列指出了對應(yīng)于觀測值 X 的預(yù)測值 Y、Y 值的預(yù)測值和觀測值之間的差以及預(yù)測 Y 值置信區(qū)間的下限和上限。

圖 3 顯示了 Table Summary 之后的三個高級別數(shù)據(jù)匯總表。

圖 3. 顯示了 Table Summary 之后的三個高級別數(shù)據(jù)匯總表



Analysis of Variance 表顯示了如何將 Y 值的偏離值歸為兩個主要的偏離值來源,由模型解釋的方差(請看 Model 行)和模型不能解釋的方差(請看 Error 行)。較大的 F 值意味著該線性模型捕獲了 Y 測量值中的大多數(shù)偏離值。這個表在多次回歸環(huán)境中更有用,在那里每個獨(dú)立變量都在表中占有一行。

Parameter Estimates 表顯示了估算的 Y 軸截距(Intercept)和斜率(Slope)。每行都包括一個 T 值以及觀測到極限 T 值的概率(請看 Prob > T 列)。斜率的 Prob > T 可用于否決線性模型。

如果 T 值的概率大于 0.05(或者是類似的小概率),那么您可以否決該無效假設(shè),因?yàn)殡S機(jī)觀測到極限值的可能性很小。否則您就必須使用該無效假設(shè)。

在火災(zāi)損失研究中,隨機(jī)獲得大小為 12.57 的 T 值的概率小于 0.00000。這意味著對于與該研究中觀測到的 X 值區(qū)間相對應(yīng)的 Y 值而言,線性模型是有用的預(yù)測器(比 Y 值的平均值更好)。

最終報告顯示了相關(guān)性系數(shù)或 R 值?梢杂盟鼈儊碓u估線性模型與數(shù)據(jù)的吻合程度。高的 R 值表明吻合良好。

每個匯總報告對有關(guān)線性模型和數(shù)據(jù)之間關(guān)系的各種分析問題提供了答案。請查閱 Hamilton、Neter 或 Pedhauzeur 編寫的教科書,以了解更高級的回歸分析處理(請參閱參考資料)。

要顯示的最終報告元素是數(shù)據(jù)的分布圖和線圖,如圖 4 所示。

圖 4. 最終報告元素 — 分布圖和線圖



大多數(shù)人都熟悉線圖(如本系列中的第一幅圖)的說明,因此我將不對此進(jìn)行注釋,只想說 JPGraph 庫可以產(chǎn)生用于 Web 的高質(zhì)量科學(xué)圖表。當(dāng)您輸入分布或直線數(shù)據(jù)時,它也做得很好。

第二幅圖將殘差(觀測的 Y、預(yù)測的 Y)與您預(yù)測的 Y 值關(guān)聯(lián)起來。這是研究性數(shù)據(jù)分析(Exploratory Data Analysis,EDA)的倡導(dǎo)者所使用的圖形示例,用以幫助將分析人員對數(shù)據(jù)中的模式的檢測和理解能力提到最高程度。行家可以使用這幅圖回答關(guān)于下列方面的問題:

可能的非正常值或影響力過度的例子
可能的曲線關(guān)系(使用轉(zhuǎn)換?)
非正態(tài)殘差分布
非常量誤差方差或異方差性

可以輕松地?cái)U(kuò)展這個數(shù)據(jù)研究工具,以生成更多類型的圖形 — 直方圖、框圖和四分位數(shù)圖 — 這些都是標(biāo)準(zhǔn)的 EDA 工具。

數(shù)學(xué)庫體系結(jié)構(gòu)
對數(shù)學(xué)的業(yè)余愛好使我在最近幾個月中保持著對數(shù)學(xué)庫的濃厚興趣。此類研究推動我思考如何組織我的代碼庫以及使其預(yù)期在未來能不斷增長。

我暫時采用清單 5 中的目錄結(jié)構(gòu):

清單 5. 易于增長的目錄結(jié)構(gòu)
phpmath/

burnout_study.php
explore.php
fire_study.php
navbar.php

dist/
Distribution.php
fisher.php
student.php
source.php

jpgraph/
etc...

slr/
SimpleLinearRegression.php
SimpleLinearRegressionHTML.php

temp/




例如,未來有關(guān)多次回歸的工作,將涉及擴(kuò)展這個庫以包括 matrix 目錄,該目錄用來容納執(zhí)行矩陣操作(這是對于更高級形式的回歸分析的需求)的 PHP 代碼。我還將創(chuàng)建一個 mr 目錄,以容納實(shí)現(xiàn)多次回歸分析輸入方法、邏輯和輸出方法的 PHP 代碼。

請注意這個目錄結(jié)構(gòu)包含一個 temp 目錄。必須設(shè)置該目錄的許可權(quán),使 explore.php 腳本能夠?qū)⑤敵鰣D寫到該目錄。在嘗試安裝 phpmath_002.tar.gz 源代碼時請牢記這一點(diǎn)。此外,請?jiān)?JpGraph 項(xiàng)目網(wǎng)站上閱讀安裝 JpGraph 的指示信息(請參閱參考資料)。

最后提一點(diǎn),如果采取以下作法,可以將所有軟件類移到 Web 根目錄之外的文檔根目錄:


使某個全局 PHP_MATH 變量有權(quán)訪問非 Web 根目錄位置,并且
確保在所有需要或包括的文件路徑前面加上這個已定義的常量作為前綴。

將來,對 PHP_MATH 變量的設(shè)置將通過一個用于整個 PHP 數(shù)學(xué)庫的配置文件來完成。

您學(xué)到了什么?
在本文中,您了解了如何使用 SimpleLinearRegression 類開發(fā)用于中小規(guī)模的數(shù)據(jù)集的數(shù)據(jù)研究工具。在此過程中,我還開發(fā)了一個供 SimpleLinearRegression 類使用的本機(jī)概率函數(shù),并用 HTML 輸出方法和基于 JpGraph 庫的圖形生成代碼擴(kuò)展該類。

從學(xué)習(xí)的角度來看,簡單線性回歸建模是值得進(jìn)一步研究的,因?yàn)槭聦?shí)證明,它是理解更高級形式的統(tǒng)計(jì)建模的必由之路。在深入學(xué)習(xí)更高級的技術(shù)(如多次回歸或多變量方差分析)之前,對于簡單線性回歸的透徹理解將使您受益匪淺。

即使簡單線性回歸只用一個變量來說明或預(yù)測另一個變量的偏離值,在所有的研究變量之間尋找簡單線性關(guān)系仍然常常是研究性數(shù)據(jù)分析的第一步。僅因?yàn)閿?shù)據(jù)是多元的并不意味著就必須使用多元工具研究它。實(shí)際上,在開始時使用簡單線性回歸這樣的基本工具是著手探究數(shù)據(jù)模式的好方法。

本系列研究了簡單線性回歸分析的兩個應(yīng)用。在本文中,我研究了“到消防站的距離”和“火災(zāi)損失”之間的強(qiáng)線性關(guān)系。在第一篇文章中,我研究了“社會集中度”和稱為“消耗指數(shù)”的測量值之間的線性關(guān)系,盡管這種關(guān)系相對弱一些,但仍然十分明顯。(作為練習(xí),用本文中討論的數(shù)據(jù)研究工具重新研究第一個研究案例中較為凌亂的數(shù)據(jù)可能會很有趣。您可能會注意到 y 軸截距是負(fù)數(shù)的情況,這意味著“社會集中度”為 0,預(yù)測消耗指數(shù)為 -29.50。這有意義嗎?在對一種現(xiàn)象建模時,您應(yīng)該問問自己:方程是否應(yīng)該包含可選的 y 軸截距,如果可以,那么該 y 軸截距在線性方程中會起什么作用。)

對于簡單線性回歸的進(jìn)一步研究可能包括對這些主題的研究:


*如果想從您的方程以及可以使用的其它計(jì)算公式中略去截距,則何時可以這樣做
*何時以及如何使用冪、對數(shù)和其它轉(zhuǎn)換來對數(shù)據(jù)進(jìn)行線性化,以便用簡單線性回歸來對該數(shù)據(jù)建模
*可以用來評估您的建模假設(shè)的充分性,并可以更清晰地洞察數(shù)據(jù)中的模式的其它可視化方法

這些是有待學(xué)習(xí)簡單線性回歸的學(xué)生研究的一部分更高級的主題。參考資料包含了幾個指向高級主題文章的鏈接,您可以從中參考更多關(guān)于回歸分析的信息。

標(biāo)準(zhǔn) PHP 安裝提供了開發(fā)基于數(shù)學(xué)的重要應(yīng)用程序所必須的許多資源。我希望這個系列的文章能啟發(fā)其他開發(fā)人員出于樂趣、技術(shù)或?qū)W習(xí)挑戰(zhàn)的目的而用 PHP 來實(shí)現(xiàn)數(shù)學(xué)例程。


相關(guān)附件:本文所用源代碼下載

參考資料
1.請參考由 James T. McClave 和 Terry Sincich 編著的廣受歡迎的大學(xué)教科書 Statistics,第 9 版(Prentice-Hall,在線),本文中所使用的算法步驟和“燃耗研究”示例參考了該書。
2.請查閱 PEAR 資源庫,它目前包含了少量低級別的 PHP 數(shù)學(xué)類。最終,應(yīng)該會很高興地看到 PEAR 包含實(shí)現(xiàn)標(biāo)準(zhǔn)的較高級別的數(shù)值方法(比如 SimpleLinearRegression、MultipleRegression、TimeSeries、ANOVA、FactorAnalysis、FourierAnalysis 及其它)的包。
3.查看作者的 SimpleLinearRegression 類的所有源代碼。
4.了解一下Numerical Python 項(xiàng)目,它用非?茖W(xué)的數(shù)組語言以及成熟的建立下標(biāo)方法擴(kuò)展了 Python。有了該擴(kuò)展,數(shù)學(xué)操作就非常接近人們期望從編譯語言所獲得的功能。
5.研究可用于 Perl 的許多數(shù)學(xué)參考資料,包括 CPAN 數(shù)學(xué)模塊的索引和 CPAN 中算法部分的模塊,以及 Perl 數(shù)據(jù)語言(Perl Data Language),它旨在為 Perl 提供壓縮存儲以及快速操作大型 N 維數(shù)據(jù)數(shù)組的能力。
6.有關(guān) John Chambers 的 S 編程語言的更多信息,請查閱關(guān)于他的出版物以及他在貝爾實(shí)驗(yàn)室的各項(xiàng)研究項(xiàng)目的鏈接。還可以了解在 1998 年因語言設(shè)計(jì)而獲得的 ACM 獎。
7.R 是用于統(tǒng)計(jì)計(jì)算和圖形的語言和環(huán)境,類似于獲獎的 S System,R 提供了諸如線性和非線性建模、統(tǒng)計(jì)測試、時間序列分析、分類、群集之類的統(tǒng)計(jì)和圖形技術(shù)。請?jiān)?R Project 主頁上了解 R。
8.如果您剛接觸 PHP,那么請閱讀 Amol Hatwar 的 developerWorks 系列文章:“用 PHP 開發(fā)健壯的代碼:”“第 1 部分: 高屋建瓴的介紹 ”(2002 年 8 月)、“第 2 部分: 有效地使用變量”(2002 年 9 月)和“第 3 部分: 編寫可重用函數(shù)”(2002 年 11 月)。
9.訪問 John Pezzullo 的優(yōu)秀站點(diǎn),該站點(diǎn)專門提供執(zhí)行統(tǒng)計(jì)計(jì)算的網(wǎng)頁。基于 PHP 的概率函數(shù)是以在 John 的概率函數(shù)頁面所找到的代碼為基礎(chǔ)的。
10.到 Digital Library of Mathematical Functions 了解關(guān)于 M. Abramowitz 和 I.A. Stegun 編寫的書籍 The Handbook of Mathematical Functions(也稱為 AMS55)的更多信息。
11.查看 JpGraph 站點(diǎn),以獲取關(guān)于 PHP 的主要 OO 圖形庫的大量信息。
12.閱讀美國國家標(biāo)準(zhǔn)與技術(shù)研究所(National Institute of Standards,NIST)出版的 The Engineering Handbook of Statistics,該手冊上有幾章是關(guān)于 Exploratory Data Analysis 的,非常不錯。
13.如果您對于更詳盡地學(xué)習(xí)關(guān)于回歸的主題感興趣的話,請嘗試閱讀以下有用的參考資料:

L. C. Hamilton(1992年)。Regression with Graphics。加州 Pacific Grove:Brooks/Cole Publishing Company。
J Neter、M.H. Kutner 和 W Wasserman W(1990 年)。Applied Linear Regression Models(第 3 版)。芝加哥 Irwin。
E. J. Pedhazur(1982 年)。Multiple regression in behavioral research。紐約州,紐約市:Holt,Rinehart and Winston。

14.閱讀 Cameron Laird 的文章“Open source in the biosciences”。PHP 需要更好的數(shù)學(xué)工具來參與這個不斷成長的市場(developerWorks,2002 年 11 月)。
15.查看 RWeb,它是基于 Web 的 R 接口。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
日韩一区二区福利| 精品人妻伦一二三区久久| 人人妻人人做人人爽| 欧美久久久久中文字幕| 黑人巨大精品欧美一区二区奶水| 久久久久国产精品麻豆ai换脸| 日韩高清不卡| 国产午夜福利100集发布| 日韩成人在线免费视频| 中文字幕日本乱码精品影院| 亚洲一区不卡| 伊人网站在线| 一区二区精品免费视频| 日本免费不卡视频| 一区二区在线视频播放| 久久国产亚洲精品| av资源免费观看| 一级特黄大欧美久久久| 国产日产欧美一区二区视频| 黄色片网址在线观看| 亚洲精品偷拍| 99亚洲伊人久久精品影院红桃| 日韩美女在线观看| 欧美精品久久久久久久久| 免费男女羞羞的视频网站中文字幕妖精视频| 亚洲电影一区二区三区| 在线观看免费av网| 一区二区三区www污污污网站| 一区二区三区精品在线观看| 国产麻豆乱码精品一区二区三区| 国产又粗又爽| 在线视频一区二区三区在线播放| 韩国三级大全久久网站| 99热在线成人| 国产麻豆一区二区三区在线观看| 中文字幕av在线免费观看| 日韩午夜影院| 欧美不卡视频在线观看| 可以看毛片的网址| 亚洲色图13p| 久久精品 人人爱| aaa免费在线观看| 国产三级电影在线播放| 欧美精彩视频一区二区三区| 国内一卡2卡三卡四卡在线| 亚洲欧美日韩中文字幕在线观看| 成人精品高清在线视频| 九九精品调教| 五月天丁香社区| 国产一区二区日韩精品欧美精品| chien国产乱露脸对白| 日韩精品在线免费观看视频| 在线免费观看av的网站| 国产午夜精品久久久久免费视| 日韩av手机在线观看| 亚洲欧美国产精品va在线观看| 久久久久久久久久久影视| 国产一区高清在线| 色婷婷精品大视频在线蜜桃视频| 欧美寡妇偷汉性猛交| 手机在线视频你懂的| 亚洲精品一二区| 99re国产| 99久热re在线精彩视频| 久久久综合激的五月天| 欧美在线关看| 黄色av电影在线观看| 欧美亚洲第一区| 成人手机在线| 成人免费视频在线观看超级碰| 欧美色综合影院| 热久久精品免费视频| 久久99久国产精品黄毛片色诱| 五月激情六月丁香| 福利在线一区二区| avove在线观看| 日韩精品中文字幕第1页| 66国产精品| 18aaaa精品欧美大片h| 久久这里有精品视频| 欧美激情 亚洲| 日韩精品亚洲一区二区三区免费| 免费91在线观看| 国产精品原创巨作av| 欧美日韩国产小视频在线观看| 韩国一区二区三区四区| 亚洲欧洲在线一区| 亚洲精品国偷自产在线99热| 亚洲av无码乱码国产麻豆| 99t1这里只有精品| 亚洲成人国产| 欧美第一页在线观看| 精品亚洲一区二区三区四区| 免费看污片网站| 国卡一卡二卡三免费网站| 91www成人久久| 欧美精品videosex牲欧美| 免费看一级大黄情大片| 老牛嫩草一区二区三区日本| 色综合久久综合网97色综合| 性欧美video视频另类| 亚洲高清视频在线观看| 日韩人妻精品一区二区三区| 夜夜精品浪潮av一区二区三区| 国产三区在线成人av| 蜜桃视频免费观看一区| 成人综合社区| 在线亚洲a色| 在线看欧美视频| 亚洲18私人小影院| 日韩成人高清| hitomi一区二区三区精品| 久久香蕉国产线看观看网| 国产视频九色蝌蚪| 18禁裸乳无遮挡啪啪无码免费| 136国产福利精品导航网址| 黄色一级片av| 91香蕉视频网| eeuss国产一区二区三区四区| 免费高清在线| 国产精品国产三级国产专区53| 亚洲亚洲人成综合网络| 国精品一区二区| 综合国产第二页| 午夜精品一区二区三区电影天堂| 1769国内精品视频在线播放| 艳妇臀荡乳欲伦亚洲一区| 欧美aaaa视频| 欧美少妇在线观看| eeuss影院www影院| 亚洲精品在线观看视频| 国产精品久久久久久久久夜色| 黄网网址免费| 久久av最新网址| 嫩草影院一区二区| 欧美裸体视频| 亚洲人成77777男人| 日韩av在线综合| 成人网在线免费看| 99久热re在线精彩视频| 成人午夜精品视频| 亚洲区欧洲区| 婷婷六月国产精品久久不卡| 成人午夜激情影院| 日本视频在线| 中文字幕一区二区三区在线观看| jizz国产在线| 国产精品久久久久野外| 五月天天在线| 无套内谢丰满少妇中文字幕| 午夜欧美一区二区三区在线播放| 动漫性做爰视频| 亚洲午夜女主播在线直播| 中文字幕av高清片| 亚洲香蕉在线观看| 亚洲成av人**亚洲成av**| 免费黄色激情视频| 成年人在线观看av| 国产精品久久久久9999爆乳| 在线免费三级电影网站| 亚洲熟女毛茸茸| 国产精品资源在线| 国产一区二区精品免费| 日本在线播放一二三区| 中文字幕在线免费观看| 乐播av一区二区三区| 免费观看一区二区三区毛片| 欧美承认网站| 国产乱码精品一区二区三区亚洲人| 久久影院在线观看| 免费久久99精品国产自| 国产寡妇树林野战在线播放| www.久色| 神马日本精品| 91香蕉网站| 岛国一区二区在线观看| 在线看国产视频| 91在线短视频| 日本高清一区二区视频| 一区二区精品在线观看| 午夜精品久久久久久久99樱桃| 蜜臀av午夜一区二区三区| 久久九九免费视频| 欧美视频一二三区| 国产精品18久久久久久久久久久久| 国产三区四区在线观看| 亚洲精品99| 久久久久亚洲AV| 永久免费成人代码| 99在线精品视频在线观看| 波多野结衣一本一道| 中文字幕在线观看国产| 亚洲国产高潮在线观看| 欧美黄色一区二区| 波多野结衣一区二区| 中文字幕一区二区不卡| 色综合久久88色综合天天| 日韩在线视频网| 欧美变态网站| 国产精品特级毛片一区二区三区| 国产精品亚洲午夜一区二区三区| 欧美三级黄网| 欧洲黄色一级视频| 久久久一区二区三区捆绑**| 亚洲精品自拍区在线观看| av免费在线电影| 午夜精品亚洲一区二区三区嫩草| 国产精品一区2区3区| 亚洲猫色日本管| 国内精品久久久久影院一蜜桃| 91精品婷婷国产综合久久竹菊| 久久免费视频6| 91精品中文在线| 中文字幕免费高清电视剧网站在线观看| 欧美日韩在线观看首页| 欧美日韩精品一区二区三区| 日韩亚洲国产中文字幕| 精品午夜久久福利影院| 亚洲麻豆一区二区三区| 人人妻人人玩人人澡人人爽| 欧美xxxx做受欧美88bbw| 欧美成aaa人片免费看| 色偷偷偷在线视频播放| 日本在线观看一区二区| 国产精品视频第一页| 一区 二区 三区| 久久er99热精品一区二区三区| 久久综合88| 红桃一区二区三区| 国产69精品一区二区亚洲孕妇| 一本在线免费视频| 国产日本在线观看| 国产精品国语对白| 欧美岛国在线观看| 亚洲欧洲国产综合| 1stkiss在线漫画| 忘忧草在线www成人影院| 性欧美视频videos6一9| 天堂中文最新版在线中文| 激情小说 在线视频| 97aⅴ精品视频一二三区| 在线一区二区三区四区五区| www香蕉视频| 在线免费观看黄色av| 视频一区二区三| 欧美一卡在线观看| 欧美第一页在线| 久久综合电影| 久久精品国亚洲| 国产精品9999| 精品一区二区三区免费视频| 精品人妻av一区二区三区| 1769国内精品视频在线播放| 围产精品久久久久久久| 9色在线视频网站| 免费看成人av| 99热在线观看免费精品| 一本大道香蕉久久| 91久久国产精品91久久性色| www.看毛片| 在线免费观看h视频| 污导航在线观看| 国产九色porny| 亚洲看片网站| 日韩一区有码在线| 国产精品高潮呻吟久久av无限| 国产在线视频网站| 精品久久影院| 欧美韩国理论所午夜片917电影| 岛国最新视频免费在线观看| 波多野结衣一二三四区| 91亚洲视频| 亚洲成a人片综合在线| 日韩免费成人av| 亚洲欧美日韩国产综合在线| 久久久www免费人成精品| 黄网站app在线观看大全免费视频| 国产精品露脸av在线| 久久久亚洲欧洲日产| 免费在线观看的毛片| 久久国产精品免费一区| 91成人在线观看国产| 日产精品99久久久久久| 国产精品天天摸av网| 亚洲国产精品电影在线观看| eeuss国产一区二区三区四区| 91看片淫黄大片一级| 国产精品高潮久久久久无| 国产精品99久久久久久宅男| 性色a∨人人爽网站| 中文字幕在线一区免费| 日韩精品福利网站| 国产一区导航| 国产三级在线| 国产日韩av一区二区| www.四虎精品| 可以免费在线观看的av| 欧美日韩国产精品一区二区| 在线观看精品国产视频| www 久久久| 欧美日韩在线观看免费| 中文字幕一区二区三区精彩视频| av小说天堂网| 91免费视频网站在线观看| 欧美变态tickling挠脚心| 国内精品嫩模av私拍在线观看| 黄色影院在线观看| 亚洲精品国产首次亮相| 免费观看黄一级视频| 免费黄漫在线观看| 妞干网在线视频| 亚洲调教一区| 色哟哟精品视频| jizz蜜桃视频在线观看| 亚洲国产精品视频在线观看| 欧美精品国产白浆久久久久| 精品国产精品网麻豆系列| 欧美伦理视频网站| 任你弄在线视频免费观看| 亚洲精品中文字幕乱码三区不卡| 中文字幕第315页| 亚洲色大成网站www久久九九| 国产视频第一页| 性欧美暴力猛交另类hd| 亚洲区一区二| 曰本三级在线| 成年人晚上看的视频| 你懂的视频在线播放|