Regresión Polinómica. (Modelos de Regresión no Lineales)

La regresión polinómica o polinomial es un tipo de modelo de regresión de carácter no lineal. Lo que busca es añadir curvatura al modelo añadiendo predictores que conseguimos elevando a distintas potencias todos o algunos de esos esos predictores.

Hay otras formas de hacer regresiones no lineales como las splines,las regresiones locales, los modelos aditivos generalizados etc etc .  Hoy en este vídeo haré una introducción al ya citado  método polinomial usando R.

También abajo puedes copiar el código usado en el vídeo.

 

Codigo R


## REGRESIÓN NO LINEAL — POLINÓMICA

# Polinómica
# Step Functios
# Regresion Splines
# Regresión local etc
# Modelos aditivos generalizados


## PARTE 1 — CREACIÓN DEL MODELO LINEAL


#install.packages(«quantmod»)
library(quantmod)
#install.packages(«tseries»)
library(tseries)
#install.packages(«forecast»)
library(forecast)
#install.packages(«TSA»)
library(TSA)
#install.packages(«Quandl»)
library(Quandl)

#install.packages(«fImport»)
library(«fImport»)


#1. Descargamos las variables que vamos a usar

getSymbols(«INDPRO»,src=»FRED») #Industrial Production Index
getSymbols(«UMCSENT»,src=»FRED») #University of Michigan: Consumer Sentiment
getSymbols(«FEDFUNDS»,src=»FRED») #tasa interes fondos federales
getSymbols(«CCRETT01USM661N»,src=»FRED») #Tipo de cambio efectivo IPC
getSymbols(«M2NS»,src=»FRED») #Stock de dinero M2
getSymbols(«PAYEMS»,src=»FRED») # Des trabajadores no rurales
getSymbols(«BOPGSTB»,src=»FRED») #Balance cuenta, Diferencia entre exp e imp
getSymbols(«EXUSEU»,src=»FRED») #EUR mensual

 

## Predecir GBPUSD — 1 mes

###2. Dividimos lso datos en 2 muestras
## IN SAMPLE y OUT SAMPLE


prod= INDPRO[«2001-01::2020-11»]
sent= UMCSENT[«2001-01::2020-11»]
Fedfunds=FEDFUNDS[«2001-01::2020-11»]
EUR=EXUSEU[«2001-01::2020-11»]
credit=CCRETT01USM661N[«2001-01::2020-11»]
pay=PAYEMS[«2001-01::2020-11»]
money=M2NS[«2001-01::2020-11»]
trade=BOPGSTB[«2001-01::2020-11»]


######################

#creamos una tabla

forex=data.frame(merge(sent,Fedfunds,EUR,credit,pay,money,trade))

plot(Fedfunds,type=»l»)
plot(EUR,type=»l»)


ggplot(forex, aes(EUR,Fedfunds))+ geom_point () + stat_smooth()

ggplot(forex, aes(money,Fedfunds))+ geom_point () + stat_smooth()

ggplot(forex, aes(EUR,money))+ geom_point () + stat_smooth()

 

#Creamos el modelo de Regresión lineal

#Relación EURUSD _ fondos federales

lineal<-lm(EUR~Fedfunds,data=forex)
summary(lineal)

res<-residuals(lineal)
residuals.lm(lineal)

plot(res[,1],type=»l»)


### Modelo con Regresión polinómica


model_2<-lm(EUR~Fedfunds+I(Fedfunds^2)+I(Fedfunds^3),data=forex)
summary(model_2)


model_3<-lm(EUR~Fedfunds+I(Fedfunds^2)+I(Fedfunds^3)+I(Fedfunds^4),data=forex)
summary(model_3)

#res<-residuals(model_2)
#res_2<-residuals.lm(model_2)


model_4 <-lm(EUR~poly(Fedfunds,3,raw=TRUE),data= forex)
summary(model_4)


#coef(model_2)

#lm(EUR~poly(money,3,raw=FALSE),data= forex)


#ggplot(forex, aes(GBPUSD,EURGBP))+ geom_point () + stat_smooth()

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *