SlideShare una empresa de Scribd logo
1 de 29
###REGRESIÓN LINEAL
1) MÍNIMOS CUADRADOSORDINARIOSUNIVARIABLES
Los datosdel archivocorrespondenatresvariablesmedidasen25individuos:edad,pesoy
lípidosensangre.Para leerel archivode datosy averiguarel nombre de lavariable:
grasas <- read.table('http://verso.mat.uam.es/~joser.berrendero/datos/EdadPesoGrasas.txt',
header= TRUE)
names(grasas)
Para cuantificarel gradode relaciónlineal,calculamoslamatrizde coeficientesde correlación:
cor(grasas)
El comandobase eslm (formalineal).El primerargumentoparaeste comandoeslafórmulay
~ x que establece larespuestaovariable dependiente(y) ycuál esla variable independienteo
variable (x).El segundoargumento,llamadodatos,especificael archivodonde se encuentran
lasvariables.Losresultadosse almacenanenunobjetollamadoregresión.Este objetoesuna
listaque contiene todalainformaciónrelevanteparael análisis.A travésdel comando
summary,obtenemosunresumende losresultadosmásimportantes:
regresion<- lm(grasas~ edad,data= grasas)
summary(regresion)
Losparámetrosde laecuaciónde la recta de mínimoscuadradosque relacionalacantidadde
grasas enla sangre enfuncióndel pesovienendadosporlacolumna´Estimate´de la tabla
´Coefficients´de lasalidaanterior.Porlotanto,eneste ejemplolaecuaciónde larecta de
mínimoscuadradoses:
𝑦 = 102.575 + 5.321𝑥
2) MINIMOS CUADRADOSORDINARIOS MULTIVARIADO
Ejemplo1: A continuaciónse estimarálasiguienterelación:
𝑦 = 𝑓 𝑋2,𝑋3 (1)
𝑦 = 𝑋𝛽 + 𝑢 2
𝑦𝑡 = 𝛽1 + 𝛽2𝑋2𝑡 + 𝛽𝑡𝑋3𝑡 + 𝑢𝑡(3)
Donde la variable dependiente, 𝑦,estaenfunciónde lasvariablesexplicativas, 𝑋2,𝑋3.
Para ejecutarloenRes necesariodireccionarlacarpetaenla que se encuentrael archivo
deuda<-read_excel("C:UsersAdministradorDocumentstrabajosronaldBDCA_P2.xlsx")
attach(deuda)
Si se deseavisualizarlosdatosa travésde una lista,bastacon escribir:
Deuda
Procederemosaestimarlosparámetrosde laregresiónatravésde la MCO para ello
necesitamoscrearlasmatricesnecesarias
X<-cbind(1,x2,x3, deparse.level=1)
y1<-cbind(y)
Para calcularel vertor X'Xnecesitamoshallarlamatríztranspuestade X y luegonecesitamos
hallarel producto
#Obtenemosladeterminante de lamatríz
#Hallamosel productode Xy
#Finalizamosconel cálculodel vectorbeta
#Comprobamoslosdatosobtenidos
#Podemosobservarque enamboscasos coinciden losvaloresdel vectorBeta
Ejemplo2:
options(scipen=9999999999)
matriz_xx_2<-matrix(data=c(26,5857, 131,
5857, 1675143, 28173,
131, 28173, 869), nrow = 3, ncol = 3, byrow = TRUE)
print(matriz_xx_2)
matriz_xy_2<-matrix(data=c(1181,
298629,
6068), nrow = 3, ncol = 1, byrow = TRUE)
print(matriz_xy_2)
inv_matriz_xx_2<-solve(matriz_xx_2)
print(inv_matriz_xx_2)
beta_2<-inv_matriz_xx_2%*%matriz_xy_2
print(beta_2)
3) MODELO LOGARÍTMICOY SEMILOGARÍTMICO
Para este temausaremosunabase de datosdel librode "Wooldrige"
Las variablesque usaremosserán"educación"y"salarioporhora"
install.packages("wooldridge")
library(wooldridge)
data('wage1')
str(wage1)
summary(wage1)
attach(wage1)
Regresión lineal
modelo.lineal<-lm(wage~educ)
summary(modelo.lineal)
Al nivel de sifgnificanciadel 1%tiene un,β1=0.54136, y un 𝑝 − 𝑣𝑎𝑙𝑢𝑒 = 2 ∗ 10 − 16. Segúnel
modelo𝑤𝑎𝑔𝑒ˆ = −0.90 + 0.54 ∗ 𝑒𝑑𝑢𝑐,donde unapersonasinañosde educaciónsusalario
es-0.90, enla realidadestoes imposible concluyendoenlaineficienciadel modelo.
shapiro.test(residuals(modelo.lineal))
El R2 del modeloesmuybajoindicandoque noexplicatanbienlarelación de lasvariables,
aplicandolapruebaShapiro-Wilkse presentaanormalidad enlosresiduales.
Modelosemilogarítmico
modelo.semilog<-lm(lwage~educ)
summary(modelo.semilog)
shapiro.test(residuals(modelo.semilog))
Una vez realizadoel summarydel modelo,se observaque conunnivel de significanciade
0.001, el coeficiente de lavariable educaciónessignificativoyconun valort<2∗10−16. El
β1=0.083 (pendiente positiva)indicaque si losañoseneducaciónaumentan,el salariorecibido
aumentará.Comparadoconel β1 del modelolineal (0.54),lapendiente del modelosemi_log
esmenospronunciadadebidoal cambioenlaescalaque se realizóenel eje y.La pruebade
shapiro.testnosmuestraque nose tiene normalidadenlosresidualesdelmodelo.
ModeloLogarítmico
Usando labase de datos"ceosal1"de "Wooldridge"cogiendolasvariables"sales"y"salary"
data('ceosal1')
str(ceosal1)
summary(ceosal1)
attach(ceosal1)
modelo.log_log<-lm(lsalary~lsales)
summary(modelo.log_log)
shapiro.test(residuals(modelo.log_log))
la formuladel modeloestadadapor:
𝑙𝑜𝑔(𝑠𝑎𝑙𝑎𝑟𝑦) = 𝛽0 + 𝛽1𝑙𝑜𝑔(𝑠𝑎𝑙𝑒𝑠) + 𝜇
Para este modelotenemosque el coeficiente estimadode ventasessignificativoconunnivel
de significanciade (0.001) y un valor 𝑡 = 2.7 ∗ 10 − 12. el shapiro.testnosindicaque nohay
normalidadenlosresidualesdel modelo.
#%𝛥𝑦 = 𝛽1%𝛥𝑥
La pendiente de este modeloestadadaporel β1=0.25667, si comparamoseste valorcon el
conceptode elasticidad,encontramosque el valorobtenidose encuentraentre (0y1); de esta
manerasi lasventasaumentanel 1%,el salarioaumenta0.25%, como conclusióntenemosque
estarelaciónseríainelástica.
4) PROBLEMAS ECONOMÉTRICOS
La regresiónlineal tienecincosupuestosparaque unaregresiónfuncione de maneracorrecta:
Linealidad,homocedasticidad,independencia,normalidad,no colinealidad.Porelloante
posiblesfallosofaltade algunode estossupuestosalahora de aplicaruna regresión,se
crearon métodosde correcciónydetecciónde estosproblemas.
LevemeTest
Las pruebasde Levene se puedenimplementarutilizandolafunciónleveneTest() delembalaje
del vehículo.Ademásde lacapacidadde comparar doso más poblaciones,tiene laventajade
permitirle elegirentre diferentesestadísticascentrales:media(predeterminada),mediana,
mediatruncada.Esto esimportante cuandose pruebalacovarianzadependiendode si los
gruposse distribuyennormalmente.
library(car)
data("iris")
iris<- filter(.data=iris,Species%in%c("versicolor","virginica"))
leveneTest(y=iris$Petal.Length,group=iris$Species,center="median")
La pruebanoencontróuna diferenciasignificativaentre lasvarianzasasde losgrupos. Existe
homocedasticidad.
Test de Pearson
La pruebade χ2 para la normalidad,comparaladistribuciónobservadade losdatosconuna
distribuciónesperada.
attach(cars)
head(cars)
install.packages("nortest")
library(nortest)
pearson.test(dist)
5) PRUEBA DE LOS SUPUESTOSDEL MODELO MCO
El modelode Mínimoscuadradosordinariostiene 5supuestosporlosque se rige:Linealidad,
independencia,homocedasticidad,normalidadynocolinealidad. Eneste casoveremoslasdos
más importantes“Heterosedasticidad”y“colinealidad”.
Heterosedasticidad
La heterosedasticidad implicaeneste caso,demostrarsi lavarianzadel error noes la misma
para las variablesexplicativasentodoslosniveles.Estoindicaintervalosde confianzano
robustos.
install.packages("readr")
install.packages("stargazer")
library(readr)
library(stargazer)
Importandoladata
data<- read_csv("C:/Users/Administrador/Documents/trabajos
ronald/BDCAP2/BaseDatos_Capitulo_2/CAP2_MCO.csv")
Modeloestimado
modelo_lineal<- lm(y~x2+x3,data= data)
stargazer(modelo_lineal,title ="modeloestimado",type ="text")
Para probar si la regresióntieneheterosedasticidadutilizaremoslapruebade White
install.packages("lmtest")
library(lmtest)
prueba_white<- bptest(modelo_lineal,~I(x2^2)+I(x3^2)+x2*x3,data=data)
print(prueba_white)
Comovemosel p-valores menora 0.05 por loque rechazamosla hipótesisnula,existe
heterosedasticidadenlaregreisón.
Autocorrelación
La determinaciónde autocorrelaciónesimportanteparasabersi losresiduosdel modeloestán
asociadoscon susvaloresanteriores.
PruebaBreusch-Godfrey
bgtest(modelo_lineal,order= 2)
Teniendounp-valormenora5% rechazamoslahipótesisnula,losresiduosdel modelosiguen
una autocorrelaciónde orden2.
6) VARIABLES DICOTÓMICAS
Ajuste de modeloslogitconglm()
Pasaremosa cambiarlos nombresde lasvariablesyreetiquetarlas.
Tabla<-data.frame(NvlEst=p301a,Dom=dominio,Estr=estrato,lengua=p300a,colegio=p301d)
p301a
table(p301a)
NvlEst<-recode(p301a,"1:6=1;7:12=0")
dominio
table(dominio)
Dom<-recode(dominio,"8=1; 1:7=0")
estrato
table(estrato)
Estr<-recode(estrato,"1:2=1; 3:8=0")
p300a
table(p300a)
lengua<-recode(p300a,"1:4=1; 6:15=0")
p301d
table(p301d)
colegio<-recode(p301d,"1=1; 2:=0")
Ahoraajustaremosel modelolineal conel código
glm(NvlEst~Estr+Dom+lengua+colegio,data=Tabla)
Describimoslabase de datos
Un modelolineal conglm()
La ordenadaal origende unmodelologit.
logit1<-glm(NvlEst~1,data=Tabla)
summary(logit1)
La constante parala variable dependientees5.096899
De maneradirectaque el logaritmode larazón de probabilidadde y=1es5.096899 aunque
este valorno esmuyintuitivonosdala nociónde que laprobabilidadde que tenganeducación
secundariaomenora lade que tenganeducaciónsuperioraésta.
Estimaciónde β1
table %>%
mutate(Estr=fct_lump(Estr,1,other_level="Otro")) %>%
glm(NvlEdu~Estr,family=binomial(),data=.) ->logit2
logit2
El outputdel comandoglm() incluye ahoraunsegundocoeficiente llamado“estrato”.Ese
coeficienteesel logaritmode larazónde probabilidadde nivel de estudiossecundarioa
inferiorcuandoel estratonoesmayor a 100 000 habitantes.Estoquiere decirque cuanto
menorseael estratomenosprobabilidadhayde que tengaestudiossuperiores.
Modelologitcon dos variables independientes
mutate(Estr=fct_lump(Estr,1,other_level="Otro"))
logit3<- glm(NvlEst~Estr+Dom,data=Tabla)
round(coef(logit3),6)
Este valor de dominioque añadimosnosmuestraque si pertenece aLimametropolitana,
disminuiráel logaritmode larazónde probabilidadde que tengaestudiossecundarioso
inferiores.
Modelologitcon múltiplesvariablesdependientes.
logit4<- glm(NvlEst~Estr+Dom+colegio+lengua,data=Tabla)
round(coef(logit4),6)
En este modelo,lavariable independienteque afectabastante el nivel de estudioesel colegio,
que si es que pertenece auncolegioestatal esmásprobable que nollegue atenermásque
educaciónsecundaria.Este aumentoesel 1.93% si esque pertenece auncolegiopúblico
7) INTRODUCCIÓN A LOS MODELOS DE SERIES DE TIEMPO
En econometría,laregresiónde seriesde tiempoutilizael métodode mínimoscuadrados
ordinarios(OLS),que siempre que se almaceneenunobjetode tipodata.frame,nosiemprees
ciertopara las seriesde tiempo.Lasseriesde tiempogeneralmentese almacenan enobjetos
de tipo,como ts,que contienenunvectoro unamatriz de la serie de tiempo,conalgunas
propiedadesadicionales,comolafechade inicio,lafechade finalizaciónyel períodode la
serie de tiempo.Estosobjetossonmuyútilesparatrabajarcon seriesde tiempo,sinembargo,
cuandose utilizaOLS,noesposible especificarlainserciónde retrasosdirectamenteenel
modelo.Estose puede solucionarutilizandoel paquete dynlm, que permite incluirvariaciones
y retrasosenel modelo.Porejemplo,considere el modelode autorregresióndistribuidaque
describió
𝑦𝑡 − 𝑦𝑡 − 1 = 0 𝛽1 (𝑦𝑡 − 1 − 𝑦𝑡 − 2) 𝛽2𝑥𝑡 − 4.
Esta forma enR se puede tratarcomo d(y) ~ L(d(y)) L(x,4).Comoejemplo,tomaremoslos
datosde Greene (2003, Capítulo8), descargablesde labase de datosde la bibliotecaAER,del
libroAppliedEconometricswithR.Lassiguienteslíneasde códigoinstalanel paquete si es
necesarioylocargan enR.
Este paquete incluye labase de datosUSMacroG, que estáenformatode serie temporal ts.
Esta base de datoscontiene datosde 1950 a 2000. Una funciónde este tipode gráficode serie
temporal () creaautomáticamente ungráficode líneas,que nospermite monitorearla
evoluciónde laserie alolargo del tiempo.Mostraremoslarentadisponibleen dpi yel
consumo.
install.packages("AER")
library("AER")
data("USMacroG")
plot(USMacroG[,c("dpi","consumption")],lty=c(3,1),plot.type ="single",ylab="")
legend("topleft",legend=c("ingreso","consumo"),lty=c(3,1),bty = "n") # Esta lineasirve para
colocar laleyendaenlaesquinasuperiorizquierda
Se consideradosmodelos,
𝐶𝑜𝑛𝑠𝑢𝑚𝑜 = 𝛽0 𝛽1𝐷𝑃𝐼𝑇 𝛽2𝑑𝑃𝐼𝑇 − 1 𝜀𝑡
𝑐𝑜𝑛𝑠𝑢𝑚𝑜 = 𝛽0 𝛽1𝐷𝑃𝐼𝑇 𝛽2𝑐𝑜𝑛𝑠𝑢𝑝𝑠𝑡 − 1 𝜀𝑡
En el primerformulario(formulariode retraso distribuido),el consumoresponde aloscambios
enla entradahasta dosperíodos,mientrasque enel segundomodelo(autor - resistenciaal
retrasodistribuido),losefectosenloscambiosde ingresoscontinúangraciasalos automóviles
especificados:estosmodelospuedenseridentificadode lasiguiente manera.
#if (!require("dynlm")) install.packages("dynlm") #Descargarel paquete,si se requiere
library(dynlm) #Cargar el paquete enR
cons_lm1 <- dynlm(consumption~dpi + L(dpi),data= USMacroG)
cons_lm2 <- dynlm(consumption~dpi + L(consumption),data=USMacroG)
Estos modelosse almacenanenlasvariablescons_lm1ycons_lm2(o el nombre que les
asignemos) al igual que loscreadosconlafunciónlm().El intervalode muestreose agregaal
informe.
summary(cons_lm1)
El segundomodeloconsigue unamejoradaptación,aunqueel valordel retrasoenla
amortizaciónessignificativo.
summary(cons_lm2)
La sumade los valorescuadradosrestantesse puede utilizarconlafunciónskew(),enel caso
de la primeraformaes1534001 y enla segundaes92644.15. Puedesverel restode los
siguientes:
plot(merge(as.zoo(USMacroG[,"consumption"]),fitted(cons_lm1),fitted(cons_lm2),0,
residuals(cons_lm1),residuals(cons_lm2)),screens=rep(1:2,c(3, 3)),lty = rep(1:3, 2),ylab=
c("Valoresajustados","Residuales"),xlab="Time",main="")
legend(0.05,0.95, c("Observados","cons_lm1","cons_lm2"),lty=1:3, bty= "n")
8) MODELO DE SERIES DE TIEMPO: PRONÓSTICOS
El objetivoprincipal del ejemploesmostrarel usode lafunciónpredict(),que servirápara
comparar el modeloestimadoylosvaloresobservadosde laserie.
Primerodeclaramosala serie cargadacomo una serie de tiempo:
library(tseries)
con.ts= ts(construct$pib,start=c(1950),end=c(2010))
Podemoshacerungráficode líneasde la serie encuestión:
plot(con.ts)
Podemosobservarque estaserie hatenidouncrecimientoexponencial,estoentoncespuede
serexplicadoporunmodelonolineal,dondese deberáutilizarlaestimaciónde mínimos
cuadradosno linealesparaencontrarlosparámetrosestimados.Laformadel modeloa
estimarse enRserá lasiguiente:
𝑐𝑜𝑛𝑠𝑡𝑡 = 𝑒𝛼0 + 𝛼1𝑡 + 𝑍𝑡
Se entiende que 𝑐0= 0, y lasintaxisparaestimareste tipode modelosenRserála siguiente:
mod<- nls(con.ts~exp(alp0+alp1 * time(con.ts)),start= list(alp0=0.1, alp1 = 0.5))
En la sintaxisse indicalaformadel modeloylosvaloresde entrada,losparámetrospodrán
observarse haciendode lafunciónsummary():
summary(mod)$parameters
Los resultadosmuestranque ambosparámetrosestimadossonestadísticamente significativos.
Para estimarlospronósticosdel modelose debe crearunanuevaestructurade datos,luegode
estocreará una serie de tiempoconlavariable pronósticosyfinalmentese graficarálos
pronósticos.
new.t<- time(ts(start=1950, end= c(2010)))
pron = ts(predict(mod,new.t),st=1950)
ts.plot(con.ts,pron,lty=1:2)
ARIMA
ARIMA o mediamóvil integrada autorregresivaesunmodeloestadísticoque utilizadiferencias
y regresionesendatosestadísticosparaencontrarpatronespara predecirel futuro.Este esun
modelode serie de tiempodinámico,loque significaque lasestimacionesfuturasse explican
por datospasados y no por variablesindependientes.
Entonces,comencemoscargandolasbibliotecaspreviamente instaladas,paralocual
necesitamosejecutarel modelocomo"tidyverce"pararealizarlastransformacionesgenerales
ennuestroconjuntode datos,ademásde la otra funciónrelacionada,"readxl"paraleerdatos
de archivode Excel,"lubricante"pararealizartransformacionesenel campode fechay el
campo de pronóstico,estaesunabibliotecautilizadaparael pronósticode seriesde tiempo
install.packages("tidyverse")
install.packages("readxl")
install.packages("lubridate")
install.packages("tseries")
library(tidyverse)
library(readxl)
library(forecast)
library(lubridate)
library(tseries)
p_ipc <- read_excel("C:/Users/Administrador/Documents/trabajosronald/Libro1.xlsx")
p_ipc
Descubrimosque nuestroconjuntode datosconstabade diferentescolumnasdonde se
encuentra'duración'o fecha(año/mes/día),ylaotra columnaes'índice común',que esla
variable encontrada.El restode columnasconsistenenconfigurardistintascolumnasde
índicesde preciosporsector o producto.
Ahorarealizaremostransformacionesenel conjuntode datosenel campo'etapa' respectivo
para separar el mesy el año,luegoagregaremoslavariable objetivode predicción 'global',
para componersu conjuntode datosdesde el cual comenzaremosnuestropronóstico,todo
estose almacenaenel variable p_ipc_es,donde mostramosel resultadode latransformación.
p_ipc %>%
mutate_at(vars(Periodo),list(year=year,month=month,day=day))%>%
select("month","year","Índice general")->p_ipc_es
Ahoratransformaremosnuestroconjuntode datosenunaserie temporal que le asignaremos
a la variable Y,indicandoperiodoyfrecuencia=12 (meses),lacual estudiaremos.Se espera
que la variable objetivosea'bruto'
El resuldonosdará laconversiónde nuestrosdatosoriginalesal formato'ts',indicandoque se
trata de unaserie temporal.
Y <- ts(p_ipc_es[,3],start= c(2012,1), end= c(2019,1), frequency=12)
class(Y)
## [1] "ts"
hora vamosa dar unavisual a losdatosque nosofrece laserie,graficamente.
autoplot(Y) +
ggtitle("IPCConsumoenEspaña") +
ylab("Índice General")
A priori,observamoslosdatosyestimamosque laserie contiene ciertospatronescomunes.
Ahoraveamosla tablade decaimientode laserie divididaen3gráficas: estacional,comúnyla
tablaen laque se representael restooresto.
descomp= decompose(Y)
autoplot(descomp)
En 'datos' podemosverunhistogramade losdatos,en 'estacional'que esestacional,podemos
verun patrón de datosque se repite cadaaño, que esun patrónconstante.
Por otro lado,la'tendencia'representalatendenciayesasí comovemosprimerounligero
aumentoyluegouna disminuciónyluegoapartirde este puntotiende asubiryrepresentael
'resto'.El dorso representalacomposiciónde losvaloresresidualesque tiene el modelo,ya
que son decrecientesycrecientes.Si sumamosgráficosestacionales,indicativosyresiduales,
obtenemosel gráficototal de datosde seriestemporales
Ahoracomprobaremosque nuestrasseriesde tiempoestánenreposoatravésde la pruebade
Dickey-Fuller,si durante laejecuciónse cumpleque el valorp> 0,05 de laserie satisface la
hipótesisnuladonde laserienoestáenreposo.,si encambiop < 0.05, lahipótesisnulanose
cumple,siendolaserie constante,probamos:
adf.test(Y)
Y notamosque el valor p es0.8218 > 0.05, por loque se satisface lahipótesisnulaylacadena
no esconstante,porlo que tendremosque buscarmodificadores parahacerque lacadena sea
constante y luegoaplicarel modeloARIMA.
Ahorausaremoslosparámetros"acf"y "pacf" para medirlosvaloresrestantes,de modoque
se puedanvergráficamente.Gráficoque muestralosresiduosyretrasos(Lags),paradefinir
seriesde tiempode recuperaciónautomáticalosvaloresnodebenexcederel nivel de
significanciaespecificado,indicadoporlíneasdiscontinuas,dondepodemosvernivelesde
significanciaalrededordel 2%.Enambos casosexiste unpicotardío que baja a cero,donde
observamosque enel casode acf el residual superaconcrecesel nivel de significancia,yenel
caso de pacf solose observaenun determinadonivel.arribayabajo.a 0 por encimadel nivel
de significación,que esdel 2%.
acf(Y)
pacf(Y)
Vamosa ver con el comandondiffs(),que diferenciashayparapoderarreglarnuestraserie
temporal ypoderconvertirlaaestacionariayasi poderaplicar el modeloARIMA.
ndiffs(Y)
## [1] 1
El comandondiffs nosindicaque hayuna diferencia,que tenemosque arreglar,vamosa
determinarlagraficaque nosda cuando aplicamosladiferenciaenel tiempoalaserie.
DY <- diff(Y,lag=1)
autoplot(DY) +
ggtitle("DiferenciasIPCEspaña") +
ylab("Índice General")
El gráficomuestrala variaciónque aplicamosalaserie,encontrandolamediaalrededorde 0y
la varianzade 1 a -1 más o menosque la mayoría de losdatos,y guardandouna cantidadde
vértices,porloque verificamoslaestabilidad.
Si ahora aplicamoslapruebade Dickey-Fullerdespuésde ladiscriminación,nosconfirmaynos
da un resultado<0,05, lo que confirmaque lacuerda ahora estáenreposo.
adf.prueba(DY)
El siguientepasoesconstruirunmodelopredictivoARIMA conla función auto.arima.La
funciónauto.arimaestádiseñadaparaestimarrápidamente el modeloARIMA probando
diferentesseriestemporales.
La funciónauto.arimaimplementaautomáticamente lafunciónARIMA,buscará
repetidamente el modeloque se ajuste alosdatosy nos dará la mejorrespuestaal modelo,
como se puede verenel procesode impresiónsonsimilares.El resultadotrasiteraciones
sucesivasesel modeloque quedaconel valorAICmás bajo.
model <- auto.arima(DY,trace = T, stepwise =F,approximation=F, max.d=0)
print(model)
checkresiduals(model)
Ahoravamos a comprobarlosresultadosdel formulario:
-Vemosenlosvaloresrestantesque losvaloresfaltantessuelenestardentrodel límitede
significación(diagramaACF).
Tambiénvemosque ladistribuciónde residuostiendeaenfocarse haciaceroy tiene una
distribuciónnormal.Ahoraharemosunaestimaciónparaeste modelo,haciendounpronóstico
donde pronosticamosel valorde lasventasde lospróximosochomesesconunaimportancia
del 95%.
mod1 <- forecast(model,8,level =95)
Los resultadosde predicciónque nosdasnosondatos reales,sinoque correspondenalas
distintasseries,tendremosque convertirestosdatosendatosreales,paraencontrarel
resultadoreal sumandolasumaacumuladade los valoresesperadosmásel últimovalordel
índice de la secuenciaoriginal,de modoque:
last_Y = Y[85]
pred_mod1= mod1$mean
pron_real = cumsum(pred_mod1) +last_Y
Ahoraconvertiremosel resultadoque nosdaa un objetots empezandoporel índice después
del últimobitde datoY, de formaque:
pron_real_ts= ts(pron_real,start= c(2019,2), frequency=12)
Con estotendremosunapredicciónde lacadenaesperadaenformato'ts'.
Si sumamosla serie original ylaserie de predicción,nosdaráun gráficode la serie de suma
resultante,que luegopodemostrazarde la siguientemanera:
ts.plot(Y,pron_real_ts,lty=c(1,3),col = c(5,2))
library(dygraphs)
graf_inter= cbind(Y,pron_real_ts)
dygraph(graf_inter)
9) REGRESIÓN CON DATOS DE PANEL
Las basesde datos de panel sonbasesde datos de cualquierentidadenel tiempo.
data.frame(Pais=c(1,1,1,2,2,2), Anio= c(2001,2002,2003,2001,2002,2003), Y = rnorm(6),X1 =
runif(6),X2= floor(runif(6,0,100)))
Tanto para efectosfijosoaleatoriosusaremosinformaciónendel repositorio"Dataand
Statistical Services"de Princenton.Usaremoslabibliotecayel paquete plmparael análisisde
la información.
if(!require('plm')){
install.packages("plm")
library(somepackage)
}
if(!require('foreign')){
install.packages("foreign")
}
library("foreign")
Panel <- read.dta("Direcciondelarchivo.dta")
Para verla informaciónusaremosel siguiente código
coplot(y~ year|country,type ="l",data = Panel)
Tambiénrealizaremosungráficoconjuntode laserie de tiempo.
library(car) # CompaniontoAppliedRegression:Contiene unaversionampliadadel diagrama
de dispersion
scatterplot(y~year|country,boxplots=FALSE,reg.line =FALSE,data= Panel)
Modelode panel lineal
El modelobásicolinealque se usaeneconometríase describe conel siguiente modelogeneral
bajolas restriccionesapropiadas:
𝑦𝑖𝑡 = 𝛼𝑖𝑡 + 𝛽 ⊺ 𝑖𝑡𝑥𝑖𝑡 + 𝜀𝑖𝑡,𝑦𝑖𝑡 = 𝛼𝑖𝑡 + 𝛽𝑖𝑡 ⊺ 𝑥𝑖𝑡 + 𝜀𝑖𝑡,
donde i=1,2,…,ni=1,2,…,n esel indicadordel individuo, 𝑡 = 1,2, …, 𝑇𝑡 = 1,2, …,𝑇 esel
indicadordel tiempoy 𝜀𝑖𝑡 ∼ 𝑁(0, 𝜎2)
Modelode EfectosFijos
Veremosque tanheterogeneossonlospaísesentre sí,conun intervalodel 95%
library(gplots)
plotmeans(y~country,main= "Heterogeneidadentre paises",data= Panel)
Tambiénpordemosverlaheterogeneidadenel tiempo
plotmeans(y~year,main="Heterogeneidadatravesdel tiempo",data= Panel)
Veamosque sucede si intentamosrealizarunaregresiónporMCO.Siempre esbuenaidea
intentarusarlas herramientasbásicasantesde lasmáscomplicadas,tantoparapracticar un
poco más comopara poderaprendera realizarunbuencomparativo.Eneste caso, la
heterogeneidadentre paísesyenel tiempodebe tomarse enconsideraciónporel modelo.
mco <- lm(y~ x1, data = Panel)
summary(mco)
Note que el valorp esextremadamente alto.Estose puede deberaque el modelopor
mínimoscuadradosinterpretalaheterogeneidadentre lospaísesyenel tiempocomoruidoen
el modelo.Enotras palabras,si los paísesfuerantodosigualesy/o,lasvariablesno
evolucionaranenel tiempo,entoncesel modelode mínimoscuadradosordinariospodríaser
suficienteparalograrexplicarel modelo.Guardemoslosvaloresajustadosyobservemosla
regresiónporMCO.
yhat <- mco$fitted.values
plot(Panel$x1,Panel$y,pch= 16, xlab= "x1", ylab= "y")
abline(mco,col ="red",lwd= 3)
El siguientemodelocontrolalaregresióntomandoenconsideraciónlaheterogeneidadentre
países.El siguientetrabajael modelocomosi,enefecto,se crearaunacolumnacon una
variable dummy(dicotómica,ode cerosy unos) para cada unode lospaíses.Esta variable
tiene unvalorde 1 para cada dato que coincide conel país de lavariable Dummyyun cero
para el resto.Note que,controlandoalospaíses,la variable x1se vuelve significativa.
fixed.dum<- lm(y~ x1 + factor(country) - 1 , data = Panel)
summary(fixed.dum)
yhat <- fixed.dum$fitted
scatterplot(yhat~Panel$x1|Panel$country,boxplots=FALSE,xlab="x1",
ylab="yhat",smooth=FALSE)
abline(lm(Panel$y~Panel$x1),lwd=3,col="red")
Ruido Blanco
Un procesode ruidoblancoo White noise,esel modelomássimple de seriestemporales.Este
modelotratade unaserie puramente aleatoriayse representapor 𝑎𝑡 .Una serie seráde ruido
blancocuando:
La esperanzaesconstante,,esigual a cero.
𝐶𝑜𝑣(𝑎𝑡,𝑎𝑡 + 𝑘) = 0 𝑝𝑎𝑟𝑎 𝑡𝑜𝑑𝑜 𝑘 ≠ 0
Este procesose trata básicamente de unoenel cual todas susvariablessonindependientes.
Un procesode ruidoblancopuede serusadoendatossimulados.
set.seed(1)
w = rnorm(100)
Podemosvisualizarlaserie haciendograficándola:
plot(w,type="l")
funciónset.seedesusadaparadar unpuntode salida(oseed) ensimulaciones,que garantiza
así la reproducciónde lasimulaciones.Si estafunciónnoesindicada,unamuestradiferentede
datosserá simulada,ylaspropiedadesestadísticascambiarán.

