Das grundlegende Ziel der
konzeptionell
einfachen linearen Regressionsmodellierung besteht darin, die beste gerade Linie aus einer zweidimensionalen Ebene zu finden, die aus Paaren von X- und Y-Werten (d. h. X- und Y-Messungen) besteht.Sobald die Linie mit der Methode der minimalen Varianz gefunden wurde, können verschiedene statistische Tests durchgeführt werden, um zu bestimmen, wie gut die Linie zur beobachteten Abweichung vom Y-Wert passt.
Die lineare Gleichung (y = mx + b) hat zwei Parameter, die aus den bereitgestellten X- und Y-Daten geschätzt werden müssen: die Steigung (m) und der y-Achsenabschnitt (b). Sobald diese beiden Parameter geschätzt sind, können Sie die beobachteten Werte in die lineare Gleichung eingeben und die durch die Gleichung generierten Y-Vorhersagen beobachten.
Um die Parameter m und b mithilfe der Methode der minimalen Varianz zu schätzen, müssen wir die geschätzten Werte von m und b finden, die die beobachteten und vorhergesagten Werte von Y für alle X-Werte minimieren. Die Differenz zwischen den beobachteten und den vorhergesagten Werten wird als Fehler ( y i- (mx i+ b) ) bezeichnet. Wenn Sie jeden Fehlerwert quadrieren und dann diese Residuen summieren, ist das Ergebnis eine schlechte Vorhersagequadratzahl. Die Verwendung der Methode der minimalen Varianz zur Bestimmung der besten Anpassung erfordert die Suche nach Schätzungen für m und b, die die Vorhersagevarianz minimieren.
Zwei grundlegende Methoden können verwendet werden, um die Schätzungen m und b zu finden, die die Methode der minimalen Varianz erfüllen. Im ersten Ansatz kann man mithilfe eines numerischen Suchprozesses verschiedene Werte von m und b festlegen und diese auswerten, um letztendlich über die Schätzung zu entscheiden, die die minimale Varianz ergibt. Die zweite Methode besteht darin, mithilfe der Infinitesimalrechnung Gleichungen zur Schätzung von m und b zu finden. Ich werde nicht auf die Berechnungen eingehen, die bei der Ableitung dieser Gleichungen eine Rolle spielen, aber ich habe diese analytischen Gleichungen in der SimpleLinearRegression-Klasse verwendet, um Schätzungen der kleinsten Quadrate von m und b zu finden (siehe getSlope() und getYIntercept in der Methode der SimpleLinearRegression-Klasse).
Selbst wenn Sie über Gleichungen verfügen, mit denen Sie die kleinsten Quadrate von m und b ermitteln können, heißt das nicht, dass das Ergebnis eine gerade Linie ist, die gut zu den Daten passt, wenn Sie diese Parameter in eine lineare Gleichung einfügen. Der nächste Schritt in diesem einfachen linearen Regressionsprozess besteht darin, zu bestimmen, ob die verbleibende Vorhersagevarianz akzeptabel ist.
Sie können einen statistischen Entscheidungsprozess verwenden, um die Alternativhypothese, dass die Gerade zu den Daten passt, abzulehnen. Dieser Prozess basiert auf der Berechnung der T-Statistik und verwendet eine Wahrscheinlichkeitsfunktion, um die Wahrscheinlichkeit einer zufällig großen Beobachtung zu ermitteln. Wie in Teil 1 erwähnt, generiert die SimpleLinearRegression-Klasse eine Reihe von Zusammenfassungswerten. Einer der wichtigen Zusammenfassungswerte ist die T-Statistik, mit der gemessen werden kann, wie gut die lineare Gleichung zu den Daten passt. Wenn die Anpassung gut ist, wird die T-Statistik tendenziell einen großen Wert haben; wenn der T-Wert klein ist, sollten Sie Ihre lineare Gleichung durch ein Standardmodell ersetzen, das davon ausgeht, dass der Mittelwert der Y-Werte der beste Prädiktor ist ( weil Der Durchschnitt einer Reihe von Werten kann oft ein nützlicher Prädiktor für die nächste Beobachtung sein.
Um zu testen, ob die T-Statistik groß genug ist, um nicht den durchschnittlichen Y-Wert als besten Prädiktor zu verwenden, müssen Sie die Wahrscheinlichkeit berechnen, die T-Statistik zufällig zu erhalten. Wenn die Wahrscheinlichkeit niedrig ist, kann auf die Nullannahme, dass der Mittelwert der beste Prädiktor ist, verzichtet werden, und man kann dementsprechend sicher sein, dass ein einfaches lineares Modell gut zu den Daten passt. (Weitere Informationen zur Berechnung der Wahrscheinlichkeit einer T-Statistik finden Sie in Teil 1.)
Zurück zum statistischen Entscheidungsprozess. Es sagt Ihnen, wann Sie die Nullhypothese nicht übernehmen sollten, aber es sagt Ihnen nicht, ob Sie die Alternativhypothese akzeptieren sollen. In einem Forschungsumfeld müssen alternative Hypothesen für lineare Modelle anhand theoretischer und statistischer Parameter aufgestellt werden.
Das Datenrecherchetool, das Sie erstellen werden, implementiert einen statistischen Entscheidungsprozess für lineare Modelle (T-Tests) und stellt zusammenfassende Daten bereit, die zur Konstruktion der theoretischen und statistischen Parameter verwendet werden können, die zur Erstellung linearer Modelle erforderlich sind. Datenforschungstools können als Entscheidungsunterstützungstools für Wissensarbeiter zur Untersuchung von Mustern in kleinen bis mittelgroßen Datensätzen klassifiziert werden.
Aus Lernperspektive lohnt es sich, die einfache lineare Regressionsmodellierung zu studieren, da sie die einzige Möglichkeit ist, fortgeschrittenere Formen der statistischen Modellierung zu verstehen. Beispielsweise bilden viele Kernkonzepte der einfachen linearen Regression eine gute Grundlage für das Verständnis der multiplen Regression (Multiple Regression), der Faktoranalyse (Faktoranalyse) und der Zeitreihen (Time Series).
Die einfache lineare Regression ist ebenfalls eine vielseitige Modellierungstechnik. Es kann zur Modellierung krummliniger Daten durch Transformation der Rohdaten (normalerweise mit einer logarithmischen oder Potenztransformation) verwendet werden. Diese Transformationen linearisieren die Daten, sodass sie mithilfe einer einfachen linearen Regression modelliert werden können. Das resultierende lineare Modell wird als lineare Formel dargestellt, die sich auf die transformierten Werte bezieht.
Wahrscheinlichkeitsfunktion
Im vorherigen Artikel habe ich das Problem der Implementierung der Wahrscheinlichkeitsfunktion in PHP umgangen, indem ich R gebeten habe, den Wahrscheinlichkeitswert zu finden. Ich war mit dieser Lösung nicht ganz zufrieden und begann daher mit der Recherche zu der Frage: Was wird benötigt, um Wahrscheinlichkeitsfunktionen auf Basis von PHP zu entwickeln?
Ich fing an, online nach Informationen und Code zu suchen. Eine Quelle für beides ist das Buch Numerical Recipes in C. Probability Functions. Ich habe einige Wahrscheinlichkeitsfunktionscodes (Funktionen gammln.c und betai.c) in PHP neu implementiert, bin aber mit den Ergebnissen immer noch nicht zufrieden. Es scheint etwas mehr Code zu haben als einige andere Implementierungen. Zusätzlich benötige ich die Umkehrwahrscheinlichkeitsfunktion.
Glücklicherweise bin ich auf John Pezzullos Interactive Statistical Calculation gestoßen. Johns Website über Wahrscheinlichkeitsverteilungsfunktionen enthält alle Funktionen, die ich brauche, implementiert in JavaScript, um das Lernen zu erleichtern.
Ich habe die Funktionen Student T und Fisher F nach PHP portiert. Ich habe die API ein wenig geändert, um sie an den Java-Namensstil anzupassen, und alle Funktionen in eine Klasse namens Distribution eingebettet. Ein großartiges Feature dieser Implementierung ist die doCommonMath-Methode, die von allen Funktionen in dieser Bibliothek wiederverwendet wird. Andere Tests, die ich nicht implementiert habe (Normalitätstest und Chi-Quadrat-Test), verwenden ebenfalls die doCommonMath-Methode.
Ein weiterer Aspekt dieser Transplantation ist ebenfalls erwähnenswert. Mithilfe von JavaScript können Benutzer Instanzvariablen dynamisch bestimmte Werte zuweisen, wie zum Beispiel:
var PiD2 = pi() / 2
Das ist in PHP nicht möglich. Instanzvariablen können nur einfache konstante Werte zugewiesen werden. Hoffentlich wird dieser Fehler in PHP5 behoben.
Beachten Sie, dass der Code in Listing 1 keine Instanzvariablen definiert – das liegt daran, dass ihnen in der JavaScript-Version dynamisch Werte zugewiesen werden.
Listing 1. Implementierung der Wahrscheinlichkeitsfunktion
<?php
// Distribution.php
// Copyright John Pezullo
// Veröffentlicht unter denselben Bedingungen wie PHP.
// PHP-Port und OO'fying von 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 ) {
zurückkehren
1 - ($th + $sth * $cth * $this->doCommonMath($cth * $cth, 2, $df - 3, -1))
/ (pi()/2);
} anders {
return 1 - $sth * $this->doCommonMath($cth * $cth, 1, $df - 3, -1);
}
}
Funktion 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;
} anders {
$v = $v + $dv;
}
}
return $t;
}
Funktion getFisherF($f, $n1, $n2) {
// implementiert, aber nicht angezeigt
}
Funktion getInverseFisherF($p, $n1, $n2) {
// implementiert, aber nicht angezeigt
}
}
?>
Ausgabemethoden
Nachdem Sie nun die Wahrscheinlichkeitsfunktion in PHP implementiert haben, besteht die einzige verbleibende Herausforderung bei der Entwicklung eines PHP-basierten Datenrecherchetools darin, eine Methode zur Anzeige der Analyseergebnisse zu entwerfen.
Die einfache Lösung besteht darin, die Werte aller Instanzvariablen nach Bedarf auf dem Bildschirm anzuzeigen. Im ersten Artikel habe ich genau das getan, als ich die lineare Gleichung, den T-Wert und die T-Wahrscheinlichkeit für die Burnout-Studie gezeigt habe. Es ist hilfreich, für bestimmte Zwecke auf bestimmte Werte zugreifen zu können, und SimpleLinearRegression unterstützt diese Verwendung.
Eine andere Methode zur Ausgabe von Ergebnissen besteht jedoch darin, Teile der Ausgabe systematisch zu gruppieren. Wenn Sie die Ausgabe der wichtigsten Statistiksoftwarepakete untersuchen, die für die Regressionsanalyse verwendet werden, werden Sie feststellen, dass diese dazu neigen, ihre Ausgabe auf die gleiche Weise zu gruppieren. Dazu gehören häufig eine Übersichtstabelle, eine Varianzanalysetabelle, eine Parameterschätzungstabelle und ein R-Wert. Ebenso habe ich einige Ausgabemethoden mit den folgenden Namen erstellt:
showSummaryTable()
showAnalysisOfVariance()
showParameterEstimates()
showRValues()
Ich habe auch eine Methode zum Anzeigen der linearen Vorhersageformel (getFormula()). Viele Statistiksoftwarepakete geben keine Formeln aus, sondern erwarten vom Benutzer, dass er Formeln basierend auf der Ausgabe der oben genannten Methoden erstellt. Dies liegt zum Teil daran, dass die endgültige Form der Formel, die Sie letztendlich zum Modellieren Ihrer Daten verwenden, aus folgenden Gründen von der Standardformel abweichen kann:
Der Y-Achsenabschnitt verfügt möglicherweise nicht über eine sinnvolle Interpretation, oder die Eingabewerte wurden möglicherweise transformiert in einer Weise, dass Sie sie möglicherweise nicht konvertieren müssen, um die endgültige Erklärung zu erhalten.
Alle diese Methoden gehen davon aus, dass das Ausgabemedium eine Webseite ist. Da Sie diese zusammenfassenden Werte möglicherweise in einem anderen Medium als einer Webseite ausgeben möchten, habe ich beschlossen, diese Ausgabemethoden in eine Klasse zu packen, die die SimpleLinearRegression-Klasse erbt. Der Code in Listing 2 soll die allgemeine Logik der Ausgabeklasse demonstrieren. Um die gemeinsame Logik stärker hervorzuheben, wurde der Code entfernt, der verschiedene Show-Methoden implementiert.
Listing 2. Demonstration der gemeinsamen Logik der Ausgabeklasse
<?php
// HTML.php
// Copyright 2003, Paul Meagher
// Verteilt unter GPL
include_once "slr/SimpleLinearRegression.php";
class SimpleLinearRegressionHTML erweitert SimpleLinearRegression {
function SimpleLinearRegressionHTML($X, $Y, $conf_int) {
SimpleLinearRegression::SimpleLinearRegression($X, $Y, $conf_int);
}
Funktion showTableSummary($x_name, $y_name) { }
Funktion showAnalysisOfVariance() { }
Funktion showParameterEstimates() { }
Funktion showFormula($x_name, $y_name) { }
Funktion showRValues() {}
}
?>
Der Konstruktor dieser Klasse ist lediglich ein Wrapper um den SimpleLinearRegression-Klassenkonstruktor. Das heißt, wenn Sie die HTML-Ausgabe einer SimpleLinearRegression-Analyse anzeigen möchten, sollten Sie die SimpleLinearRegressionHTML-Klasse instanziieren, anstatt die SimpleLinearRegression-Klasse direkt zu instanziieren. Der Vorteil besteht darin, dass Sie die SimpleLinearRegression-Klasse nicht mit vielen ungenutzten Methoden überladen und Klassen freier für andere Ausgabemedien definieren können (und möglicherweise dieselbe API für verschiedene Medientypen implementieren).
Grafische Ausgabe:
Die von Ihnen bisher implementierten Ausgabemethoden zeigen zusammenfassende Werte im HTML-Format an. Es eignet sich auch zur Anzeige von Streudiagrammen oder Liniendiagrammen dieser Daten im GIF-, JPEG- oder PNG-Format.
Anstatt den Code zum Generieren von Linien- und Verteilungsdiagrammen selbst zu schreiben, hielt ich es für besser, eine PHP-basierte Grafikbibliothek namens JpGraph zu verwenden. JpGraph wird aktiv von Johan Persson weiterentwickelt, dessen Projektwebsite es so beschreibt:
Ob für Diagramme, die mit minimalem Code „auf schnelle, aber unangemessene Weise erhalten“ wurden, oder für komplexe professionelle Diagramme, die eine sehr feinkörnige Steuerung erfordern, JpGraph kann zum Zeichnen verwendet werden sie werden einfach. JpGraph eignet sich gleichermaßen für wissenschaftliche und geschäftliche Grafiken.
Die JpGraph-Distribution enthält eine Reihe von Beispielskripten, die an spezifische Anforderungen angepasst werden können. Die Verwendung von JpGraph als Datenrecherchetool ist so einfach wie die Suche nach einem Beispielskript, das etwas Ähnliches tut, wie ich es benötige, und dessen Anpassung an meine spezifischen Anforderungen.
Das Skript in Listing 3 wird aus dem Beispieldatenexplorationstool (explore.php) extrahiert und zeigt, wie die Bibliothek aufgerufen und die Line- und Scatter-Klassen mit Daten aus der SimpleLinearRegression-Analyse gefüllt werden. Die Kommentare in diesem Code wurden von Johan Persson geschrieben (die JPGraph-Codebasis dokumentiert dies gut).
Listing 3. Details zu Funktionen aus dem Beispieldatenexplorationstool explore.php
<?php
// Aus dem explore.php-Skript extrahiertes Snippet
include ("jpgraph/jpgraph.php");
include („jpgraph/jpgraph_scatter.php“);
include ("jpgraph/jpgraph_line.php");
// Das Diagramm erstellen
$graph = new Graph(300,200,'auto');
$graph->SetScale("linlin");
// Setup-Titel
$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);
// Stellen Sie sicher, dass die X-Achse immer an der
// Unten im Diagramm und nicht nur bei Y=0
// die Standardposition
$graph->xaxis->SetPos('min');
// Das Streudiagramm mit einigen schönen Farben erstellen
$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);
// Erstelle die Regressionslinie
$lplot = new LinePlot($slr->PredictedY, $slr->X);
$lplot->SetWeight(2);
$lplot->SetColor('navy');
// Füge die Pltos zur Zeile hinzu
$graph->Add($sp1);
$graph->Add($lplot);
// ... und Strich
$graph_name = "temp/test.png";
$graph->Stroke($graph_name);
?>
<img src='<?php echo $graph_name ?>' vspace='15'>
?>
Datenrechercheskript
Das Datenrecherchetool besteht aus einem einzigen Skript (explore.php), das Methoden der SimpleLinearRegressionHTML-Klasse und der JpGraph-Bibliothek aufruft .
Das Skript verwendet eine einfache Verarbeitungslogik. Der erste Teil des Skripts führt eine grundlegende Validierung der übermittelten Formulardaten durch. Wenn diese Formulardaten die Validierung bestehen, wird der zweite Teil des Skripts ausgeführt.
Der zweite Teil des Skripts enthält Code, der die Daten analysiert und die zusammenfassenden Ergebnisse in HTML- und Grafikformaten anzeigt. Die Grundstruktur des explore.php-Skripts ist in Listing 4 dargestellt:
Listing 4. Struktur von explore.php
<?php
// explore.php
if (!empty($x_values)) {
$X = explosion(",", $x_values);
$numX = count($X);
}
if (!empty($y_values)) {
$Y = explosion(",", $y_values);
$numY = count($Y);
}
// Eintragsdateneingabeformular anzeigen, wenn Variablen nicht gesetzt sind
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) ) {
// Code zur Anzeige des Eingabeformulars weggelassen
} anders {
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");
// Der Code zum Anzeigen der Grafiken ist inline im
// explore.php-Skript. Der Code für diese beiden Liniendiagramme
// Beendet das Skript:
// Code zum Anzeigen des Streu- und Liniendiagramms weggelassen
// Code zum Anzeigen des Residuendiagramms weggelassen
}
?>
Brandschadenstudie
Um den Einsatz von Datenrecherchetools zu demonstrieren, werde ich Daten aus einer hypothetischen Brandschadensstudie verwenden. In dieser Studie wird die Höhe der Brandschäden in großen Wohngebieten mit der Entfernung zur nächsten Feuerwache in Beziehung gesetzt. Beispielsweise wären Versicherungsunternehmen daran interessiert, diesen Zusammenhang zu untersuchen, um Versicherungsprämien festzulegen.
Die Daten dieser Studie sind in der Eingabemaske in Abbildung 1 dargestellt.
Abbildung 1. Eingabebildschirm mit Studiendaten
Nachdem die Daten übermittelt wurden, werden sie analysiert und die Ergebnisse dieser Analysen werden angezeigt. Der erste angezeigte Ergebnissatz ist die Tabellenzusammenfassung , wie in Abbildung 2 dargestellt.
Abbildung 2. Die Tabellenzusammenfassung ist der erste angezeigte Ergebnissatz
Die Tabellenzusammenfassung zeigt die Eingabedaten in Tabellenform und zusätzlichen Spalten an, die den vorhergesagten Wert Y angeben, der dem beobachteten Wert entspricht
Abbildung 3 zeigt drei übergeordnete Datenzusammenfassungstabellen im Anschluss an die Tabellenzusammenfassung.
Abbildung 3. Zeigt drei übergeordnete Datenzusammenfassungstabellen nach der Tabellenzusammenfassung
Die Tabelle „Varianzanalyse“ zeigt, wie Abweichungen der Y -Werte den beiden Hauptquellen der Abweichung zugeschrieben werden können: der durch das Modell erklärten Varianz (siehe Zeile „Modell“) und der nicht durch das Modell erklärten Varianz (siehe Zeile „Fehler“). Ein großer F- Wert bedeutet, dass das lineare Modell den größten Teil der Abweichung in den Y -Messungen erfasst. Diese Tabelle ist in einer Umgebung mit mehrfacher Regression nützlicher, in der jede unabhängige Variable eine Zeile in der Tabelle hat.
Die Tabelle „Parameterschätzungen“ zeigt den geschätzten Schnittpunkt (Intercept) und die Steigung (Slope) der Y-Achse. Jede Zeile enthält einen T -Wert und die Wahrscheinlichkeit, mit der der extreme T -Wert beobachtet wird (siehe Spalte „Prob > T“). Prob > T für Steigung kann verwendet werden, um ein lineares Modell abzulehnen.
Wenn die Wahrscheinlichkeit des T- Werts größer als 0,05 (oder eine ähnlich kleine Wahrscheinlichkeit) ist, können Sie die Nullhypothese ablehnen, da die Wahrscheinlichkeit, den Extremwert zufällig zu beobachten, gering ist. Andernfalls müssen Sie die Nullhypothese verwenden.
Bei Brandschadensstudien liegt die Wahrscheinlichkeit, zufällig einen T- Wert der Größe 12,57 zu erhalten, unter 0,00000. Dies bedeutet, dass das lineare Modell ein nützlicher Prädiktor (besser als der Mittelwert der Y -Werte) für Y -Werte ist, die dem in dieser Studie beobachteten Bereich der X -Werte entsprechen.
Der Abschlussbericht zeigt den Korrelationskoeffizienten oder R-Wert . Sie können verwendet werden, um zu bewerten, wie gut ein lineares Modell zu den Daten passt. Ein hoher R-Wert weist auf eine gute Übereinstimmung hin.
Jeder zusammenfassende Bericht liefert Antworten auf verschiedene analytische Fragen zur Beziehung zwischen dem linearen Modell und den Daten. Weitere Informationen zu fortgeschritteneren Behandlungen der Regressionsanalyse finden Sie in einem Lehrbuch von Hamilton, Neter oder Pedhauzeur.
Die anzuzeigenden Abschlussberichtselemente sind das Verteilungsdiagramm und das Liniendiagramm der Daten, wie in Abbildung 4 dargestellt.
Abbildung 4. Elemente des Abschlussberichts – Verteilungsdiagramm und Liniendiagramm
Die meisten Menschen sind mit der Beschreibung von Liniendiagrammen (wie dem ersten Diagramm in dieser Serie) vertraut, daher werde ich dazu keinen Kommentar abgeben, außer zu sagen, dass die JPGraph-Bibliothek hochwertige wissenschaftliche Diagramme für das Web erstellen kann. Es leistet auch hervorragende Arbeit, wenn Sie Verteilungs- oder lineare Daten eingeben.
Das zweite Diagramm setzt die Residuen (beobachtetes Y , vorhergesagtes Y ) mit Ihren vorhergesagten Y- Werten in Beziehung. Dies ist ein Beispiel für ein Diagramm, das von Befürwortern der explorativen Datenanalyse (EDA) verwendet wird, um die Fähigkeit von Analysten zu maximieren, Muster in Daten zu erkennen und zu verstehen. Experten können dieses Diagramm verwenden, um Fragen zu folgenden Themen zu beantworten:
Dieses Datenstudientool kann leicht erweitert werden, um weitere Arten von Diagrammen zu erstellen – Histogramme, Box Diagramme und Quartildiagramme – dies sind Standard-EDA-Tools.
Architektur der Mathematikbibliothek
Mein Hobby Mathematik hat mein Interesse an Mathematikbibliotheken in den letzten Monaten geweckt. Forschungen wie diese bringen mich dazu, darüber nachzudenken, wie ich meine Codebasis organisieren und zukünftiges Wachstum antizipieren kann.
Ich verwende vorerst die Verzeichnisstruktur in Listing 5:
Listing 5. Verzeichnisstruktur, die sich leicht erweitern lässt
phpmath/ burnout_study.php explore.php fire_study.php navbar.php dist/ Distribution.php fischer.php student.php source.php jpgraph/ usw... slr/ SimpleLinearRegression.php SimpleLinearRegressionHTML.php Temperatur/ |
Zukünftig wird das Setzen der PHP_MATH-Variable über eine Konfigurationsdatei für die gesamte PHP-Mathe-Bibliothek erfolgen.
Was hast du gelernt?
In diesem Artikel haben Sie erfahren, wie Sie mit der SimpleLinearRegression-Klasse Datenrecherchetools für kleine bis mittelgroße Datensätze entwickeln. Nebenbei habe ich auch eine native Wahrscheinlichkeitsfunktion zur Verwendung mit der SimpleLinearRegression-Klasse entwickelt und die Klasse um HTML-Ausgabemethoden und Diagrammgenerierungscode basierend auf der JpGraph-Bibliothek erweitert.
Aus Lernperspektive ist die einfache lineare Regressionsmodellierung eine weitere Untersuchung wert, da sie sich als die einzige Möglichkeit erwiesen hat, fortgeschrittenere Formen der statistischen Modellierung zu verstehen. Sie profitieren von einem soliden Verständnis der einfachen linearen Regression, bevor Sie sich mit fortgeschritteneren Techniken wie der multiplen Regression oder der multivariaten Varianzanalyse befassen.
Auch wenn die einfache lineare Regression nur eine Variable verwendet, um die Abweichung einer anderen Variablen zu erklären oder vorherzusagen, ist das Finden einfacher linearer Beziehungen zwischen allen Studienvariablen immer noch oft der erste Schritt bei der Analyse von Forschungsdaten. Nur weil Daten multivariat sind, heißt das nicht, dass sie mit multivariaten Tools untersucht werden müssen. Tatsächlich ist es eine gute Möglichkeit, mit einem einfachen Tool wie der einfachen linearen Regression zu beginnen, um mit der Erforschung von Mustern in Ihren Daten zu beginnen.