Python - Lesen Sie Daten aus einer numerischen Datendatei und suchen Sie die multiple Regressionslinie.

Ein Programm, das Daten aus einer durch Tabulatoren getrennten numerischen Datenreihendatei wie unten gezeigt liest und mehrere Regressionslinien erhält. Zeile 1: Zielvariable (y) 2. Zeile: Erklärungsvariable 1 (x1) Zeile 3: Erklärungsvariable 2 (x2)

MultipleRegressionAnalysis_Data1.txt


65.7	67.8	70.3	72.0	74.3	76.2
3.27	3.06	4.22	4.10	5.26	6.18
69.7	69.7	71.3	77.6	81.0	78.7

MultipleRegressionAnalysis_2.py


from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D 

def load_data(filename):
    with open(filename) as lines:
        return [[float(data) for data in line.strip().split('\t')]
                for line in lines]
    
def calc_average(data):
    return sum(data) / len(data)
    
def calc_sum_of_square(data_list):
    ave = calc_average(data_list)
    return sum((d - ave)**2 for data in data_list)
    
def calc_sum_of_square(data_list1, data_list2):
    ave1 = calc_average(data_list1)
    ave2 = calc_average(data_list2)
    return sum((data1 * data2 - ave1 * ave2)**2 for data1, data2 in zip(data_list1, data_list2))
    
if __name__ == "__main__":
    data = load_data('MultipleRegressionAnalysis_Data1.txt')
    s = [[calc_sum_of_square(data1, data2) for data2 in data]
            for data1 in data]

    det = s[1][1]*s[2][2] - s[1][2]**2
    #Partielle Regressionskoeffizientenberechnung
    b1 = (s[0][1]*s[2][2] - s[0][2]*s[1][2])/det
    b2 = (s[0][2]*s[1][1] - s[0][1]*s[1][2])/det
    b0 = calc_average(data[0]) - b1*calc_average(data[1]) - b2*calc_average(data[2])
    #Anzeige mehrerer Regressionsausdrücke
    print("Y = " + str(b1) + " x1 + " + str(b2) + " x2 + " + str(b0))
    
    fig = plt.figure()
    ax = Axes3D(fig)
    #Plananzeige aus der erhaltenen multiplen Regressionsgleichung
    x1 = np.arange(0, 10, 0.25)
    x2 = np.arange(65, 80, 0.25)
    X1, X2 = np.meshgrid(x1, x2)
    Y = b1 * X1 + b2 * X2 + b0
    ax.plot_wireframe(X1, X2, Y)
    #Originaldatenanzeige
    ax.scatter3D(data[1], data[2], data[0], c='red')
    plt.show()

Ergebnis


> python MultipleRegressionAnalysis_2.py
Y = -17.118276566578807 x1 + 1.0700625679745137 x2 + 65.58796752824318

MultipleRegressionAnalysis1.PNG

MultipleRegressionAnalysis2.PNG

MultipleRegressionAnalysis3.PNG

Recommended Posts

