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