Más contenido relacionado

Similar a Ejemplos aplicados en R.docx

Capítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultadosCapítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultados
Sergio Valenzuela Mayer
 
Manual de r commander
Manual de r commanderManual de r commander
Manual de r commander
Lenin Medina
 
Capítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultadosCapítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultados
Sergio Valenzuela Mayer
 
RETROALIMENTACIÓN-CORRELACIÓN Y REGRESIÓN.pdf
RETROALIMENTACIÓN-CORRELACIÓN Y REGRESIÓN.pdfRETROALIMENTACIÓN-CORRELACIÓN Y REGRESIÓN.pdf
RETROALIMENTACIÓN-CORRELACIÓN Y REGRESIÓN.pdf
ThaliaRiosMartinez1
 
Intervalos de confianza ajua
Intervalos de confianza ajuaIntervalos de confianza ajua
Intervalos de confianza ajua
Dany Aguilera
 
Ejercicios de econometría (1)
Ejercicios de econometría (1)Ejercicios de econometría (1)
Ejercicios de econometría (1)
Bruno Apellidos
 
Introducci+¦n a los algoritmos1
Introducci+¦n a los algoritmos1Introducci+¦n a los algoritmos1
Introducci+¦n a los algoritmos1
Joaquin1418
 

Similar a Ejemplos aplicados en R.docx (20)

Capítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultadosCapítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultados
 
Selecccion de-variable-y-construccion-del-modelo
Selecccion de-variable-y-construccion-del-modeloSelecccion de-variable-y-construccion-del-modelo
Selecccion de-variable-y-construccion-del-modelo
 
Manual de r commander
Manual de r commanderManual de r commander
Manual de r commander
 
Capítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultadosCapítulo 07 interpretación de resultados
Capítulo 07 interpretación de resultados
 
TRABAJO FINAL R.pdf
TRABAJO FINAL R.pdfTRABAJO FINAL R.pdf
TRABAJO FINAL R.pdf
 
05 pp
05 pp05 pp
05 pp
 
algoritmos en R Studio
algoritmos en R Studioalgoritmos en R Studio
algoritmos en R Studio
 
Funciones excel
Funciones excelFunciones excel
Funciones excel
 
Regresión
RegresiónRegresión
Regresión
 
Regresión y Correlación Lineal
Regresión y Correlación LinealRegresión y Correlación Lineal
Regresión y Correlación Lineal
 
Prueba de hipótesis y R - Commander
Prueba de hipótesis y R - CommanderPrueba de hipótesis y R - Commander
Prueba de hipótesis y R - Commander
 
RETROALIMENTACIÓN-CORRELACIÓN Y REGRESIÓN.pdf
RETROALIMENTACIÓN-CORRELACIÓN Y REGRESIÓN.pdfRETROALIMENTACIÓN-CORRELACIÓN Y REGRESIÓN.pdf
RETROALIMENTACIÓN-CORRELACIÓN Y REGRESIÓN.pdf
 
Clase redes neuronales 3
Clase redes neuronales 3Clase redes neuronales 3
Clase redes neuronales 3
 
Estimación estadística
Estimación estadísticaEstimación estadística
Estimación estadística
 
Intervalos de confianza ajua
Intervalos de confianza ajuaIntervalos de confianza ajua
Intervalos de confianza ajua
 
TRABAJO 2 DE COMPUTACIONAL II.pptx
TRABAJO 2 DE COMPUTACIONAL II.pptxTRABAJO 2 DE COMPUTACIONAL II.pptx
TRABAJO 2 DE COMPUTACIONAL II.pptx
 
Ejercicios de econometría (1)
Ejercicios de econometría (1)Ejercicios de econometría (1)
Ejercicios de econometría (1)
 
Introduccion a los algoritmos parte 1
Introduccion a los algoritmos parte    1Introduccion a los algoritmos parte    1
Introduccion a los algoritmos parte 1
 
Introducci+¦n a los algoritmos1
Introducci+¦n a los algoritmos1Introducci+¦n a los algoritmos1
Introducci+¦n a los algoritmos1
 
Manual r commander
Manual r commanderManual r commander
Manual r commander
 

Último

CA152-UPC-Impuesto a la Renta-Sesión 4-2024-1.pdf
CA152-UPC-Impuesto a la Renta-Sesión 4-2024-1.pdfCA152-UPC-Impuesto a la Renta-Sesión 4-2024-1.pdf
CA152-UPC-Impuesto a la Renta-Sesión 4-2024-1.pdf
AnghieQuiquiaContrer
 
TEMA 5 CAMARA DE COMPENSACIÓN contabilidad bancaria
TEMA 5 CAMARA DE COMPENSACIÓN contabilidad bancariaTEMA 5 CAMARA DE COMPENSACIÓN contabilidad bancaria
TEMA 5 CAMARA DE COMPENSACIÓN contabilidad bancaria
PatrickPearanda1
 

Último (20)

CA152-UPC-Impuesto a la Renta-Sesión 4-2024-1.pdf
CA152-UPC-Impuesto a la Renta-Sesión 4-2024-1.pdfCA152-UPC-Impuesto a la Renta-Sesión 4-2024-1.pdf
CA152-UPC-Impuesto a la Renta-Sesión 4-2024-1.pdf
 
PRINCIPIOS DE CONTABILIDAD GENERALMENTE ACEPTADOS (PCGA).docx
PRINCIPIOS DE CONTABILIDAD GENERALMENTE ACEPTADOS (PCGA).docxPRINCIPIOS DE CONTABILIDAD GENERALMENTE ACEPTADOS (PCGA).docx
PRINCIPIOS DE CONTABILIDAD GENERALMENTE ACEPTADOS (PCGA).docx
 
Grupo07_USIL_FIN2_BoMunLima_02_atuncar.ppt
Grupo07_USIL_FIN2_BoMunLima_02_atuncar.pptGrupo07_USIL_FIN2_BoMunLima_02_atuncar.ppt
Grupo07_USIL_FIN2_BoMunLima_02_atuncar.ppt
 
Grafico Mapa Conceptual sobre la Contabilidad de Costos
Grafico Mapa Conceptual sobre la Contabilidad de CostosGrafico Mapa Conceptual sobre la Contabilidad de Costos
Grafico Mapa Conceptual sobre la Contabilidad de Costos
 
520221231-Plantilla-UCSUR-Ppt-eueieie.pptx
520221231-Plantilla-UCSUR-Ppt-eueieie.pptx520221231-Plantilla-UCSUR-Ppt-eueieie.pptx
520221231-Plantilla-UCSUR-Ppt-eueieie.pptx
 
Politica monetaria y fiscal en el Peru.pdf
Politica monetaria y fiscal en el Peru.pdfPolitica monetaria y fiscal en el Peru.pdf
Politica monetaria y fiscal en el Peru.pdf
 
flujogramadepoliconsultorio-policlínico-pampas
flujogramadepoliconsultorio-policlínico-pampasflujogramadepoliconsultorio-policlínico-pampas
flujogramadepoliconsultorio-policlínico-pampas
 
Un plan de cuentas de una empresa comercial
Un plan de cuentas de una empresa comercialUn plan de cuentas de una empresa comercial
Un plan de cuentas de una empresa comercial
 
TEMA 5 CAMARA DE COMPENSACIÓN contabilidad bancaria
TEMA 5 CAMARA DE COMPENSACIÓN contabilidad bancariaTEMA 5 CAMARA DE COMPENSACIÓN contabilidad bancaria
TEMA 5 CAMARA DE COMPENSACIÓN contabilidad bancaria
 
Teoria del productor, modelo economico productor
Teoria del productor, modelo economico productorTeoria del productor, modelo economico productor
Teoria del productor, modelo economico productor
 
mapa conceptual cristiant hernandez..pdf
mapa conceptual cristiant hernandez..pdfmapa conceptual cristiant hernandez..pdf
mapa conceptual cristiant hernandez..pdf
 
la accion del precio en trading.en.es.pdf
la accion del precio en trading.en.es.pdfla accion del precio en trading.en.es.pdf
la accion del precio en trading.en.es.pdf
 
Mapa Conceptual Contabilidad de costos Samantha Cordero
Mapa  Conceptual Contabilidad de costos Samantha CorderoMapa  Conceptual Contabilidad de costos Samantha Cordero
Mapa Conceptual Contabilidad de costos Samantha Cordero
 
Mapa Mental sobre la Norma de informacion financiera 9
Mapa Mental sobre la Norma de informacion financiera 9Mapa Mental sobre la Norma de informacion financiera 9
Mapa Mental sobre la Norma de informacion financiera 9
 
estadistica diferencial semana 8 "UTP"
estadistica diferencial semana 8   "UTP"estadistica diferencial semana 8   "UTP"
estadistica diferencial semana 8 "UTP"
 
Presentación del sexenio de Ernesto Zedillo.pptx
Presentación del sexenio de Ernesto Zedillo.pptxPresentación del sexenio de Ernesto Zedillo.pptx
Presentación del sexenio de Ernesto Zedillo.pptx
 
Procedimientos Concursales y Disoluciones
Procedimientos Concursales y DisolucionesProcedimientos Concursales y Disoluciones
Procedimientos Concursales y Disoluciones
 
software contable (siscont) historia y beneficios
software contable (siscont) historia y beneficiossoftware contable (siscont) historia y beneficios
software contable (siscont) historia y beneficios
 
Protección contra el Fraude: Bantrab tu mejor aliado
Protección contra el Fraude: Bantrab tu mejor aliadoProtección contra el Fraude: Bantrab tu mejor aliado
Protección contra el Fraude: Bantrab tu mejor aliado
 
Mapa conceptual contabilidad de costos pdf
Mapa conceptual contabilidad de costos pdfMapa conceptual contabilidad de costos pdf
Mapa conceptual contabilidad de costos pdf
 

