บทนำ
เมื่อเปรียบเทียบกับภาษาโอเพ่นซอร์สอื่นๆ เช่น Perl และ Python ชุมชน PHP ยังขาดความพยายามอย่างมากในการพัฒนาไลบรารีคณิตศาสตร์
เหตุผลหนึ่งอาจเป็นเพราะมีเครื่องมือทางคณิตศาสตร์ที่เชี่ยวชาญอยู่แล้วจำนวนมาก ซึ่งอาจขัดขวางความพยายามของชุมชนในการพัฒนาเครื่องมือ PHP ด้วยตนเอง ตัวอย่างเช่น ฉันทำงานกับเครื่องมืออันทรงพลัง S System ซึ่งมีชุดไลบรารีทางสถิติที่น่าประทับใจ ได้รับการออกแบบมาโดยเฉพาะเพื่อวิเคราะห์ชุดข้อมูล และได้รับรางวัล ACM Award ในปี 1998 สำหรับการออกแบบภาษา ถ้า S หรือลูกพี่ลูกน้องโอเพ่นซอร์ส R เป็นเพียงการเรียก exec_shell เหตุใดจึงต้องประสบปัญหาในการใช้งานฟังก์ชันการคำนวณทางสถิติแบบเดียวกันใน PHP สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ S System, ACM Award หรือ R โปรดดูข้อมูลอ้างอิงที่เกี่ยวข้อง
นี่ไม่ใช่การสิ้นเปลืองพลังงานของนักพัฒนาใช่ไหม หากแรงจูงใจในการพัฒนาไลบรารีคณิตศาสตร์ PHP คือการประหยัดความพยายามของนักพัฒนาและใช้เครื่องมือที่ดีที่สุดสำหรับงาน หัวข้อปัจจุบันของ PHP ก็สมเหตุสมผล
ในทางกลับกัน แรงจูงใจในการสอนอาจสนับสนุนการพัฒนาห้องสมุดคณิตศาสตร์ PHP สำหรับคนประมาณ 10% คณิตศาสตร์เป็นวิชาที่น่าสนใจที่ควรค่าแก่การสำรวจ สำหรับผู้ที่มีความเชี่ยวชาญใน PHP เช่นกัน การพัฒนาไลบรารีคณิตศาสตร์ PHP สามารถปรับปรุงกระบวนการเรียนรู้ทางคณิตศาสตร์ได้ กล่าวอีกนัยหนึ่ง ไม่ใช่แค่อ่านบทเกี่ยวกับการทดสอบ T แต่ยังใช้โปรแกรมที่สามารถคำนวณค่ากลางที่เกี่ยวข้องได้ด้วย ค่าและแสดงในรูปแบบมาตรฐาน
ด้วยการให้คำแนะนำและการฝึกอบรม ฉันหวังว่าจะแสดงให้เห็นว่าการพัฒนาห้องสมุดคณิตศาสตร์ PHP ไม่ใช่เรื่องยาก และอาจแสดงถึงความท้าทายด้านเทคนิคและการเรียนรู้ที่น่าสนใจ ในบทความนี้ ฉันจะยกตัวอย่างไลบรารีคณิตศาสตร์ PHP ที่เรียกว่า SimpleLinearRegression ซึ่งสาธิตวิธีการทั่วไปที่สามารถใช้ในการพัฒนาไลบรารีคณิตศาสตร์ PHP ได้ เริ่มต้นด้วยการพูดคุยถึงหลักการทั่วไปบางประการที่แนะนำฉันในการพัฒนาคลาส SimpleLinearRegression
หลักการชี้นำ
ฉันใช้หลักการทั่วไปหกประการเพื่อเป็นแนวทางในการพัฒนาคลาส SimpleLinearRegression
สร้างคลาสสำหรับโมเดลการวิเคราะห์แต่ละโมเดล
ใช้การเชื่อมโยงแบบย้อนกลับเพื่อพัฒนาคลาส
คาดว่าจะมีคนรับจำนวนมาก
เก็บผลลัพธ์ระดับกลาง
ตั้งค่ากำหนดสำหรับ API โดยละเอียด
ความสมบูรณ์แบบไม่ใช่เป้าหมาย
มาตรวจสอบหลักเกณฑ์แต่ละข้อเหล่านี้โดยละเอียดยิ่งขึ้น
สร้างคลาสสำหรับโมเดลการวิเคราะห์แต่ละแบบ
การทดสอบหรือกระบวนการวิเคราะห์หลักแต่ละรายการควรมีคลาส PHP ที่มีชื่อเดียวกับการทดสอบหรือกระบวนการ คลาสนี้ประกอบด้วยฟังก์ชันอินพุต ฟังก์ชันสำหรับการคำนวณค่ากลางและค่าสรุป และฟังก์ชันเอาต์พุต ( แทนที่ค่ากลาง) ค่าและค่าสรุปทั้งหมดจะแสดงบนหน้าจอในรูปแบบข้อความหรือกราฟิก)
การใช้การโยงย้อนกลับเพื่อพัฒนาคลาส
ในการเขียนโปรแกรมทางคณิตศาสตร์ เป้าหมายการเข้ารหัสโดยปกติจะเป็นค่าเอาต์พุตมาตรฐานที่ขั้นตอนการวิเคราะห์ (เช่น MultipleRegression, TimeSeries หรือ ChiSquared) ต้องการสร้าง จากมุมมองของการแก้ปัญหา หมายความว่าคุณสามารถใช้การโยงย้อนกลับเพื่อพัฒนาวิธีการทางคณิตศาสตร์ได้
ตัวอย่างเช่น หน้าจอเอาต์พุตสรุปจะแสดงผลลัพธ์ของสถิติสรุปตั้งแต่หนึ่งรายการขึ้นไป ผลลัพธ์ทางสถิติโดยสรุปเหล่านี้ขึ้นอยู่กับการคำนวณผลลัพธ์ทางสถิติระดับกลาง และผลลัพธ์ทางสถิติระดับกลางเหล่านี้อาจเกี่ยวข้องกับผลลัพธ์ทางสถิติระดับกลางที่ลึกกว่า และอื่นๆ วิธีการพัฒนาโดยใช้ลิงก์ย้อนกลับนี้นำไปสู่หลักการต่อไป
คาดว่าจะมีคลาสคณิตศาสตร์ getter จำนวนมาก
งานพัฒนาคลาสส่วนใหญ่เกี่ยวข้องกับการคำนวณค่ากลางและค่าสรุป ในทางปฏิบัติ หมายความว่าคุณไม่ควรแปลกใจถ้าคลาสของคุณมีเมธอด getter มากมายที่คำนวณค่ากลางและค่าสรุป
การจัดเก็บผลลัพธ์ระดับกลาง
จัดเก็บผลลัพธ์ของการคำนวณระดับกลางภายในออบเจ็กต์ผลลัพธ์ เพื่อให้คุณสามารถใช้ผลลัพธ์ระดับกลางเป็นข้อมูลป้อนเข้าสำหรับการคำนวณครั้งต่อไป หลักการนี้ถูกนำไปใช้ในการออกแบบภาษา S ในบริบทปัจจุบัน หลักการนี้ถูกนำมาใช้โดยการเลือกตัวแปรอินสแตนซ์เพื่อแสดงค่ากลางที่คำนวณและผลลัพธ์สรุป
การตั้งค่าการตั้งค่าสำหรับ API แบบละเอียด
เมื่อพัฒนารูปแบบการตั้งชื่อสำหรับฟังก์ชันสมาชิกและตัวแปรอินสแตนซ์ในคลาส SimpleLinearRegression ฉันค้นพบว่าถ้าฉันใช้ชื่อที่ยาวกว่า (บางอย่างเช่น getSumSquaredError แทน getYY2 ) เพื่ออธิบายฟังก์ชันสมาชิกและตัวแปรอินสแตนซ์ จากนั้น ทำให้เข้าใจเนื้อหาการทำงานของฟังก์ชันและความหมายของตัวแปรได้ง่ายขึ้น
ฉันไม่ได้ละทิ้งชื่อย่อโดยสิ้นเชิง แต่เมื่อฉันใช้ชื่อที่สั้นลง ฉันต้องพยายามจัดทำบันทึกที่อธิบายความหมายของชื่อได้ครบถ้วน สิ่งที่ฉันทำคือ: รูปแบบการตั้งชื่อที่ย่อมากเป็นเรื่องปกติในการเขียนโปรแกรมทางคณิตศาสตร์ แต่มันทำให้ยากต่อการเข้าใจและพิสูจน์ว่ากิจวัตรทางคณิตศาสตร์บางอย่างนั้นถูกต้องเกินความจำเป็น
ความสมบูรณ์แบบไม่ใช่เป้าหมาย
เป้าหมายของแบบฝึกหัดการเขียนโค้ดนี้ไม่จำเป็นต้องพัฒนากลไกทางคณิตศาสตร์ที่ได้รับการปรับปรุงให้เหมาะสมและเข้มงวดสำหรับ PHP ในระยะเริ่มต้น ควรเน้นไปที่การเรียนรู้เพื่อใช้การทดสอบเชิงวิเคราะห์ที่มีความหมายและการแก้ปัญหาที่ยากในด้านนี้
ตัวแปรอินสแตนซ์
เมื่อสร้างโมเดลการทดสอบหรือกระบวนการทางสถิติ คุณต้องระบุว่าตัวแปรอินสแตนซ์ใดที่ถูกประกาศ
การเลือกตัวแปรอินสแตนซ์สามารถกำหนดได้โดยการบัญชีสำหรับค่ากลางและค่าสรุปที่สร้างโดยกระบวนการวิเคราะห์ ค่ากลางและค่าสรุปแต่ละค่าสามารถมีตัวแปรอินสแตนซ์ที่สอดคล้องกัน โดยค่าของตัวแปรเป็นคุณสมบัติของอ็อบเจ็กต์
ฉันใช้การวิเคราะห์นี้เพื่อกำหนดตัวแปรที่จะประกาศสำหรับคลาส SimpleLinearRegression ในรายการ 1 การวิเคราะห์ที่คล้ายกันสามารถทำได้ในขั้นตอน MultipleRegression, ANOVA หรือ TimeSeries
รายการ 1. ตัวแปรอินสแตนซ์ของคลาส SimpleLinearRegression
<?php
// ลิขสิทธิ์ 2003, พอล เมเกอร์
// เผยแพร่ภายใต้ GPL
คลาส SimpleLinearRegression {
var $n;
var $X = อาร์เรย์();
var $Y = อาร์เรย์();
var $ConfInt;
var $อัลฟ่า;
var $XMean;
var $YMean;
var $SumXX;
var $SumXY;
var $SumYY;
var $ความลาดชัน;
var $YInt;
var $PredictedY = array();
var $Error = array();
var $SquaredError = array();
var $TotalError;
var $SumError;
var $SumSquaredError;
var $ErrorVariance;
var $StdErr;
var $SlopeStdErr;
var $SlopeVal; // ค่า T ของความชัน
var $YIntStdErr;
var $YIntTVal; // ค่า T สำหรับการสกัดกั้น Y
var $R;
var $RSquared;
var $DF; // องศาแห่งอิสรภาพ
var $SlopeProb; // ความน่าจะเป็นของการประมาณความชัน
var $YIntProb; // ความน่าจะเป็นของการประมาณค่าการสกัดกั้น Y
var $AlphaTVal; // ค่า T สำหรับการตั้งค่าอัลฟ่าที่กำหนด
var $ConfIntOfSlope;
var $RPath = "/usr/local/bin/R"; // เส้นทางของคุณที่นี่
var $format = "%01.2f"; // ใช้สำหรับจัดรูปแบบเอาต์พุต
-
-
Constructor
เมธอด Constructor ของคลาส SimpleLinearRegression ยอมรับเวกเตอร์ X และ Y ซึ่งแต่ละตัวมีค่าจำนวนเท่ากัน คุณยังสามารถตั้งค่าช่วงความเชื่อมั่นเริ่มต้น 95% สำหรับค่า Y ที่คาดหวังได้
วิธีคอนสตรัคเตอร์เริ่มต้นด้วยการตรวจสอบว่าแบบฟอร์มข้อมูลนั้นเหมาะสำหรับการประมวลผลหรือไม่ เมื่อเวกเตอร์อินพุตผ่านการทดสอบ "ขนาดเท่ากัน" และ "ค่าที่มากกว่า 1" ส่วนหลักของอัลกอริทึมจะถูกดำเนินการ
การดำเนินการนี้เกี่ยวข้องกับการคำนวณค่ากลางและค่าสรุปของกระบวนการทางสถิติผ่านชุดวิธีทะเยอทะยาน กำหนดค่าส่งคืนของการเรียกแต่ละวิธีให้กับตัวแปรอินสแตนซ์ของคลาส การจัดเก็บผลลัพธ์การคำนวณในลักษณะนี้ทำให้มั่นใจได้ว่าค่ากลางและค่าสรุปพร้อมใช้งานสำหรับการเรียกรูทีนในการคำนวณแบบลูกโซ่ คุณยังสามารถแสดงผลลัพธ์เหล่านี้ได้โดยการเรียกวิธีการเอาท์พุตของคลาสนี้ ตามที่อธิบายไว้ในรายการ 2
รายการ 2. การเรียกวิธีการส่งออกคลาส
<?php
// ลิขสิทธิ์ 2003, พอล เมเกอร์
// เผยแพร่ภายใต้ GPL
ฟังก์ชั่น SimpleLinearRegression($X, $Y, $ConfidenceInterval="95") {
$numX = จำนวน($X);
$numY = จำนวน($Y);
ถ้า ($numX != $numY) {
die("ข้อผิดพลาด: ขนาดของเวกเตอร์ X และ Y ต้องเท่ากัน");
-
ถ้า ($numX <= 1) {
die("ข้อผิดพลาด: ขนาดของอาร์เรย์อินพุตต้องมีอย่างน้อย 2");
-
$นี่->n = $numX;
$นี่->X = $X;
$นี่->Y = $Y;
$this->ConfInt = $ConfidenceInterval;
$this->อัลฟ่า = (1 + ($this->ConfInt / 100) ) / 2;
$this->XMean = $this->getMean($this->X);
$this->YMean = $this->getMean($this->Y);
$this->SumXX = $this->getSumXX();
$this->SumYY = $this->getSumYY();
$this->SumXY = $this->getSumXY();
$this->Slope = $this->getSlope();
$this->YInt = $this->getYInt();
$this->PredictedY = $this->getPredictedY();
$this->ข้อผิดพลาด = $this->getError();
$this->SquaredError = $this->getSquaredError();
$this->SumError = $this->getSumError();
$this->TotalError = $this->getTotalError();
$this->SumSquaredError = $this->getSumSquaredError();
$this->ErrorVariance = $this->getErrorVariance();
$this->StdErr = $this->getStdErr();
$this->SlopeStdErr = $this->getSlopeStdErr();
$this->YIntStdErr = $this->getYIntStdErr();
$this->SlopeTVal = $this->getSlopeTVal();
$this->YIntTVal = $this->getYIntTVal();
$นี่->R = $นี่->getR();
$this->RSquared = $this->getRSquared();
$นี่->DF = $นี่->getDF();
$this->SlopeProb = $this->getStudentProb($this->SlopeTVal, $this->DF);
$this->YIntProb = $this->getStudentProb($this->YIntTVal, $this->DF);
$this->AlphaTVal = $this->getInverseStudentProb($this->อัลฟ่า, $this->DF);
$this->ConfIntOfSlope = $this->getConfIntOfSlope();
กลับเป็นจริง;
-
-
ชื่อวิธีการและลำดับได้มาจากการผสมผสานระหว่างลิงก์ย้อนกลับและการอ้างอิงถึงตำราสถิติที่ใช้โดยนักศึกษาระดับปริญญาตรี ซึ่งจะอธิบายวิธีคำนวณค่ากลางทีละขั้นตอน ชื่อของค่ากลางที่ฉันต้องคำนวณจะขึ้นต้นด้วย "get" จึงเป็นที่มาของชื่อเมธอด
ปรับโมเดลให้เข้ากับข้อมูล
ขั้นตอน SimpleLinearRegression ใช้เพื่อสร้างเส้นตรงให้พอดีกับข้อมูล โดยที่เส้นมีสมการมาตรฐานต่อไปนี้:
y = b + mx
รูปแบบ PHP ของสมการนี้ดูคล้ายกับรายการ 3:
รายการ 3 ปรับโมเดลให้เข้ากับสมการ PHP ที่ตรงกับข้อมูล
$PredictedY[$i] = $YIntercept + $Slope * $X[$i]
คลาส SimpleLinearRegression ใช้เกณฑ์กำลังสองน้อยที่สุดในการประมาณค่าพารามิเตอร์ Y-intercept (Y Intercept) และความชัน (Slope) พารามิเตอร์โดยประมาณเหล่านี้ใช้ในการสร้างสมการเชิงเส้น (ดูรายการ 3) ที่สร้างแบบจำลองความสัมพันธ์ระหว่างค่า X และ Y
เมื่อใช้สมการเชิงเส้นที่ได้รับ คุณจะได้ค่า Y ที่คาดการณ์ไว้สำหรับค่า X แต่ละค่า หากสมการเชิงเส้นเหมาะสมกับข้อมูลดี ค่าที่สังเกตและทำนายของ Y มักจะสอดคล้องกัน
วิธีการตรวจสอบว่ามีความเหมาะสมหรือไม่
คลาส SimpleLinearRegression จะสร้างค่าสรุปค่อนข้างน้อย ค่าสรุปที่สำคัญคือสถิติ T ซึ่งวัดว่าสมการเชิงเส้นเหมาะสมกับข้อมูลได้ดีเพียงใด หากข้อตกลงดีมาก สถิติ T ก็มีแนวโน้มสูง หากสถิติ T มีค่าน้อย ควรแทนที่สมการเชิงเส้นด้วยแบบจำลองที่ถือว่าค่าเฉลี่ยของค่า Y เป็นตัวทำนายที่ดีที่สุด (นั่นคือ ค่าเฉลี่ยของชุดค่าต่างๆ มักจะเป็นตัวทำนายที่มีประโยชน์ ของการสังเกตครั้งถัดไป ให้กำหนดให้เป็นโมเดลเริ่มต้น)
เพื่อทดสอบว่าสถิติ T มีขนาดใหญ่พอที่จะไม่พิจารณาค่าเฉลี่ยของค่า Y เป็นตัวทำนายที่ดีที่สุดหรือไม่ คุณต้องคำนวณความน่าจะเป็นแบบสุ่มในการรับสถิติ T หากความน่าจะเป็นที่จะได้สถิติ T ต่ำ คุณสามารถปฏิเสธสมมติฐานว่างที่ว่าค่าเฉลี่ยเป็นตัวทำนายที่ดีที่สุดได้ และด้วยเหตุนี้ คุณจึงมั่นใจได้ว่าแบบจำลองเชิงเส้นอย่างง่ายเหมาะสมกับข้อมูลได้ดี
แล้วจะคำนวณความน่าจะเป็นของค่าสถิติ T ได้อย่างไร?
การคำนวณความน่าจะเป็นของค่าสถิติ T
เนื่องจาก PHP ขาดรูทีนทางคณิตศาสตร์ในการคำนวณความน่าจะเป็นของค่าสถิติ T ฉันจึงตัดสินใจทิ้งงานนี้ให้กับแพ็คเกจการคำนวณทางสถิติ R (ดู www.r-project.org ในแหล่งข้อมูล) รับค่าที่จำเป็น ฉันยังต้องการดึงความสนใจไปที่แพ็คเกจนี้เนื่องจาก:
R ให้แนวคิดมากมายที่นักพัฒนา PHP อาจเลียนแบบในไลบรารีคณิตศาสตร์ PHP
ด้วย R เป็นไปได้ที่จะระบุได้ว่าค่าที่ได้รับจากไลบรารีคณิตศาสตร์ PHP นั้นสอดคล้องกับค่าที่ได้รับจากแพ็คเกจทางสถิติโอเพ่นซอร์สที่เป็นผู้ใหญ่และมีอิสระหรือไม่
โค้ดในรายการ 4 แสดงให้เห็นว่าการปล่อยให้มันเป็น R เพื่อรับค่านั้นทำได้ง่ายเพียงใด
รายการ 4. จัดการกับแพ็คเกจทางสถิติ R เพื่อรับค่า
<?php
// ลิขสิทธิ์ 2003, พอล เมเกอร์
// เผยแพร่ภายใต้ GPL
คลาส SimpleLinearRegression {
var $RPath = "/usr/local/bin/R"; // เส้นทางของคุณที่นี่
ฟังก์ชั่น getStudentProb($T, $df) {
$ความน่าจะเป็น = 0.0;
$cmd = "echo 'dt($T, $df)' | $this->RPath --slave";
$result = shell_exec($cmd);
list($LineNumber, $Probability) = explode(" ", trim($result));
ส่งคืนความน่าจะเป็น $;
-
ฟังก์ชั่น getInverseStudentProb($alpha, $df) {
$ความน่าจะเป็นแบบผกผัน = 0.0;
$cmd = "echo 'qt($alpha, $df)' | $this->RPath --slave";
$result = shell_exec($cmd);
list($LineNumber, $InverseProbability) = explode(" ", trim($result));
กลับ $InverseProbability;
-
-
?>
โปรดทราบว่าเส้นทางไปยังไฟล์ปฏิบัติการ R ได้รับการตั้งค่าและใช้ในทั้งสองฟังก์ชัน ฟังก์ชันแรกจะส่งกลับค่าความน่าจะเป็นที่เกี่ยวข้องกับสถิติ T ตามการแจกแจง T ของนักเรียน ในขณะที่ฟังก์ชันผกผันที่สองจะคำนวณสถิติ T ที่สอดคล้องกับการตั้งค่าอัลฟ่าที่กำหนด เมธอด getStudentProb ใช้เพื่อประเมินความพอดีของโมเดลเชิงเส้น เมธอด getInverseStudentProb ส่งคืนค่ากลาง ซึ่งใช้ในการคำนวณช่วงความเชื่อมั่นสำหรับค่า Y ที่คาดการณ์ไว้แต่ละค่า
เนื่องจากมีพื้นที่จำกัด ฉันจึงไม่สามารถให้รายละเอียดฟังก์ชันทั้งหมดในชั้นเรียนนี้ทีละรายการได้ ดังนั้น หากคุณต้องการทราบคำศัพท์และขั้นตอนที่เกี่ยวข้องกับการวิเคราะห์การถดถอยเชิงเส้นอย่างง่าย ฉันขอแนะนำให้คุณดูตำราสถิติที่ใช้ โดยนักศึกษาระดับปริญญาตรี
การศึกษาภาวะเหนื่อยหน่าย
เพื่อสาธิตวิธีการใช้ชั้นเรียนนี้ ฉันสามารถใช้ข้อมูลจากการศึกษาภาวะเหนื่อยหน่ายในยูทิลิตี้ได้ Michael Leiter และ Kimberly Ann Meechan ศึกษาความสัมพันธ์ระหว่างการวัดความเหนื่อยหน่ายที่เรียกว่า Exhaustion Index กับตัวแปรอิสระที่เรียกว่า Concentration สมาธิหมายถึงสัดส่วนของการติดต่อทางสังคมของผู้คนที่มาจากสภาพแวดล้อมการทำงานของพวกเขา
เพื่อศึกษาความสัมพันธ์ระหว่างค่าดัชนีการบริโภคและค่าความเข้มข้นสำหรับบุคคลในกลุ่มตัวอย่าง ให้โหลดค่าเหล่านี้ลงในอาร์เรย์ที่มีชื่ออย่างเหมาะสม และสร้างอินสแตนซ์คลาสนี้ด้วยค่าอาร์เรย์เหล่านี้ หลังจากสร้างอินสแตนซ์ของคลาสแล้ว ให้แสดงค่าสรุปบางส่วนที่สร้างโดยคลาสเพื่อประเมินว่าโมเดลเชิงเส้นเหมาะสมกับข้อมูลได้ดีเพียงใด
รายการ 5 แสดงสคริปต์ที่โหลดข้อมูลและแสดงค่าสรุป:
รายการ 5 สคริปต์ที่โหลดข้อมูลและแสดงค่าสรุป
<?php
// BurnoutStudy.php
// ลิขสิทธิ์ 2003, พอล เมเกอร์
// เผยแพร่ภายใต้ GPL
รวม "SimpleLinearRegression.php";
// โหลดข้อมูลจากการศึกษาภาวะเหนื่อยหน่าย
$ความเข้มข้น = อาร์เรย์(20,60,38,88,79,87,
68,12,35,70,80,92,
77,86,83,79,75,81,
75,77,77,77,17,85,96);
$ExhaustionIndex = อาร์เรย์(100,525,300,980,310,900,
410,296,120,501,920,810,
506,493,892,527,600,855,
709,791,718,684,141,400,970);
$slr = SimpleLinearRegression ใหม่ ($ความเข้มข้น, $ExhaustionIndex);
$YInt = sprintf($slr->รูปแบบ, $slr->YInt);
$Slope = sprintf($slr->รูปแบบ, $slr->ความชัน);
$SlopeTVal = sprintf($slr->รูปแบบ, $slr->SlopeTVal);
$SlopeProb = sprintf("%01.6f", $slr->SlopeProb);
-
<เส้นขอบของตาราง='1' เซลล์แพดดิ้ง='5'>
<tr>
<th align='right'>สมการ:</th>
<td></td>
</tr>
<tr>
<th align='right'>T:</th>
<td></td>
</tr>
<tr>
<th align='right'>ปัญหา > T:</th>
<td><td>
</tr>
</ตาราง>
การเรียกใช้สคริปต์นี้ผ่านเว็บเบราว์เซอร์จะให้ผลลัพธ์ต่อไปนี้:
สมการ: การหมดแรง = -29.50 + (8.87 * ความเข้มข้น)
อ: 6.03
Prob > T: 0.000005
แถวสุดท้ายของตารางนี้บ่งชี้ว่าความน่าจะเป็นแบบสุ่มที่จะได้รับค่า T ขนาดใหญ่นั้นต่ำมาก สรุปได้ว่าแบบจำลองเชิงเส้นแบบธรรมดามีพลังในการทำนายได้ดีกว่าการใช้ค่าเฉลี่ยของค่าการบริโภค
การทราบถึงความเข้มข้นของการเชื่อมต่อในที่ทำงานของใครบางคนสามารถใช้เพื่อทำนายระดับความเหนื่อยหน่ายที่พวกเขาอาจต้องเสียไป สมการนี้บอกเราว่า ทุกๆ 1 หน่วยของค่าความเข้มข้นที่เพิ่มขึ้น มูลค่าการบริโภคของบุคคลในสาขาบริการสังคมจะเพิ่มขึ้น 8 หน่วย นี่เป็นหลักฐานเพิ่มเติมว่าเพื่อลดความเหนื่อยหน่ายที่อาจเกิดขึ้น บุคคลที่ทำงานด้านบริการสังคมควรพิจารณาหาเพื่อนนอกที่ทำงาน
นี่เป็นเพียงการสรุปคร่าวๆ ว่าผลลัพธ์เหล่านี้อาจหมายถึงอะไร หากต้องการสำรวจความหมายของชุดข้อมูลนี้โดยสมบูรณ์ คุณอาจต้องศึกษาข้อมูลโดยละเอียดเพิ่มเติมเพื่อให้แน่ใจว่านี่เป็นการตีความที่ถูกต้อง ในบทความถัดไป ผมจะพูดถึงการวิเคราะห์อื่นๆ ที่ควรทำ
คุณเรียนรู้อะไร?
ประการแรก คุณไม่จำเป็นต้องเป็นนักวิทยาศาสตร์จรวดเพื่อพัฒนาแพ็คเกจคณิตศาสตร์ที่ใช้ PHP ที่มีความหมายได้ ด้วยการยึดมั่นในเทคนิคเชิงวัตถุมาตรฐานและใช้วิธีการแก้ไขปัญหาแบบย้อนกลับอย่างชัดเจน การใช้ PHP ในการใช้งานกระบวนการทางสถิติพื้นฐานบางอย่างจึงค่อนข้างง่าย
จากมุมมองของการสอน ฉันคิดว่าแบบฝึกหัดนี้มีประโยชน์มาก หากเพียงเพราะคุณต้องคิดถึงการทดสอบทางสถิติหรือกิจวัตรในระดับนามธรรมที่สูงขึ้นและต่ำลง กล่าวอีกนัยหนึ่ง วิธีที่ดีในการเสริมการทดสอบทางสถิติหรือการเรียนรู้ตามขั้นตอนของคุณคือการใช้ขั้นตอนดังกล่าวเป็นอัลกอริทึม
การนำการทดสอบทางสถิติไปใช้มักจะต้องใช้มากกว่าข้อมูลที่ให้มา รวมถึงการแก้ปัญหาและการค้นพบอย่างสร้างสรรค์ นอกจากนี้ยังเป็นวิธีที่ดีในการค้นหาช่องว่างทางความรู้เกี่ยวกับหัวข้อนั้นๆ
ข้อเสียคือคุณพบว่า PHP ขาดวิธีการในการสุ่มตัวอย่าง ซึ่งจำเป็นต่อการทดสอบทางสถิติส่วนใหญ่ คุณจะต้องปล่อยให้ R ประมวลผลเพื่อรับค่าเหล่านี้ แต่ฉันเกรงว่าคุณจะไม่มีเวลาหรือความสนใจในการติดตั้ง R การใช้งาน PHP ดั้งเดิมของฟังก์ชันความน่าจะเป็นทั่วไปบางอย่างสามารถแก้ปัญหานี้ได้
ปัญหาอื่น: คลาสสร้างค่ากลางและค่าสรุปจำนวนมาก แต่ผลลัพธ์สรุปไม่ได้ใช้ประโยชน์จากสิ่งนี้จริงๆ ฉันได้ให้ผลลัพธ์ที่ยุ่งยากมาบ้างแล้ว แต่ยังไม่เพียงพอหรือมีการจัดระเบียบอย่างดี เพื่อให้คุณสามารถตีความผลลัพธ์ของการวิเคราะห์ได้อย่างเพียงพอ จริงๆ แล้ว ฉันไม่รู้เลยว่าจะรวมเอาวิธีเอาท์พุตเข้ากับคลาสนี้ได้อย่างไร สิ่งนี้จะต้องได้รับการแก้ไข
ท้ายที่สุด การทำความเข้าใจข้อมูลต้องการมากกว่าแค่ดูค่าสรุป คุณต้องเข้าใจด้วยว่าจุดข้อมูลแต่ละจุดมีการกระจายอย่างไร หนึ่งในวิธีที่ดีที่สุดในการทำเช่นนี้คือการสร้างกราฟข้อมูลของคุณ ขอย้ำอีกครั้งว่าฉันไม่ค่อยรู้เรื่องนี้มากนัก แต่ถ้าคุณต้องการใช้คลาสนี้เพื่อวิเคราะห์ข้อมูลจริง คุณต้องแก้ไขปัญหานี้