Ir al contenido principal

Regresión polinómica: de líneas rectas a curvas

Explora cómo la regresión polinómica ayuda a modelar relaciones no lineales y a mejorar la precisión de predicción en datasets reales.
Actualizado 4 may 2026  · 12 min leer

Cuando tus datos se curvan, no tiene sentido usar una línea recta para estimar nuevos puntos. Si lo haces, acabarás con un modelo que no capta el patrón, con residuos altos y malas predicciones. Los datos del mundo real rara vez se comportan de forma lineal, ya modeles cómo la dosis de un fármaco afecta a la respuesta, cómo la temperatura influye en la tensión de un material o cómo evolucionan los precios de los activos a lo largo del tiempo.

La regresión polinómica soluciona esto ampliando la regresión lineal para ajustar curvas en lugar de líneas rectas. Basta con añadir algunos términos de mayor grado - , - y tu modelo podrá seguir la forma real de tus datos.

En este artículo verás qué es la regresión polinómica, las matemáticas que hay detrás, cómo implementarla en Python y cómo evitar la trampa en la que cae la mayoría: el sobreajuste.

Si te suena nuevo el concepto de machine learning, lee antes nuestro tutorial Fundamentos de regresión lineal en Python.

¿Qué es la regresión polinómica?

La regresión polinómica es el algoritmo al que recurres cuando una línea recta no puede describir tus datos.

La regresión lineal modela la relación entre variables como una línea recta. Funciona cuando la relación es lineal de verdad, pero la mayoría de datos reales no lo son. Piensa en cómo cambia la distancia de frenado de un coche con la velocidad, o cómo responde la tasa de crecimiento de una planta al fertilizante. Son relaciones curvas. Por más que lo intentes, una línea recta no las ajustará bien.

La regresión polinómica amplía la regresión lineal añadiendo términos de mayor grado a la ecuación. En lugar de ajustar y = b0 + b1x, ajustas algo como y = b0 + b1x + b2x² + b3x³. El grado del polinomio —ese n de "n-ésimo grado"— controla cuántos giros puede hacer la curva.

En resumen y sin tecnicismos, esta es la diferencia clave entre ambas:

  • Regresión lineal: ajusta una línea recta. Un coeficiente por variable y un solo grado de libertad en la curva.

  • Regresión polinómica: ajusta una curva. Cada término adicional (, , ...) da al modelo más flexibilidad para seguir la forma de los datos.

Regresión lineal frente a polinómica

Regresión lineal frente a polinómica

Bajo el capó, la regresión polinómica sigue siendo un modelo lineal. "Lineal" aquí se refiere a cómo el modelo trata sus coeficientes, no a la forma de la curva que produce. Estás añadiendo nuevas variables (, ) y ajustando sobre ellas una ecuación lineal.

Entonces, ¿cuándo usarla realmente?

Apuesta por la regresión polinómica cuando el gráfico de residuos de un modelo lineal muestra un patrón: es señal de que la relación no es lineal. También encaja muy bien cuando tu conocimiento del dominio sugiere una relación curvada, como en física, biología o economía.

El inconveniente es que los polinomios de alto grado pueden volverse inestables. Un polinomio de grado 2 o 3 cubre la mayoría de curvas reales, pero si vas más allá es probable que estés ajustando ruido en lugar de señal.

¿Por qué usar regresión polinómica?

La mayoría de relaciones entre variables en el mundo real no son lineales.

Una línea recta puede acercarse, pero "casi" no basta cuando predices algo sensible. Si la relación en los datos se curva, un modelo lineal fallará de forma sistemática justo en esa curva.

La regresión polinómica lo resuelve permitiendo que el modelo se curve. En lugar de forzar una recta a través de tus datos, ajustas una curva que puede seguir la forma de la relación.

Estos son algunos ámbitos de negocio donde marca la diferencia:

  • Biología y medicina: las relaciones dosis-respuesta rara vez son lineales. Una dosis baja apenas surte efecto, una media funciona bien y una alta provoca efectos secundarios. Esa curva en S necesita un modelo polinómico para capturarla
  • Ingeniería: las relaciones tensión-deformación en materiales, la resistencia aerodinámica y la dilatación térmica siguen patrones no lineales que la regresión polinómica modela bien
  • Finanzas: los rendimientos de activos, la valoración de opciones y las curvas de demanda suelen mostrar efectos crecientes o decrecientes que una recta no puede representar
  • Pipelines de machine learning: las características polinómicas son una forma rápida de añadir no linealidad a un modelo lineal sin pasarte a un algoritmo más complejo

El denominador común es el mismo: la relación entre tu entrada y tu salida cambia a distintos valores de x. La regresión lineal asume que ese cambio es constante. La polinómica, no.

Dicho esto, la regresión polinómica no es una bala de plata.

Funciona mejor cuando tu conocimiento del dominio sugiere una relación curvada, o cuando tu gráfico de residuos muestra claramente un patrón que una línea recta no corrige. Úsala con un problema concreto en mente, no solo porque el de tu modelo lineal no sea lo bastante alto.

Entender las matemáticas detrás de la regresión polinómica

Conocer la base matemática te ayudará a comprenderla mejor.

Términos polinómicos

En la regresión lineal, tu modelo se ve así:

Fórmula de regresión lineal

Fórmula de regresión lineal

Una variable de entrada, un coeficiente, una línea recta. La regresión polinómica lo amplía añadiendo términos de mayor grado:

Fórmula de regresión polinómica

Fórmula de regresión polinómica

Cada nuevo término —, , etc.— aporta a la curva un nuevo "giro". Un polinomio de grado 2 puede ajustar una sola curvatura. Uno de grado 3 puede ajustar una curva que cambia de dirección una vez. El grado n controla lo flexible que es el modelo.

El algoritmo subyacente sigue siendo el mismo. Solo añades nuevas variables. se trata como una variable de entrada más, igual que x. El modelo sigue ajustando una ecuación lineal, pero sobre características transformadas.

Estimación por mínimos cuadrados

Ajustar un modelo de regresión polinómica funciona igual que en la regresión lineal: con estimación de mínimos cuadrados.

La idea es encontrar los coeficientes que minimizan la suma de los residuos al cuadrado:

Fórmula SSR

Fórmula SSR

Cada diferencia al cuadrado es un residuo: la brecha entre lo que predice el modelo y lo observado. Elevarlos al cuadrado evita que los errores negativos y positivos se anulen, y penaliza más los errores grandes que los pequeños.

En la práctica, tu librería se encarga de ello. Pero saber que mínimos cuadrados es el objetivo ayuda a entender por qué los valores atípicos perjudican tanto a los modelos polinómicos: un único residuo grande se eleva al cuadrado y arrastra los coeficientes en su dirección.

Interpretar los coeficientes

En regresión lineal, b1 tiene una interpretación sencilla: por cada unidad que aumenta x, y cambia en b1.

En la regresión polinómica es algo más complejo. Cuando tu modelo incluye b_1x + b_2x^2, el efecto de x sobre y depende del valor actual de x: no puedes leer b2 de forma aislada y sacar conclusiones. La pendiente de la curva cambia constantemente, como puedes ver tomando la derivada respecto de x:

Derivada respecto a x

Derivada respecto a x

La pendiente en sí es una función de x. Eso significa que el impacto de un cambio de una unidad en x es diferente en cada punto de la curva.

Por eso no conviene interpretar coeficientes individuales en un modelo polinómico. En su lugar, mira la curva en conjunto. Representa tus predicciones frente a tus datos.

Aplicaciones de la regresión polinómica en ciencia de datos

La regresión polinómica aparece en muchos campos porque las relaciones curvadas están por todas partes en los datos reales.

Finanzas

Los datos financieros rara vez se mueven en línea recta.

Los precios de los activos, el crecimiento de ingresos y las curvas de demanda tienden a acelerarse, desacelerarse o invertirse según las condiciones de mercado. Un modelo lineal asume una tasa de cambio constante, algo que casi nunca se cumple. La regresión polinómica te permite modelar estos cambios —por ejemplo, cómo la demanda cae poco al principio y luego con fuerza cuando el precio supera cierto umbral.

También es útil para el análisis de tendencias en el tiempo. Al ajustar una curva a datos históricos de precios o modelar cómo crece una métrica en distintas fases del ciclo de negocio, un polinomio de grado 2 o 3 suele estimar la forma mucho mejor que una recta.

Ingeniería

Los procesos físicos son de los mejores ejemplos de relaciones no lineales.

La tensión y la deformación en materiales, la dinámica de fluidos, la dilatación térmica y la resistencia aerodinámica siguen curvas, no líneas. Muchas ecuaciones de la física son polinómicas por naturaleza. La regresión polinómica te da una forma basada en datos de ajustar esas curvas cuando tienes mediciones pero no una ecuación cerrada y limpia.

Un buen ejemplo es la fuerza de arrastre, que aumenta con el cuadrado de la velocidad. Un modelo lineal infravalorará el arrastre a altas velocidades, mientras que un polinomio de grado 2 ajustará correctamente la relación.

Machine learning

En machine learning, la regresión polinómica se usa a menudo como técnica de ingeniería de características más que como modelo independiente.

Al añadir términos polinómicos —, , términos de interacción— a tu conjunto de variables, le das a un modelo lineal la capacidad de ajustar patrones no lineales sin cambiar a un algoritmo más complejo. Es un paso habitual cuando tu modelo lineal infraajusta y quieres ganar flexibilidad antes de recurrir a algo como un árbol de decisión o una red neuronal.

También es útil como modelo de referencia.

Antes de entrenar un modelo más complejo, ajustar una regresión polinómica te dice cuánta varianza puede explicar una curva sencilla. Si un polinomio de grado 3 te lleva ya casi hasta el objetivo, quizá no necesites nada más complejo.

Cómo elegir el grado adecuado en regresión polinómica

Elegir el grado del polinomio es una de las decisiones más importantes. Si te equivocas en cualquier dirección, tendrás un modelo menos preciso.

Por suerte, con unas pocas líneas de Python puedes resolverlo.

Sobreajuste vs. infraajuste

El infraajuste ocurre cuando el grado es demasiado bajo. Un polinomio de grado 1 sobre datos curvados no captará el patrón: sesgo alto, malas predicciones y mal rendimiento tanto en entrenamiento como en datos nuevos.

El sobreajuste es el problema opuesto, y es más peligroso porque al principio parece bueno. Un polinomio de alto grado puede pasar por todos los puntos del conjunto de entrenamiento con error casi cero. Pero el modelo solo está memorizando el ruido. Se vendrá abajo con datos nuevos.

Puedes verlo comparando el error de entrenamiento frente al de test a distintos grados:

import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split

np.random.seed(42)

# Generate sample data
x = np.linspace(-3, 3, 80).reshape(-1, 1)
y = 0.6 * x.ravel()**2 - x.ravel() + np.random.normal(0, 0.6, 80)

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)

for deg in [1, 2, 12]:
    poly = PolynomialFeatures(deg)
    model = LinearRegression()
    model.fit(poly.fit_transform(x_train), y_train)

    train_err = mean_squared_error(y_train, model.predict(poly.transform(x_train)))
    test_err  = mean_squared_error(y_test,  model.predict(poly.transform(x_test)))

    print(f"Degree {deg:>2} | Train MSE: {train_err:.4f} | Test MSE: {test_err:.4f}")

MSE en distintos grados

MSE en distintos grados

O, de forma visual:

Ajuste de datos con distintos grados polinómicos

Ajuste de datos con distintos grados polinómicos

El grado 1 muestra alto error en ambos conjuntos: es infraajuste. El grado 2 está equilibrado. El grado 12 tiene menor error de entrenamiento pero mucho mayor error de test: es sobreajuste.

Validación cruzada

La forma correcta de encontrar el grado óptimo es la validación cruzada, en concreto la k-fold.

La idea es dividir tus datos en k subconjuntos, entrenar en k-1 de ellos y testear en el que has dejado fuera, y repetir hasta que todos hayan sido conjunto de test una vez. Por último, promedia el error en todos los folds, hazlo para cada grado candidato y elige el que tenga menor error medio de test.

Implementarlo es más simple que explicarlo:

import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score
from sklearn.pipeline import make_pipeline
import matplotlib.pyplot as plt

np.random.seed(42)

# Generate sample data
x = np.linspace(-3, 3, 80).reshape(-1, 1)
y = 0.6 * x.ravel()**2 - x.ravel() + np.random.normal(0, 0.6, 80)

# Test degrees 1 through 10
degrees = range(1, 11)
mean_errors = []

for deg in degrees:
    model = make_pipeline(PolynomialFeatures(deg), LinearRegression())
    scores = cross_val_score(model, x, y, cv=5, scoring="neg_mean_squared_error")
    mean_errors.append(-scores.mean())
    print(f"Degree {deg:>2} | Mean error: {-scores.mean():.4f}")

best_degree = np.argmin(mean_errors) + 1

Comparativa de error por grado

Comparativa de error por grado

O, en un gráfico:

Comparación de error con validación cruzada

Comparación de error con validación cruzada

El error de CV baja a medida que añades términos polinómicos útiles y vuelve a subir cuando el modelo empieza a sobreajustar.

Cuando dos grados den un error de CV similar, elige el más bajo. Un modelo más simple que rinde igual siempre es la mejor opción.

Aspectos clave y limitaciones

Hay un par de formas en las que la regresión polinómica puede llevarte a conclusiones erróneas. Veámoslas.

Sensibilidad a valores atípicos

Los valores atípicos afectan más a la regresión polinómica que a la lineal.

Mínimos cuadrados eleva al cuadrado cada residuo antes de sumarlos. Un único punto de datos lejos de la tendencia aporta un error desproporcionado, y el modelo curvará su ajuste para reducirlo, aunque deforme el encaje en el resto.

Este efecto empeora al aumentar el grado. Un polinomio de alto grado tiene suficiente flexibilidad para "perseguir" un atípico, lo que aleja la curva del grueso de tus datos para encajar un punto malo.

Para evitarlo, limpia los datos antes de ajustar. Grafícalos, identifica atípicos y decide si representan señal real o ruido. Si son ruido —errores de medición, de introducción de datos, registros corruptos— elimínalos. Si son reales, valora un método más robusto frente a atípicos como RANSAC o la regresión de Huber.

Sobreajuste

Cada término polinómico que añades le da más flexibilidad al modelo. Llega un punto en el que esa flexibilidad deja de ayudar y el modelo empieza a ajustar el ruido aleatorio del entrenamiento en vez del patrón real. El resultado es una curva que va bien en entrenamiento pero falla con datos nuevos.

Lo complicado es que el sobreajuste es invisible si solo miras el error de entrenamiento. Un polinomio de grado 10 casi siempre tendrá menor MSE de entrenamiento que uno de grado 2. Eso no significa que sea un mejor modelo.

Así deberías abordarlo:

  • Empieza por abajo: prueba con grado 2 o 3 antes de subir. La mayoría de curvas reales no necesitan más.
  • Evalúa siempre con datos reservados: el error de entrenamiento por sí solo no dice nada de la generalización.
  • Validación cruzada: úsala para encontrar el grado a partir del cual el error de test deja de mejorar.
  • Observa la curva: si tu polinomio hace cosas raras fuera del rango de entrenamiento, es señal de sobreajuste.

La regresión polinómica funciona mejor cuando tienes un buen motivo para esperar una relación curvada y puedes mantener el grado lo bastante bajo.

Alternativas a la regresión polinómica

La regresión polinómica no siempre es la herramienta adecuada: algunas de estas alternativas pueden encajar mejor (sin intención de hacer un juego de palabras).

Splines

Los splines resuelven el problema de la inestabilidad global.

Cuando ajustas un polinomio de grado 10, cada coeficiente está influido por todos los puntos. Un cambio en una región afecta a la curva en todas las demás. Los splines evitan esto dividiendo los datos en segmentos y ajustando a cada uno un polinomio de bajo grado. Los segmentos se unen en puntos llamados nudos, con restricciones que mantienen la suavidad de la curva en las uniones.

El resultado es una curva flexible donde lo necesita y estable en el resto.

En Python, scipy y scikit-learn tienen implementaciones sólidas de splines:

from scipy.interpolate import UnivariateSpline

spline = UnivariateSpline(x, y, k=3)
y_pred = spline(x_new)

Spline frente a polinomio de alto grado

Spline frente a polinomio de alto grado

Resumiendo: usa splines cuando tus datos se comportan de forma distinta en distintas regiones o cuando una única curva polinómica no capta la forma sin irte a grados muy altos.

Support Vector Regression

Support Vector Regression (SVR) adopta un enfoque diferente.

No ajusta una curva que minimiza el error cuadrático en todos los puntos, sino que busca una función que permanezca dentro de un margen de error definido para el mayor número posible de puntos, ignorando los que caen dentro de ese margen. Esto la hace menos sensible a los valores atípicos que la regresión polinómica.

La conexión con la regresión polinómica viene por el truco del kernel. Un SVR con kernel polinómico puede ajustar relaciones no lineales similares a las de la regresión polinómica, pero con mejor generalización y más control del ajuste mediante parámetros de regularización.

from sklearn.svm import SVR

model = SVR(kernel="poly", degree=3, C=1.0, epsilon=0.1)
model.fit(x_train, y_train)

SVR frente a polinomio de alto grado

SVR frente a polinomio de alto grado

SVR es una buena opción cuando tus datos tienen atípicos que no puedes eliminar, cuando necesitas más control del equilibrio sesgo-varianza o cuando la regresión polinómica sigue sobreajustando a pesar de la validación cruzada.

Conclusión

En este artículo has visto cómo amplía la regresión lineal para ajustar curvas, cómo la estimación por mínimos cuadrados encuentra los mejores coeficientes y por qué interpretar esos coeficientes por separado no aporta gran cosa.

