Python --Lisez les données d'un fichier de données numériques et recherchez la ligne de régression multiple.

Un programme qui lit des données à partir d'un fichier de série de données numériques délimité par des tabulations comme indiqué ci-dessous et obtient plusieurs lignes de régression. Ligne 1: variable objective (y) 2e ligne: variable explicative 1 (x1) Ligne 3: variable explicative 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
    #Calcul du coefficient de régression partielle
    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])
    #Affichage de l'expression de régression multiple
    print("Y = " + str(b1) + " x1 + " + str(b2) + " x2 + " + str(b0))
    
    fig = plt.figure()
    ax = Axes3D(fig)
    #Affichage du plan à partir de l'équation de régression multiple obtenue
    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)
    #Affichage des données d'origine
    ax.scatter3D(data[1], data[2], data[0], c='red')
    plt.show()

résultat


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

MultipleRegressionAnalysis1.PNG

MultipleRegressionAnalysis2.PNG

MultipleRegressionAnalysis3.PNG

Recommended Posts

Python --Lisez les données d'un fichier de données numériques et recherchez la ligne de régression multiple.
Python --Lisez des données à partir d'un fichier de données numériques pour trouver des matrices, des valeurs propres et des vecteurs propres distribués co-distribués
Lire ligne par ligne à partir d'un fichier avec Python
Python --Lire les données d'un fichier de données numériques et calculer la covariance
Lisez le fichier ligne par ligne avec Python
Lisez le fichier ligne par ligne avec Python
Lisez le fichier en Python avec un chemin relatif depuis le programme
[Python] Lire la ligne spécifiée dans le fichier
Lisez le fichier avec python et supprimez les sauts de ligne [Notes sur la lecture du fichier]
Python / numpy> Lire le fichier de données avec la ligne de nom d'élément> Utiliser genfromtxt ()
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
Différentes façons de lire la dernière ligne d'un fichier csv en Python
[Python] Démarrez un fichier de commandes à partir de Python et passez des variables.
Lire et écrire des fichiers
Écrire et lire des fichiers
[Python] Lisez le fichier csv et affichez la figure avec matplotlib
Créer un environnement Python et transférer des données vers le serveur
Python> Lire à partir d'une chaîne multiligne au lieu d'un fichier> io.StringIO ()
[Python] Lire les arguments de ligne de commande à partir du nom de fichier ou de stdin
Lire et utiliser des fichiers Python à partir de Python
Créez un script shell pour exécuter le fichier python plusieurs fois
Lire la sortie standard d'un sous-processus ligne par ligne en Python
À partir d'un livre que le programmeur peut apprendre ... (Python): trouver la valeur la plus fréquente
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
Sortie de la ligne contenant la chaîne de caractères spécifiée à partir du fichier texte
[Python] Lire un fichier csv avec une grande taille de données à l'aide d'un générateur
Trouver l'intersection d'un cercle et d'une droite (matrice sympy)
Lisez l'ancien fichier Word du formulaire d'application Gakushin DC (.doc) à partir de Python et essayez de le faire fonctionner
[Note] Lire un fichier depuis un autre répertoire
Lire et formater des fichiers csv mélangés avec des tabulations de virgule avec des pandas Python
Utilisez Matplotlib pour créer plusieurs graphiques linéaires à partir d'un bloc de données à la fois
Conseils: [Python] Restaurer et extraire au hasard un tableau à partir d'un fichier fasta
Extraire les lignes qui correspondent aux conditions d'un fichier texte avec python
Lisons le fichier RINEX avec Python ①
Créer un fichier deb à partir d'un package python
Lire le fichier de données de caractères avec numpy
Créez un arbre de décision à partir de 0 avec Python et comprenez-le (4. Structure des données)
[python] Lisez le fichier html et entraînez-vous au scraping
Créer en Python sans fichier image factice dans Django et tester le téléchargement de l'image
Script Python qui lit les fichiers SQL, exécute BigQuery et enregistre le csv
Conversion de Fourier du fichier wav lu par Python, conversion inverse et réécriture
Dessinez une ligne de pliage / diagramme de dispersion avec python matplotlib pour fichier CSV (2 colonnes)
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4
Visualisez les données d'itinéraires ferroviaires et résolvez les problèmes d'itinéraires les plus courts (Python + Pandas + NetworkX)
Comment lire un fichier CSV avec Python 2/3
Lire un fichier contenant des lignes brouillées en Python
Lire les données de la table dans un fichier PDF avec Python
[Python] Trouver des coordonnées sous deux angles et une distance
Exécutez des fichiers Python à partir de HTML en utilisant Django
[Python] Trouvez la matrice de translocation en notation d'inclusion
Prise en compte des forces et faiblesses de Python
Extraire des données d'une page Web avec Python
Utilisez Ruby et Python pour trouver la probabilité qu'une carte avec un nombre naturel de 1 à 100 soit un multiple de 3 et non un multiple de 5.
[python] Lecture de données
[Python] Enregistrez les données vidéo importées par OpenCV sous forme de fichier jpg de numéro de série
[Calcul scientifique / technique par Python] Tracé, visualisation, matplotlib de données 2D lues à partir d'un fichier
[Python] Un bloc-notes qui traduit et télécharge le fichier ipynb de GitHub en japonais.