domingo, 4 de marzo de 2018

Regresión polinómica en Python

Utilizando NumPy podemos realizar una regresión polinómica en Python con muy pocas líneas de código.

Disponemos de la variable x

x=[0,1,2,3,4,5,6,7,8,9]

Disponemos de la variable y

y=[8,6,10,20,36,58,86,120,160,206]

En este caso hemos elegido valores de y que se ajustan perfectamente al polinomio de grado 2 siguiente.

3x2-5x+8

Veamos el código.

 #vamos a calcular una regresión polinómica con ayuda de NumPy  
 from numpy import poly1d,polyfit  
 x=[0,1,2,3,4,5,6,7,8,9]  
 y=[8,6,10,20,36,58,86,120,160,206]  
 p = poly1d(polyfit(x, y, deg=2), variable='x')  
 print(p)  



Este es el resultado.


Con valores aleatorios

Ahora vamos a cambiar los valores de la variable y, añadiendo cierta aleatoriedad que hemos obtenido con una distribución normal inversa que usa como media los valores anteriores de la variable y.

y=[7.4,6.1,10,19.6,35.3,56.5,86.3,120,158.2,206.1]


Vemos que ahora el polinomio que obtenemos es diferente al ser distintos los valores de la variable y.


Referencia


La siguiente página es una wiki recomendable para comparar diferentes lenguajes de programación. Os dejo el enlace que trata precisamente el tema de la regresión polinómica.

http://www.rosettacode.org/wiki/Polynomial_regression




No hay comentarios:

Publicar un comentario