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
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
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.
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.