Últimas entradas de Victor A.Rico (ver todo)
- Medidas Estadísticas de Dispersión Relativa - junio 11, 2024
- Modelos SARIMA(Arima Estacionales).¿Qué son y cómo usarlos para Predecir? - enero 4, 2024
- ¿Qué es el RUIDO BLANCO ? Econometría en R - junio 21, 2023
Este tutorial es el segundo de la serie sobre Modelo de Regresión Lineal MÚLTIPLE que estaré subiendo. Hoy vemos como obtener el Coeficiente de Determinación (R2) y la tabla ANOVA. Nos acompañamos de R studio para realizar el procedimiento. Más abajo dejaré el código en R utilizado en el vídeo para que lo puedas copiar.
#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)
#### CLASE 2 -- INFERENCIAS E INTERPRETACIONES SOBRE EL MODELO
# 1 - y pronosticada Y^
y_pronosticada <- betas[1]+ betas[2]*PRECIO + betas[3]*PUBLICIDAD
y_pronosticada
#2 sacamos los residuos Y - Y^
residuos <- VENTAS - y_pronosticada
plot(residuos,type="l")
#3 Sacamos los residuos al cuadrado
residuos_cuadrados <- residuos^2
residuos_cuadrados
#4 sumatorio residuos al cuadrado
sum_res_cuadr <- sum(residuos_cuadrados)
sum_res_cuadr
#5 Error estandar de la estimación
#n -k-1
sum_res_cuadr/(10-2-1)
Sxyz <- sqrt(sum_res_cuadr/(10-2-1)) # Error estandar estimación
Sxyz
#6 Cálculo del R2 ( coeficiente de determinación)
#R2= SSR /SST
#SST = sum(VENTAS- media_Y)^2
media_Y<- mean(VENTAS)
Sumas =(VENTAS- media_Y)^2
SST = sum(Sumas)
SST
#si ya tenmos SST y SSE podemos saca facil el SSR
# SST = SSR + SSE
SSE <- sum_res_cuadr
SSR <- SST- sum_res_cuadr
#Por tanto R2
R2 <- SSR/SST
R2
#varibles indep eplican el 93 de la varibilidad de la variable y Ventas
# ventas están explicadas en un 93 % por el precio y la publicidad
#tabla ANOVA
MSR = SSR/ 2
MSE = SSE/ (10-2-1)
Prueba_F = MSR/MSE
Prueba_F
summary(modelo)
R2
Sxyz