REGRESIÓN LINEAL MÚLTIPLE| MCO MATRICIAL

El Modelo de Regresión Lineal Múltiple permite generar un modelo lineal en el que el valor de la variable dependiente o respuesta(Y) se determina a partir de un conjunto de variables independientes llamadas predictores(X1, X2,X3 …… ). Este modelo puede emplearse para predecir el valor de la variable dependiente o para evaluar la influencia que tienen los predictores sobre ella. De manera evidente es una extensión de la Regresión lineal simple, por lo que es muy importante comprender esta última.

En la regresión simple nos basábamos en el método de mínimos cuadrados ordinarios(MCO) para el cálculo de las betas del modelo. En la regresión múltiple utilizaremos ese mismo método pero en forma o notación matricial. Por ello en el siguiente tutorial te explico como debes hacer ese proceso y hago el ejemplo paso a paso en R. Abajo dejo también el código para que lo copies

#CÓDIGO EN R DEL VÍDEO

#MODELO DE REGRESIÓN LINEAL MULTIPLE 



#install.packages("quantmod")
library(quantmod)
#install.packages("tseries")
library(tseries)
#install.packages("fImport")
library(fImport)
#install.packages("forecast")
library(forecast)
#install.packages("TSA")
library(TSA)
#install.packages("Quandl")
library(Quandl)
#install.packages("lmtest")
library(lmtest)
#install.packages("stats")
library(stats)


#NOTACIÓN MATRICIAL PARA MCO

# Y= B0 + B1*X + B2*Z + .....+ U


# EJEMPLO 1

VENTAS <- c(10,6,5,12,10,15,5,12,17,20) # Y

PRECIO <- c(1.30,2,1.7,1.5,1.6,1.2,1.6,1.4,1,1.10) #X

PUBLICIDAD <- c(9,7,5,14,15,12,6,10,15,21) #x2 O Z


plot(VENTAS,type="l")
plot(PRECIO,type="l")
plot(PUBLICIDAD,type="l")


#B = ((TRAS_X*X)-1) * (TRAS_X*Y)


#PASOS

#1 CONSTRUIR LA MATRIX X 

intercepto<- c(1,1,1,1,1,1,1,1,1,1)

x<- data.frame(intercepto,PRECIO,PUBLICIDAD)

matriz_X <- cbind(intercepto,PRECIO,PUBLICIDAD) #10*3



# 2. HACER LA TRANSPUESTA (cambiar filas por columnas)

tras_X <- t(matriz_X)   #3*10
tras_X

# MULTIPLICACION E INVERSA

multi_X <- tras_X %*% matriz_X  #3*3
multi_X 

inversa <- solve(multi_X)   

Y <- cbind(VENTAS) #10*1

# inversa * XT*Y

multi_X_Y <- tras_X %*% Y
multi_X_Y

#B = ((TRAS_X*X)-1) * (TRAS_X*Y)

betas <- inversa %*% multi_X_Y


betas[1] #intercepto
betas[2] # beta1
betas[3] #beta 2 

                    #int     
y_pronosticada <- betas[1]+ betas[2]*PRECIO + betas[3]*PUBLICIDAD
y_pronosticada



#***** comprobamos con la función de R

modelo <-lm(VENTAS ~ PRECIO + PUBLICIDAD)
summary(modelo)

Deja un comentario

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

Scroll al inicio