Python - Lesen Sie Daten aus einer numerischen Datendatei und suchen Sie die multiple Regressionslinie.
Python - Lesen Sie Daten aus einer numerischen Datendatei, um die verteilte, gemeinsam verteilte Matrix, Eigenwerte und Eigenvektoren zu finden
Lesen Sie mit Python Zeile für Zeile aus der Datei
Python - Lesen Sie Daten aus einer numerischen Datendatei und berechnen Sie die Kovarianz
Lesen Sie die Datei Zeile für Zeile mit Python
Lesen Sie die Datei Zeile für Zeile mit Python
Lesen Sie die Datei in Python mit einem relativen Pfad aus dem Programm
[Python] Lesen Sie die angegebene Zeile in der Datei
Lesen Sie die Datei mit Python und löschen Sie die Zeilenumbrüche [Hinweise zum Lesen der Datei]
Python / numpy> Lesen Sie die Datendatei mit der Elementnamenzeile> Verwenden Sie genfromtxt ()
[Python] Lesen von Daten aus CIFAR-10 und CIFAR-100
Verschiedene Möglichkeiten, die letzte Zeile einer CSV-Datei in Python zu lesen
[Python] Starten Sie eine Batchdatei aus Python und übergeben Sie Variablen.
Dateien lesen und schreiben
Dateien schreiben und lesen
[Python] Lesen Sie die CSV-Datei und zeigen Sie die Abbildung mit matplotlib an
Erstellen Sie eine Python-Umgebung und übertragen Sie Daten auf den Server
Python> Aus einer mehrzeiligen Zeichenfolge anstelle einer Datei lesen> io.StringIO ()
[Python] Befehlszeilenargumente aus Dateiname oder Standard lesen
Lesen und verwenden Sie Python-Dateien aus Python
Erstellen Sie ein Shell-Skript, um die Python-Datei mehrmals auszuführen
Lesen Sie die Standardausgabe eines Unterprozesses zeilenweise in Python
Aus einem Buch, das der Programmierer lernen kann ... (Python): Finden Sie den häufigsten Wert
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Geben Sie die Zeile mit der angegebenen Zeichenfolge aus der Textdatei aus
[Python] Lesen Sie eine CSV-Datei mit großen Datenmengen mithilfe eines Generators
Finden Sie den Schnittpunkt eines Kreises und einer geraden Linie (Sympymatrix)
Lesen Sie das alte Gakushin DC-Antragsformular Word-Datei (.doc) von Python und versuchen Sie, es zu bedienen
[Hinweis] Lesen Sie eine Datei aus einem anderen Verzeichnis
Lesen und formatieren Sie CSV-Dateien gemischt mit Komma-Registerkarten mit Python-Pandas
Verwenden Sie Matplotlib, um mehrere Liniendiagramme gleichzeitig aus einem Datenrahmen zu erstellen
Tipps: [Python] Stellt ein Array nach dem Zufallsprinzip wieder her und extrahiert es aus einer Fasta-Datei
Extrahieren Sie mit Python Zeilen, die den Bedingungen entsprechen, aus einer Textdatei
Lesen wir die RINEX-Datei mit Python ①
Erstellen Sie eine Deb-Datei aus einem Python-Paket
Zeichendatendatei mit numpy lesen
Machen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (4. Datenstruktur)
[Python] Lesen Sie die HTML-Datei und üben Sie das Scraping
Testen Sie das Hochladen von Bildern, indem Sie in Python erstellen, ohne Dummy-Bilddateien in Django zu platzieren
Python-Skript, das SQL-Dateien liest, BigQuery ausführt und CSV speichert
Fourier-Konvertierung der von Python gelesenen WAV-Datei, umgekehrte Konvertierung und erneutes Schreiben
Zeichnen Sie ein Faltlinien- / Streudiagramm mit Python Matplotlib für die CSV-Datei (2 Spalten).
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
Visualisieren Sie Eisenbahnstreckendaten und lösen Sie kürzeste Streckenprobleme (Python + Pandas + NetworkX)
Lesen einer CSV-Datei mit Python 2/3
Lesen Sie eine Datei mit verstümmelten Linien in Python
Lesen Sie Tabellendaten in einer PDF-Datei mit Python
[Python] Finde Koordinaten aus zwei Winkeln und Entfernungen
Führen Sie Python-Dateien mit Django aus HTML aus
[Python] Finden Sie die Translokationsmatrix in Einschlussnotation
Berücksichtigung der Stärken und Schwächen von Python
Extrahieren Sie mit Python Daten von einer Webseite
Verwenden Sie Ruby und Python, um die Wahrscheinlichkeit zu ermitteln, dass eine Karte mit einer natürlichen Zahl von 1 bis 100 ein Vielfaches von 3 und kein Vielfaches von 5 ist.
[Python] Daten lesen
[Python] Speichern Sie die von OpenCV importierten Videodaten als JPG-Datei mit Seriennummer
[Wissenschaftlich-technische Berechnung mit Python] Plot, Visualisierung, Matplotlib von 2D-Daten, die aus einer Datei gelesen wurden
[Python] Ein Notizbuch, das die ipynb-Datei von GitHub ins Japanische übersetzt und herunterlädt.