Ejemplos aplicados en R.docx

  • 1. ###REGRESIÓN LINEAL 1) MÍNIMOS CUADRADOSORDINARIOSUNIVARIABLES Los datosdel archivocorrespondenatresvariablesmedidasen25individuos:edad,pesoy lípidosensangre.Para leerel archivode datosy averiguarel nombre de lavariable: grasas <- read.table('http://verso.mat.uam.es/~joser.berrendero/datos/EdadPesoGrasas.txt', header= TRUE) names(grasas) Para cuantificarel gradode relaciónlineal,calculamoslamatrizde coeficientesde correlación: cor(grasas) El comandobase eslm (formalineal).El primerargumentoparaeste comandoeslafórmulay ~ x que establece larespuestaovariable dependiente(y) ycuál esla variable independienteo variable (x).El segundoargumento,llamadodatos,especificael archivodonde se encuentran lasvariables.Losresultadosse almacenanenunobjetollamadoregresión.Este objetoesuna listaque contiene todalainformaciónrelevanteparael análisis.A travésdel comando summary,obtenemosunresumende losresultadosmásimportantes: regresion<- lm(grasas~ edad,data= grasas) summary(regresion) Losparámetrosde laecuaciónde la recta de mínimoscuadradosque relacionalacantidadde grasas enla sangre enfuncióndel pesovienendadosporlacolumna´Estimate´de la tabla ´Coefficients´de lasalidaanterior.Porlotanto,eneste ejemplolaecuaciónde larecta de mínimoscuadradoses: 𝑦 = 102.575 + 5.321𝑥 2) MINIMOS CUADRADOSORDINARIOS MULTIVARIADO Ejemplo1: A continuaciónse estimarálasiguienterelación: 𝑦 = 𝑓 𝑋2,𝑋3 (1)
  • 2. 𝑦 = 𝑋𝛽 + 𝑢 2 𝑦𝑡 = 𝛽1 + 𝛽2𝑋2𝑡 + 𝛽𝑡𝑋3𝑡 + 𝑢𝑡(3) Donde la variable dependiente, 𝑦,estaenfunciónde lasvariablesexplicativas, 𝑋2,𝑋3. Para ejecutarloenRes necesariodireccionarlacarpetaenla que se encuentrael archivo deuda<-read_excel("C:UsersAdministradorDocumentstrabajosronaldBDCA_P2.xlsx") attach(deuda) Si se deseavisualizarlosdatosa travésde una lista,bastacon escribir: Deuda Procederemosaestimarlosparámetrosde laregresiónatravésde la MCO para ello necesitamoscrearlasmatricesnecesarias X<-cbind(1,x2,x3, deparse.level=1) y1<-cbind(y) Para calcularel vertor X'Xnecesitamoshallarlamatríztranspuestade X y luegonecesitamos hallarel producto #Obtenemosladeterminante de lamatríz
  • 3. #Hallamosel productode Xy #Finalizamosconel cálculodel vectorbeta #Comprobamoslosdatosobtenidos #Podemosobservarque enamboscasos coinciden losvaloresdel vectorBeta Ejemplo2: options(scipen=9999999999) matriz_xx_2<-matrix(data=c(26,5857, 131, 5857, 1675143, 28173, 131, 28173, 869), nrow = 3, ncol = 3, byrow = TRUE) print(matriz_xx_2)
  • 4. matriz_xy_2<-matrix(data=c(1181, 298629, 6068), nrow = 3, ncol = 1, byrow = TRUE) print(matriz_xy_2) inv_matriz_xx_2<-solve(matriz_xx_2) print(inv_matriz_xx_2) beta_2<-inv_matriz_xx_2%*%matriz_xy_2 print(beta_2) 3) MODELO LOGARÍTMICOY SEMILOGARÍTMICO Para este temausaremosunabase de datosdel librode "Wooldrige" Las variablesque usaremosserán"educación"y"salarioporhora" install.packages("wooldridge") library(wooldridge) data('wage1') str(wage1) summary(wage1) attach(wage1) Regresión lineal
  • 5. modelo.lineal<-lm(wage~educ) summary(modelo.lineal) Al nivel de sifgnificanciadel 1%tiene un,β1=0.54136, y un 𝑝 − 𝑣𝑎𝑙𝑢𝑒 = 2 ∗ 10 − 16. Segúnel modelo𝑤𝑎𝑔𝑒ˆ = −0.90 + 0.54 ∗ 𝑒𝑑𝑢𝑐,donde unapersonasinañosde educaciónsusalario es-0.90, enla realidadestoes imposible concluyendoenlaineficienciadel modelo. shapiro.test(residuals(modelo.lineal)) El R2 del modeloesmuybajoindicandoque noexplicatanbienlarelación de lasvariables, aplicandolapruebaShapiro-Wilkse presentaanormalidad enlosresiduales. Modelosemilogarítmico modelo.semilog<-lm(lwage~educ) summary(modelo.semilog) shapiro.test(residuals(modelo.semilog)) Una vez realizadoel summarydel modelo,se observaque conunnivel de significanciade 0.001, el coeficiente de lavariable educaciónessignificativoyconun valort<2∗10−16. El β1=0.083 (pendiente positiva)indicaque si losañoseneducaciónaumentan,el salariorecibido aumentará.Comparadoconel β1 del modelolineal (0.54),lapendiente del modelosemi_log esmenospronunciadadebidoal cambioenlaescalaque se realizóenel eje y.La pruebade shapiro.testnosmuestraque nose tiene normalidadenlosresidualesdelmodelo.
  • 6. ModeloLogarítmico Usando labase de datos"ceosal1"de "Wooldridge"cogiendolasvariables"sales"y"salary" data('ceosal1') str(ceosal1) summary(ceosal1) attach(ceosal1) modelo.log_log<-lm(lsalary~lsales) summary(modelo.log_log) shapiro.test(residuals(modelo.log_log)) la formuladel modeloestadadapor: 𝑙𝑜𝑔(𝑠𝑎𝑙𝑎𝑟𝑦) = 𝛽0 + 𝛽1𝑙𝑜𝑔(𝑠𝑎𝑙𝑒𝑠) + 𝜇 Para este modelotenemosque el coeficiente estimadode ventasessignificativoconunnivel de significanciade (0.001) y un valor 𝑡 = 2.7 ∗ 10 − 12. el shapiro.testnosindicaque nohay normalidadenlosresidualesdel modelo.
  • 7. #%𝛥𝑦 = 𝛽1%𝛥𝑥 La pendiente de este modeloestadadaporel β1=0.25667, si comparamoseste valorcon el conceptode elasticidad,encontramosque el valorobtenidose encuentraentre (0y1); de esta manerasi lasventasaumentanel 1%,el salarioaumenta0.25%, como conclusióntenemosque estarelaciónseríainelástica. 4) PROBLEMAS ECONOMÉTRICOS La regresiónlineal tienecincosupuestosparaque unaregresiónfuncione de maneracorrecta: Linealidad,homocedasticidad,independencia,normalidad,no colinealidad.Porelloante posiblesfallosofaltade algunode estossupuestosalahora de aplicaruna regresión,se crearon métodosde correcciónydetecciónde estosproblemas. LevemeTest Las pruebasde Levene se puedenimplementarutilizandolafunciónleveneTest() delembalaje del vehículo.Ademásde lacapacidadde comparar doso más poblaciones,tiene laventajade permitirle elegirentre diferentesestadísticascentrales:media(predeterminada),mediana, mediatruncada.Esto esimportante cuandose pruebalacovarianzadependiendode si los gruposse distribuyennormalmente. library(car) data("iris") iris<- filter(.data=iris,Species%in%c("versicolor","virginica")) leveneTest(y=iris$Petal.Length,group=iris$Species,center="median") La pruebanoencontróuna diferenciasignificativaentre lasvarianzasasde losgrupos. Existe homocedasticidad. Test de Pearson La pruebade χ2 para la normalidad,comparaladistribuciónobservadade losdatosconuna distribuciónesperada. attach(cars) head(cars) install.packages("nortest") library(nortest) pearson.test(dist)
  • 8. 5) PRUEBA DE LOS SUPUESTOSDEL MODELO MCO El modelode Mínimoscuadradosordinariostiene 5supuestosporlosque se rige:Linealidad, independencia,homocedasticidad,normalidadynocolinealidad. Eneste casoveremoslasdos más importantes“Heterosedasticidad”y“colinealidad”. Heterosedasticidad La heterosedasticidad implicaeneste caso,demostrarsi lavarianzadel error noes la misma para las variablesexplicativasentodoslosniveles.Estoindicaintervalosde confianzano robustos. install.packages("readr") install.packages("stargazer") library(readr) library(stargazer) Importandoladata data<- read_csv("C:/Users/Administrador/Documents/trabajos ronald/BDCAP2/BaseDatos_Capitulo_2/CAP2_MCO.csv") Modeloestimado modelo_lineal<- lm(y~x2+x3,data= data) stargazer(modelo_lineal,title ="modeloestimado",type ="text") Para probar si la regresióntieneheterosedasticidadutilizaremoslapruebade White install.packages("lmtest") library(lmtest)
  • 9. prueba_white<- bptest(modelo_lineal,~I(x2^2)+I(x3^2)+x2*x3,data=data) print(prueba_white) Comovemosel p-valores menora 0.05 por loque rechazamosla hipótesisnula,existe heterosedasticidadenlaregreisón. Autocorrelación La determinaciónde autocorrelaciónesimportanteparasabersi losresiduosdel modeloestán asociadoscon susvaloresanteriores. PruebaBreusch-Godfrey bgtest(modelo_lineal,order= 2) Teniendounp-valormenora5% rechazamoslahipótesisnula,losresiduosdel modelosiguen una autocorrelaciónde orden2.
  • 10. 6) VARIABLES DICOTÓMICAS Ajuste de modeloslogitconglm() Pasaremosa cambiarlos nombresde lasvariablesyreetiquetarlas. Tabla<-data.frame(NvlEst=p301a,Dom=dominio,Estr=estrato,lengua=p300a,colegio=p301d) p301a table(p301a) NvlEst<-recode(p301a,"1:6=1;7:12=0") dominio table(dominio) Dom<-recode(dominio,"8=1; 1:7=0") estrato table(estrato) Estr<-recode(estrato,"1:2=1; 3:8=0") p300a table(p300a) lengua<-recode(p300a,"1:4=1; 6:15=0") p301d table(p301d) colegio<-recode(p301d,"1=1; 2:=0") Ahoraajustaremosel modelolineal conel código glm(NvlEst~Estr+Dom+lengua+colegio,data=Tabla) Describimoslabase de datos Un modelolineal conglm() La ordenadaal origende unmodelologit. logit1<-glm(NvlEst~1,data=Tabla) summary(logit1)
  • 11. La constante parala variable dependientees5.096899 De maneradirectaque el logaritmode larazón de probabilidadde y=1es5.096899 aunque este valorno esmuyintuitivonosdala nociónde que laprobabilidadde que tenganeducación secundariaomenora lade que tenganeducaciónsuperioraésta. Estimaciónde β1 table %>% mutate(Estr=fct_lump(Estr,1,other_level="Otro")) %>% glm(NvlEdu~Estr,family=binomial(),data=.) ->logit2 logit2 El outputdel comandoglm() incluye ahoraunsegundocoeficiente llamado“estrato”.Ese coeficienteesel logaritmode larazónde probabilidadde nivel de estudiossecundarioa inferiorcuandoel estratonoesmayor a 100 000 habitantes.Estoquiere decirque cuanto menorseael estratomenosprobabilidadhayde que tengaestudiossuperiores. Modelologitcon dos variables independientes
  • 12. mutate(Estr=fct_lump(Estr,1,other_level="Otro")) logit3<- glm(NvlEst~Estr+Dom,data=Tabla) round(coef(logit3),6) Este valor de dominioque añadimosnosmuestraque si pertenece aLimametropolitana, disminuiráel logaritmode larazónde probabilidadde que tengaestudiossecundarioso inferiores. Modelologitcon múltiplesvariablesdependientes. logit4<- glm(NvlEst~Estr+Dom+colegio+lengua,data=Tabla) round(coef(logit4),6) En este modelo,lavariable independienteque afectabastante el nivel de estudioesel colegio, que si es que pertenece auncolegioestatal esmásprobable que nollegue atenermásque educaciónsecundaria.Este aumentoesel 1.93% si esque pertenece auncolegiopúblico 7) INTRODUCCIÓN A LOS MODELOS DE SERIES DE TIEMPO En econometría,laregresiónde seriesde tiempoutilizael métodode mínimoscuadrados ordinarios(OLS),que siempre que se almaceneenunobjetode tipodata.frame,nosiemprees ciertopara las seriesde tiempo.Lasseriesde tiempogeneralmentese almacenan enobjetos de tipo,como ts,que contienenunvectoro unamatriz de la serie de tiempo,conalgunas propiedadesadicionales,comolafechade inicio,lafechade finalizaciónyel períodode la serie de tiempo.Estosobjetossonmuyútilesparatrabajarcon seriesde tiempo,sinembargo, cuandose utilizaOLS,noesposible especificarlainserciónde retrasosdirectamenteenel modelo.Estose puede solucionarutilizandoel paquete dynlm, que permite incluirvariaciones y retrasosenel modelo.Porejemplo,considere el modelode autorregresióndistribuidaque describió 𝑦𝑡 − 𝑦𝑡 − 1 = 0 𝛽1 (𝑦𝑡 − 1 − 𝑦𝑡 − 2) 𝛽2𝑥𝑡 − 4. Esta forma enR se puede tratarcomo d(y) ~ L(d(y)) L(x,4).Comoejemplo,tomaremoslos datosde Greene (2003, Capítulo8), descargablesde labase de datosde la bibliotecaAER,del libroAppliedEconometricswithR.Lassiguienteslíneasde códigoinstalanel paquete si es necesarioylocargan enR. Este paquete incluye labase de datosUSMacroG, que estáenformatode serie temporal ts. Esta base de datoscontiene datosde 1950 a 2000. Una funciónde este tipode gráficode serie temporal () creaautomáticamente ungráficode líneas,que nospermite monitorearla
  • 13. evoluciónde laserie alolargo del tiempo.Mostraremoslarentadisponibleen dpi yel consumo. install.packages("AER") library("AER") data("USMacroG") plot(USMacroG[,c("dpi","consumption")],lty=c(3,1),plot.type ="single",ylab="") legend("topleft",legend=c("ingreso","consumo"),lty=c(3,1),bty = "n") # Esta lineasirve para colocar laleyendaenlaesquinasuperiorizquierda Se consideradosmodelos, 𝐶𝑜𝑛𝑠𝑢𝑚𝑜 = 𝛽0 𝛽1𝐷𝑃𝐼𝑇 𝛽2𝑑𝑃𝐼𝑇 − 1 𝜀𝑡 𝑐𝑜𝑛𝑠𝑢𝑚𝑜 = 𝛽0 𝛽1𝐷𝑃𝐼𝑇 𝛽2𝑐𝑜𝑛𝑠𝑢𝑝𝑠𝑡 − 1 𝜀𝑡 En el primerformulario(formulariode retraso distribuido),el consumoresponde aloscambios enla entradahasta dosperíodos,mientrasque enel segundomodelo(autor - resistenciaal retrasodistribuido),losefectosenloscambiosde ingresoscontinúangraciasalos automóviles especificados:estosmodelospuedenseridentificadode lasiguiente manera. #if (!require("dynlm")) install.packages("dynlm") #Descargarel paquete,si se requiere library(dynlm) #Cargar el paquete enR cons_lm1 <- dynlm(consumption~dpi + L(dpi),data= USMacroG) cons_lm2 <- dynlm(consumption~dpi + L(consumption),data=USMacroG)
  • 14. Estos modelosse almacenanenlasvariablescons_lm1ycons_lm2(o el nombre que les asignemos) al igual que loscreadosconlafunciónlm().El intervalode muestreose agregaal informe. summary(cons_lm1) El segundomodeloconsigue unamejoradaptación,aunqueel valordel retrasoenla amortizaciónessignificativo. summary(cons_lm2)
  • 15. La sumade los valorescuadradosrestantesse puede utilizarconlafunciónskew(),enel caso de la primeraformaes1534001 y enla segundaes92644.15. Puedesverel restode los siguientes: plot(merge(as.zoo(USMacroG[,"consumption"]),fitted(cons_lm1),fitted(cons_lm2),0, residuals(cons_lm1),residuals(cons_lm2)),screens=rep(1:2,c(3, 3)),lty = rep(1:3, 2),ylab= c("Valoresajustados","Residuales"),xlab="Time",main="") legend(0.05,0.95, c("Observados","cons_lm1","cons_lm2"),lty=1:3, bty= "n") 8) MODELO DE SERIES DE TIEMPO: PRONÓSTICOS El objetivoprincipal del ejemploesmostrarel usode lafunciónpredict(),que servirápara comparar el modeloestimadoylosvaloresobservadosde laserie. Primerodeclaramosala serie cargadacomo una serie de tiempo: library(tseries) con.ts= ts(construct$pib,start=c(1950),end=c(2010)) Podemoshacerungráficode líneasde la serie encuestión: plot(con.ts)
  • 16. Podemosobservarque estaserie hatenidouncrecimientoexponencial,estoentoncespuede serexplicadoporunmodelonolineal,dondese deberáutilizarlaestimaciónde mínimos cuadradosno linealesparaencontrarlosparámetrosestimados.Laformadel modeloa estimarse enRserá lasiguiente: 𝑐𝑜𝑛𝑠𝑡𝑡 = 𝑒𝛼0 + 𝛼1𝑡 + 𝑍𝑡 Se entiende que 𝑐0= 0, y lasintaxisparaestimareste tipode modelosenRserála siguiente: mod<- nls(con.ts~exp(alp0+alp1 * time(con.ts)),start= list(alp0=0.1, alp1 = 0.5)) En la sintaxisse indicalaformadel modeloylosvaloresde entrada,losparámetrospodrán observarse haciendode lafunciónsummary(): summary(mod)$parameters Los resultadosmuestranque ambosparámetrosestimadossonestadísticamente significativos. Para estimarlospronósticosdel modelose debe crearunanuevaestructurade datos,luegode estocreará una serie de tiempoconlavariable pronósticosyfinalmentese graficarálos pronósticos. new.t<- time(ts(start=1950, end= c(2010))) pron = ts(predict(mod,new.t),st=1950) ts.plot(con.ts,pron,lty=1:2)
  • 17. ARIMA ARIMA o mediamóvil integrada autorregresivaesunmodeloestadísticoque utilizadiferencias y regresionesendatosestadísticosparaencontrarpatronespara predecirel futuro.Este esun modelode serie de tiempodinámico,loque significaque lasestimacionesfuturasse explican por datospasados y no por variablesindependientes. Entonces,comencemoscargandolasbibliotecaspreviamente instaladas,paralocual necesitamosejecutarel modelocomo"tidyverce"pararealizarlastransformacionesgenerales ennuestroconjuntode datos,ademásde la otra funciónrelacionada,"readxl"paraleerdatos de archivode Excel,"lubricante"pararealizartransformacionesenel campode fechay el campo de pronóstico,estaesunabibliotecautilizadaparael pronósticode seriesde tiempo install.packages("tidyverse") install.packages("readxl") install.packages("lubridate") install.packages("tseries") library(tidyverse) library(readxl) library(forecast) library(lubridate) library(tseries) p_ipc <- read_excel("C:/Users/Administrador/Documents/trabajosronald/Libro1.xlsx") p_ipc Descubrimosque nuestroconjuntode datosconstabade diferentescolumnasdonde se encuentra'duración'o fecha(año/mes/día),ylaotra columnaes'índice común',que esla variable encontrada.El restode columnasconsistenenconfigurardistintascolumnasde índicesde preciosporsector o producto.
  • 18. Ahorarealizaremostransformacionesenel conjuntode datosenel campo'etapa' respectivo para separar el mesy el año,luegoagregaremoslavariable objetivode predicción 'global', para componersu conjuntode datosdesde el cual comenzaremosnuestropronóstico,todo estose almacenaenel variable p_ipc_es,donde mostramosel resultadode latransformación. p_ipc %>% mutate_at(vars(Periodo),list(year=year,month=month,day=day))%>% select("month","year","Índice general")->p_ipc_es Ahoratransformaremosnuestroconjuntode datosenunaserie temporal que le asignaremos a la variable Y,indicandoperiodoyfrecuencia=12 (meses),lacual estudiaremos.Se espera que la variable objetivosea'bruto' El resuldonosdará laconversiónde nuestrosdatosoriginalesal formato'ts',indicandoque se trata de unaserie temporal. Y <- ts(p_ipc_es[,3],start= c(2012,1), end= c(2019,1), frequency=12) class(Y) ## [1] "ts" hora vamosa dar unavisual a losdatosque nosofrece laserie,graficamente. autoplot(Y) + ggtitle("IPCConsumoenEspaña") + ylab("Índice General") A priori,observamoslosdatosyestimamosque laserie contiene ciertospatronescomunes. Ahoraveamosla tablade decaimientode laserie divididaen3gráficas: estacional,comúnyla tablaen laque se representael restooresto.
  • 19. descomp= decompose(Y) autoplot(descomp) En 'datos' podemosverunhistogramade losdatos,en 'estacional'que esestacional,podemos verun patrón de datosque se repite cadaaño, que esun patrónconstante. Por otro lado,la'tendencia'representalatendenciayesasí comovemosprimerounligero aumentoyluegouna disminuciónyluegoapartirde este puntotiende asubiryrepresentael 'resto'.El dorso representalacomposiciónde losvaloresresidualesque tiene el modelo,ya que son decrecientesycrecientes.Si sumamosgráficosestacionales,indicativosyresiduales, obtenemosel gráficototal de datosde seriestemporales Ahoracomprobaremosque nuestrasseriesde tiempoestánenreposoatravésde la pruebade Dickey-Fuller,si durante laejecuciónse cumpleque el valorp> 0,05 de laserie satisface la hipótesisnuladonde laserienoestáenreposo.,si encambiop < 0.05, lahipótesisnulanose cumple,siendolaserie constante,probamos: adf.test(Y) Y notamosque el valor p es0.8218 > 0.05, por loque se satisface lahipótesisnulaylacadena no esconstante,porlo que tendremosque buscarmodificadores parahacerque lacadena sea constante y luegoaplicarel modeloARIMA. Ahorausaremoslosparámetros"acf"y "pacf" para medirlosvaloresrestantes,de modoque se puedanvergráficamente.Gráficoque muestralosresiduosyretrasos(Lags),paradefinir seriesde tiempode recuperaciónautomáticalosvaloresnodebenexcederel nivel de significanciaespecificado,indicadoporlíneasdiscontinuas,dondepodemosvernivelesde significanciaalrededordel 2%.Enambos casosexiste unpicotardío que baja a cero,donde observamosque enel casode acf el residual superaconcrecesel nivel de significancia,yenel caso de pacf solose observaenun determinadonivel.arribayabajo.a 0 por encimadel nivel de significación,que esdel 2%. acf(Y)
  • 20. pacf(Y) Vamosa ver con el comandondiffs(),que diferenciashayparapoderarreglarnuestraserie temporal ypoderconvertirlaaestacionariayasi poderaplicar el modeloARIMA. ndiffs(Y) ## [1] 1 El comandondiffs nosindicaque hayuna diferencia,que tenemosque arreglar,vamosa determinarlagraficaque nosda cuando aplicamosladiferenciaenel tiempoalaserie. DY <- diff(Y,lag=1) autoplot(DY) +
  • 21. ggtitle("DiferenciasIPCEspaña") + ylab("Índice General") El gráficomuestrala variaciónque aplicamosalaserie,encontrandolamediaalrededorde 0y la varianzade 1 a -1 más o menosque la mayoría de losdatos,y guardandouna cantidadde vértices,porloque verificamoslaestabilidad. Si ahora aplicamoslapruebade Dickey-Fullerdespuésde ladiscriminación,nosconfirmaynos da un resultado<0,05, lo que confirmaque lacuerda ahora estáenreposo. adf.prueba(DY) El siguientepasoesconstruirunmodelopredictivoARIMA conla función auto.arima.La funciónauto.arimaestádiseñadaparaestimarrápidamente el modeloARIMA probando diferentesseriestemporales. La funciónauto.arimaimplementaautomáticamente lafunciónARIMA,buscará repetidamente el modeloque se ajuste alosdatosy nos dará la mejorrespuestaal modelo, como se puede verenel procesode impresiónsonsimilares.El resultadotrasiteraciones sucesivasesel modeloque quedaconel valorAICmás bajo. model <- auto.arima(DY,trace = T, stepwise =F,approximation=F, max.d=0) print(model) checkresiduals(model) Ahoravamos a comprobarlosresultadosdel formulario:
  • 22. -Vemosenlosvaloresrestantesque losvaloresfaltantessuelenestardentrodel límitede significación(diagramaACF). Tambiénvemosque ladistribuciónde residuostiendeaenfocarse haciaceroy tiene una distribuciónnormal.Ahoraharemosunaestimaciónparaeste modelo,haciendounpronóstico donde pronosticamosel valorde lasventasde lospróximosochomesesconunaimportancia del 95%. mod1 <- forecast(model,8,level =95) Los resultadosde predicciónque nosdasnosondatos reales,sinoque correspondenalas distintasseries,tendremosque convertirestosdatosendatosreales,paraencontrarel resultadoreal sumandolasumaacumuladade los valoresesperadosmásel últimovalordel índice de la secuenciaoriginal,de modoque: last_Y = Y[85] pred_mod1= mod1$mean pron_real = cumsum(pred_mod1) +last_Y Ahoraconvertiremosel resultadoque nosdaa un objetots empezandoporel índice después del últimobitde datoY, de formaque: pron_real_ts= ts(pron_real,start= c(2019,2), frequency=12) Con estotendremosunapredicciónde lacadenaesperadaenformato'ts'. Si sumamosla serie original ylaserie de predicción,nosdaráun gráficode la serie de suma resultante,que luegopodemostrazarde la siguientemanera: ts.plot(Y,pron_real_ts,lty=c(1,3),col = c(5,2))
  • 24. 9) REGRESIÓN CON DATOS DE PANEL Las basesde datos de panel sonbasesde datos de cualquierentidadenel tiempo. data.frame(Pais=c(1,1,1,2,2,2), Anio= c(2001,2002,2003,2001,2002,2003), Y = rnorm(6),X1 = runif(6),X2= floor(runif(6,0,100))) Tanto para efectosfijosoaleatoriosusaremosinformaciónendel repositorio"Dataand Statistical Services"de Princenton.Usaremoslabibliotecayel paquete plmparael análisisde la información. if(!require('plm')){ install.packages("plm") library(somepackage) } if(!require('foreign')){ install.packages("foreign") } library("foreign") Panel <- read.dta("Direcciondelarchivo.dta") Para verla informaciónusaremosel siguiente código coplot(y~ year|country,type ="l",data = Panel) Tambiénrealizaremosungráficoconjuntode laserie de tiempo.
  • 25. library(car) # CompaniontoAppliedRegression:Contiene unaversionampliadadel diagrama de dispersion scatterplot(y~year|country,boxplots=FALSE,reg.line =FALSE,data= Panel) Modelode panel lineal El modelobásicolinealque se usaeneconometríase describe conel siguiente modelogeneral bajolas restriccionesapropiadas: 𝑦𝑖𝑡 = 𝛼𝑖𝑡 + 𝛽 ⊺ 𝑖𝑡𝑥𝑖𝑡 + 𝜀𝑖𝑡,𝑦𝑖𝑡 = 𝛼𝑖𝑡 + 𝛽𝑖𝑡 ⊺ 𝑥𝑖𝑡 + 𝜀𝑖𝑡, donde i=1,2,…,ni=1,2,…,n esel indicadordel individuo, 𝑡 = 1,2, …, 𝑇𝑡 = 1,2, …,𝑇 esel indicadordel tiempoy 𝜀𝑖𝑡 ∼ 𝑁(0, 𝜎2) Modelode EfectosFijos Veremosque tanheterogeneossonlospaísesentre sí,conun intervalodel 95% library(gplots) plotmeans(y~country,main= "Heterogeneidadentre paises",data= Panel) Tambiénpordemosverlaheterogeneidadenel tiempo
  • 26. plotmeans(y~year,main="Heterogeneidadatravesdel tiempo",data= Panel) Veamosque sucede si intentamosrealizarunaregresiónporMCO.Siempre esbuenaidea intentarusarlas herramientasbásicasantesde lasmáscomplicadas,tantoparapracticar un poco más comopara poderaprendera realizarunbuencomparativo.Eneste caso, la heterogeneidadentre paísesyenel tiempodebe tomarse enconsideraciónporel modelo. mco <- lm(y~ x1, data = Panel) summary(mco) Note que el valorp esextremadamente alto.Estose puede deberaque el modelopor mínimoscuadradosinterpretalaheterogeneidadentre lospaísesyenel tiempocomoruidoen el modelo.Enotras palabras,si los paísesfuerantodosigualesy/o,lasvariablesno evolucionaranenel tiempo,entoncesel modelode mínimoscuadradosordinariospodríaser suficienteparalograrexplicarel modelo.Guardemoslosvaloresajustadosyobservemosla regresiónporMCO. yhat <- mco$fitted.values plot(Panel$x1,Panel$y,pch= 16, xlab= "x1", ylab= "y")
  • 27. abline(mco,col ="red",lwd= 3) El siguientemodelocontrolalaregresióntomandoenconsideraciónlaheterogeneidadentre países.El siguientetrabajael modelocomosi,enefecto,se crearaunacolumnacon una variable dummy(dicotómica,ode cerosy unos) para cada unode lospaíses.Esta variable tiene unvalorde 1 para cada dato que coincide conel país de lavariable Dummyyun cero para el resto.Note que,controlandoalospaíses,la variable x1se vuelve significativa. fixed.dum<- lm(y~ x1 + factor(country) - 1 , data = Panel) summary(fixed.dum) yhat <- fixed.dum$fitted scatterplot(yhat~Panel$x1|Panel$country,boxplots=FALSE,xlab="x1", ylab="yhat",smooth=FALSE) abline(lm(Panel$y~Panel$x1),lwd=3,col="red")
  • 28. Ruido Blanco Un procesode ruidoblancoo White noise,esel modelomássimple de seriestemporales.Este modelotratade unaserie puramente aleatoriayse representapor 𝑎𝑡 .Una serie seráde ruido blancocuando: La esperanzaesconstante,,esigual a cero. 𝐶𝑜𝑣(𝑎𝑡,𝑎𝑡 + 𝑘) = 0 𝑝𝑎𝑟𝑎 𝑡𝑜𝑑𝑜 𝑘 ≠ 0 Este procesose trata básicamente de unoenel cual todas susvariablessonindependientes. Un procesode ruidoblancopuede serusadoendatossimulados. set.seed(1) w = rnorm(100) Podemosvisualizarlaserie haciendograficándola: plot(w,type="l")
  • 29. funciónset.seedesusadaparadar unpuntode salida(oseed) ensimulaciones,que garantiza así la reproducciónde lasimulaciones.Si estafunciónnoesindicada,unamuestradiferentede datosserá simulada,ylaspropiedadesestadísticascambiarán.