Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment effectuer une régression polynomiale en Python



L’analyse de régression est utilisée pour quantifier la relation entre une ou plusieurs variables explicatives et une variable de réponse.

Le type d’analyse de régression le plus courant est la régression linéaire simple , utilisée lorsqu’une variable prédictive et une variable de réponse ont une relation linéaire.

Cependant, il arrive parfois que la relation entre une variable prédictive et une variable de réponse soit non linéaire.

Par exemple, la vraie relation peut être quadratique :

Ou il peut être cubique :

Dans ces cas, il est logique d’utiliser la régression polynomiale , qui peut rendre compte de la relation non linéaire entre les variables.

Ce didacticiel explique comment effectuer une régression polynomiale en Python.

Exemple : régression polynomiale en Python

Supposons que nous ayons la variable prédictive (x) et la variable de réponse (y) suivantes en Python :

x = [2, 3, 4, 5, 6, 7, 7, 8, 9, 11, 12]
y = [18, 16, 15, 17, 20, 23, 25, 28, 31, 30, 29]

Si nous créons un simple nuage de points de ces données, nous pouvons voir que la relation entre x et y n’est clairement pas linéaire :

import matplotlib.pyplot as plt

#create scatterplot 
plt.scatter(x, y)

Il ne serait donc pas logique d’adapter un modèle de régression linéaire à ces données. Au lieu de cela, nous pouvons tenter d’ajuster un modèle de régression polynomiale avec un degré de 3 en utilisant la fonction numpy.polyfit() :

import numpy as np

#polynomial fit with degree = 3
model = np.poly1d(np.polyfit(x, y, 3))

#add fitted polynomial line to scatterplot
polyline = np.linspace(1, 12, 50)
plt.scatter(x, y)
plt.plot(polyline, model(polyline))
plt.show()

Ligne de régression polynomiale en Python

Nous pouvons obtenir l’équation de régression polynomiale ajustée en imprimant les coefficients du modèle :

print(model)

poly1d([ -0.10889554,   2.25592957, -11.83877127,  33.62640038])

L’équation de régression polynomiale ajustée est la suivante :

y = -0,109x 3 + 2,256x 2 – 11,839x + 33,626

Cette équation peut être utilisée pour trouver la valeur attendue de la variable de réponse en fonction d’une valeur donnée de la variable explicative.

Par exemple, supposons que x = 4. La valeur attendue pour la variable de réponse, y, serait :

y = -0,109(4) 3 + 2,256(4) 2 – 11,839(4) + 33,626= 15,39 .

Nous pouvons également écrire une courte fonction pour obtenir le R au carré du modèle, qui est la proportion de la variance de la variable de réponse qui peut être expliquée par les variables prédictives.

#define function to calculate r-squared
def polyfit(x, y, degree):
    results = {}
    coeffs = numpy.polyfit(x, y, degree)
    p = numpy.poly1d(coeffs)
    #calculate r-squared
    yhat = p(x)
    ybar = numpy.sum(y)/len(y)
    ssreg = numpy.sum((yhat-ybar)**2)
    sstot = numpy.sum((y - ybar)**2)
    results['r_squared'] = ssreg / sstot

    return results

#find r-squared of polynomial model with degree = 3
polyfit(x, y, 3)

{'r_squared': 0.9841113454245183}

Dans cet exemple, le R carré du modèle est 0,9841 .

Cela signifie que 98,41 % de la variation de la variable de réponse peut être expliquée par les variables prédictives.

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *