Estimación de funciones polinómicas en estadística

Autor: | Última modificación: 29 de julio de 2022 | Tiempo de Lectura: 4 minutos
Temas en este post:

La estimación de funciones polinómicas en estadística es fundamental cuando dentro de tu población de datos estos poseen expresiones de polinomio. Este es un conocimiento muy específico y especializado que resulta necesario cuando trabajas con un gran volumen de datos.

Por ello, en el desarrollo de este post, te explicamos todo lo que necesitas saber sobre la estimación de funciones polinómicas en estadística Big Data.

Estimación de funciones polinómicas en estadística

Podrás desarrollar una estimación de funciones polinómicas en estadística del tipo:

Estimación de funciones polinómicas en estadística 1

Simplemente, reescribiéndolo como un modelo lineal múltiple: [ \begin{bmatrix} y_1 \ y_2 \ \vdots \ y_n, así:

\end{bmatrix}

Estimación de funciones polinómicas en estadística 2

/] Lo que se puede simplificar como:

Estimación de funciones polinómicas en estadística 3

Su desarrollo para la estimación de funciones polinómicas en estadística sería:

n<-100
x<-seq(-10,10,length.out = n)

x0<-rep(1,n)
x1<-x
x2<-x^2 
x3<-x^3
X<-matrix(c(x0,x1,x2,x3),nrow=n,byrow = F)

beta<-matrix(c(1,1,3,0.5),nrow=4)
Y<-X %*% beta+rnorm(n,sd = 50)

plot(X[,2],Y,pch='*')

est_beta<-solve(t(X) %*% X) %*% t(X) %*% Y
est_Y<-X %*% beta
lines(X[,2],est_Y,col="blue")

print("El valor estimado de beta es:")
est_beta

print("El valor real de beta es:")
beta

[1] «El valor real de beta es:»

A matrix: 4 × 1 of type dbl

6.8753944
-0.9760129
2.9935223
0.5393072

A matrix: 4 × 1 of type dbl

1.0
1.0
3.0
0.5
Estimación de funciones polinómicas en estadística 4
modelPoly3<-lm(Y~x+I(x^2)+I(x^3))
#modelPoly3<-lm(Y~poly(x,3))
modelPoly3
Estimación de funciones polinómicas en estadística 5
summary(modelPoly3)
Estimación de funciones polinómicas en estadística 6

Sobreajuste

Por otra parte, para la estimación de funciones polinómicas en estadística, debes tener en cuenta el sobreajuste (overfitting) que ocurre en los modelos que tienen un grado polinómico tan alto que empiezan a seguir al ruido. Se sobreajustan demasiado a los datos, perdiendo una visión más general de los datos y proporcionando predicciones peores.

En este caso, en lugar de estar aprendiendo la relación básica entre dos variables, estarías aprendiendo los errores. El modelo intenta integrar los errores para dar una respuesta más exacta. El problema es que, al coger otra vez variables similares, los errores cambian, por lo que lo aprendido con los errores anteriores ya no sirve. Es decir, nuestro modelo sería erróneo.

La esencia del modelo se basa en encontrar una predicción que funcione para la mayoría de los casos, no para los datos que estamos viendo ahora mismo, sino también para los datos futuros.

modelOverfit <- lm(Y~poly(x,27))
summary(modelOverfit)
Estimación de funciones polinómicas en estadística 7
plot(X[,2],Y,pch='*')

xp<-seq(-10,10,by=0.1)
yp<-predict(modelOverfit,data.frame(x=xp))
lines(xp,yp,col="blue")
lines(xp,predict(modelPoly3,data.frame(x=xp)),col="red")
Estimación de funciones polinómicas en estadística 8
paste("Polinomio grado 27: Rsquared:",summary(modelOverfit)$r.squared)
paste("Polinomio grado 27: Residual standard error",sqrt(sum(summary(modelOverfit)$residuals^2)/(length(summary(modelOverfit)$residuals)-25)))

paste("Polinomio grado 3: Rsquared:",summary(modelPoly3)$r.squared)
paste("Polinomio grado 3: Residual standard error",sqrt(sum(summary(modelPoly3)$residuals^2)/(length(summary(modelPoly3)$residuals)-4)))

‘Polinomio grado 27: Rsquared: 0.967209419375986’
‘Polinomio grado 27: Residual standard error 47.9644017918624’
‘Polinomio grado 3: Rsquared: 0.954608949821556’
‘Polinomio grado 3: Residual standard error 49.8797892133702’

¿Cómo encontrar el mejor modelo?

Para una óptima estimación de funciones polinómicas en estadística, debes tener el mejor modelo. Para ello, usa el p-valor de los coeficientes o busca entre todos los modelos el de menor AIC (Criterio de Información de Akaike), que es un estimador de la calidad relativa del modelo que tiene en cuenta su complejidad.

A medida que se aumenta el número de parámetros de entrada o de grados de un polinomio, el valor del error cuadrático medio va a ser mejor, porque el error cuadrático medio disminuye. El AIC penaliza los modelos complejos en favor del los sencillos para evitar el sobreajuste.

Estimación de funciones polinómicas en estadística 9

Donde P es el número de variables que se utilizan en el modelo y N el número de muestras. Cuanto menor sea el valor del AIC, mejor será el modelo.

paste("Polinomio grado 27, AIC:",AIC(modelOverfit))
paste("Polinomio grado 3, AIC:",AIC(modelPoly3))

‘Polinomio grado 27, AIC: 1087.11132068148’
‘Polinomio grado 3, AIC: 1071.62868617455’
En R existe la función stepAIC que nos encuentra el AIC mínimo tras probar con diferentes combinaciones.

library(MASS)
datadf<-data.frame(y=Y,x=x)
model<-lm(formula=y~x+I(x^2)+I(x^3)+I(x^4)+I(x^5)+I(x^6)+I(x^7)+I(x^8),datadf)
summary(model)
Estimación de funciones polinómicas en estadística 10
stepAIC(model,trace=FALSE)
Estimación de funciones polinómicas en estadística 11
modelOptim<- lm(formula = y ~ I(x^2) + I(x^3), data = datadf)
modelOptim
plot(X[,2],Y,pch='*')

xp<-seq(-10,10,by=0.1)
yp<-predict(modelOptim,data.frame(x=xp))
lines(xp,yp,col="blue")

modelPoly3<-lm(Y~x+I(x^2)+I(x^3))
lines(xp,predict(modelPoly3,data.frame(x=xp)),col="red")

legend(-10,800,c("polinomio menor AIC","polinomio grado 3"),pch='-',col=c('blue','red'),y.intersp=2)
Estimación de funciones polinómicas en estadística 12
summary(modelOptim)
summary(modelPoly3)
Estimación de funciones polinómicas en estadística 13

Aunque el error sea menor con el polinomio de grado 24, es mejor utilizar el modelo con un el polinomio de grado 3, porque el modelo de grado 24 está aprendiendo sobre el ruido.

¿Quieres aprender más sobre el Big Data?

En este post, te hemos explicado qué es la estimación de funciones polinómicas en estadística para el manejo del Big Data. Sin embargo, ¡aún queda mucho más por aprender al respecto! Por ello, te presentamos el Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning.

Por medio del mismo, podrás aprender más sobre las demás herramientas Big Data a través de diferentes módulos, como el de Big Data Architecture. Allí, verás una imagen completa del proceso de carga, clasificación, resguardo, gestión y presentación de los datos a través de diferentes lenguajes, herramientas y sistemas. Además, podrás instruirte tanto de manera teórica como práctica. ¡No esperes más y apúntate ya!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.