El grado que elijas es lo que más importa. Si es demasiado bajo, infraajustas; si es demasiado alto, sobreajustas. La validación cruzada te da una forma objetiva de encontrar el punto óptimo. Y si la regresión polinómica no es la adecuada, los splines y SVR son alternativas muy sólidas que merece la pena conocer.

La mejor forma de ganar intuición es aplicarlo a tus propios datos. Elige un dataset donde sospeches una relación no lineal, ajusta primero un modelo lineal, grafica los residuos y mira qué hace distinto la regresión polinómica. Lee nuestra guía sobre modelos no lineales y obtención de insights con R para ver este flujo en la práctica.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Científico de Datos Senior con base en Croacia. Top Tech Writer con más de 700 artículos publicados, generando más de 10M de visitas. Autor del libro Automatización del aprendizaje automático con TPOT.

Preguntas frecuentes sobre regresión polinómica

¿Qué es la regresión polinómica y cuándo debería usarla?

La regresión polinómica es una extensión de la regresión lineal que ajusta una curva en lugar de una recta. La usas cuando la relación entre tus variables de entrada y salida no es lineal, por ejemplo, cuando el gráfico de residuos de un modelo lineal muestra un patrón. Es un buen primer paso antes de pasar a modelos más complejos como árboles de decisión o redes neuronales.

¿En qué se diferencia la regresión polinómica de la lineal?

La regresión lineal ajusta una recta modelando la relación como y = b0 + b1x. La polinómica añade términos de mayor grado como y , dando al modelo la flexibilidad necesaria para seguir curvas en los datos. Ambas usan mínimos cuadrados: la polinómica simplemente trata esos términos extra como variables de entrada adicionales.

¿Cuáles son los mayores riesgos al usar regresión polinómica?

Los dos mayores riesgos son el sobreajuste y la sensibilidad a los valores atípicos. Un polinomio de alto grado puede memorizar el ruido de tu entrenamiento y rendir mal en datos nuevos. Los atípicos son peligrosos porque mínimos cuadrados eleva al cuadrado cada residuo: un solo punto malo puede arrastrar la curva lejos del resto de tus datos.

¿Cómo elijo el grado adecuado para mi modelo de regresión polinómica?

Empieza con grado 2 o 3: la mayoría de relaciones curvadas reales no necesitan más. A partir de ahí, usa validación cruzada k-fold para comparar el error medio de test entre los grados candidatos y elige aquel a partir del cual el error deja de mejorar. Si dos grados dan resultados similares, quédate con el más bajo.

¿Cuándo debería usar splines o SVR en lugar de regresión polinómica?

Usa splines cuando tus datos se comportan de forma diferente según la región o cuando un único polinomio produce curvas inestables en los extremos del rango. Y usa SVR con kernel polinómico cuando los atípicos son inevitables y necesitas un modelo que no se deforme para acomodarlos. Ambas alternativas te dan más control sobre el ajuste a costa de algo de interpretabilidad.

Temas

Aprende con DataCamp

Curso

Modelización de regresión bayesiana con rstanarm

4 h
7K
Aprende a aprovechar los métodos de estimación bayesiana para hacer mejores inferencias sobre los modelos de regresión lineal.
Ver detallesRight Arrow
Iniciar curso
Ver másRight Arrow
Relacionado

Tutorial

Tutorial de regresión lineal en R

En este tutorial aprenderás los fundamentos de un modelo estadístico muy popular: la regresión lineal.

Eladio Montero Porras

multiple linear regression

Tutorial

Regresión lineal múltiple en R: tutorial con ejemplos

Una visión completa para entender las regresiones lineales múltiples en R a través de ejemplos.
Zoumana Keita 's photo

Zoumana Keita

Tutorial

Tutorial de ecuación normal para regresión lineal

Aprende qué es la ecuación normal y cómo puedes utilizarla para construir modelos de machine learning.
Kurtis Pykes 's photo

Kurtis Pykes

Tutorial

Regresión lineal en Excel: Guía completa para principiantes

Una guía paso a paso para realizar una regresión lineal en Excel, interpretar los resultados y visualizar los datos para obtener información práctica.
Natassha Selvaraj's photo

Natassha Selvaraj

Tutorial

Regresión logística en R Tutorial

Descubra todo sobre la regresión logística: en qué se diferencia de la regresión lineal, cómo ajustar y evaluar estos modelos en R con la función glm() y mucho más.
Vidhi Chugh's photo

Vidhi Chugh

Tutorial

GLM en R: Modelo lineal generalizado

Conozca los modelos lineales generalizados (MLG) y en qué se diferencian de los modelos lineales.
DataCamp Team's photo

DataCamp Team

Ver másVer más