Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Carolina Arrieta
2023-02-02
Rmarkdown
• Con “#” puedo colocar títulos y a medida que añado más “##” agrego subtítulos
• Si deseo escribir texto de corrido, en el caso de Rmarkdown puedo hacerlo fuera de un chunk (parte
donde puedo incluir código, como lo haría en R)
2. Puedo añadir fórmulas con casi el mismo formato utilizado en latex con algunas modifica-
ciones
• En las ecuaciones antes y después de comenzarlas coloco el signo pesos “$”, si deseo que la ecuación
esté centrada coloco dos signo pesos, para añadir símbolos o letras extrañas para markdown, agrego \
Y
P IBp =
L
A = π ∗ r2
ˆ
P
− X̄)(µi − µ̄)
j=1 (Xi
β̂1 = β1 + P
j=1 (Xj − X̄)2
• Para ecuaciones dentro de un texto de corrido escribo yt = β1 Xt − ut siendo parte del párrafo
1
3. Puedo insertar imágenes de la siguiente manera:
Colocando ![] y añadiendo la ubicación dentro del computador de la imagen se agrega la imagen
• Ejemplo imagen 1
4. Citar y enumerar
• Si deseo agregar una cita en bloque que necesita tener una sangría especial, añado > antes de la cita,
añado varios para tener mayor tabulación
Cita en bloque
Para el caso de viñetas, con * o + puedo añadir items a la lista, también puedo iniciar numeraciones
• Enumeración
– Elemento 1
– Elemento 2
1. Lista ordenada
2. Segundo
• Primero
• Segundo
Si deseo añadir líneas de código puedo agregar un chunk, esto lo hago colocando ´´ al inicio y al final de
cada bloque de código, puedo definir con {r echo = TRUE} si deseo que las líneas de código aparezcan en el
documento o {r echo = FALSE} si no deseo que aparezcan en el documento (cuando selecciono esta opción,
las salidas de código seguirán apareciendo en el documento) Puedo nombrar cada chunk para ubicarlo más
rápido con varios numerales, después de abrir el bloque
2
Autocorrelación
1. Caso de la clase
Puedo colocar todo el código en un solo chunk o colocarlo en varios chunks e ir interpretando o hablando
de él. Si alguno de los chunks anteriores no corre o tiene error en el código, el Rmarkdown no podrá ser
ejecutado hasta generar un pdf o documento esperado.
En este ejemplo vamos analizar la relación entre salarios y productividad en el sector de negocios de Estados
Unidos entre 1960 y 2005.
##
## Attaching package: ’pcse’
3
## format.pval, units
##
##
## Registered S3 method overwritten by ’quantmod’:
## method from
## as.zoo.data.frame zoo
##
## Loading required package: zoo
##
##
## Attaching package: ’zoo’
##
##
## The following objects are masked from ’package:base’:
##
## as.Date, as.Date.numeric
Cargamos los datos basados en la base de datos del ejemplo tomado del texto de Guajarati (tabla 12.4)
4
120
Remuneraciones
100
90
80
70
60
60 80 100 120
Productividad
Podemos cambiar las variables a logaritmo natural con el fin de tenerlas en la misma escala de valores y
disminuir variación entre los datos. La interpretación si ambas están en ln es como una elasticidad “un
incremento de 1% en X está asociado a un cambio de β% en Y”
##
## Call:
## lm(formula = lY ~ lX, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.041164 -0.017041 0.001037 0.018077 0.038719
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.60668 0.05471 29.37 <2e-16 ***
## lX 0.65222 0.01235 52.80 <2e-16 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
##
5
## Residual standard error: 0.02208 on 44 degrees of freedom
## Multiple R-squared: 0.9845, Adjusted R-squared: 0.9841
## F-statistic: 2788 on 1 and 44 DF, p-value: < 2.2e-16
4.5
4.3
4.1
Productividad ln
Para detectar si existe autocorrelación entre los residuales del modelo de regresión los graficaré respecto al
tiempo, esto me permite ver si los valores que toma y, pueden estar afectados por los residuales de los y
pasados incluidos en el residual de y en el presente.
{plot(data$Year, data$u,
ylab="",
xlab="", type="l", xaxt="none")
axis(1, seq(1960,2005,2))
6
mtext(side=1, line=3, "year",cex=1.1)
mtext(side=2, line=3, "u",cex=1.1)
abline(0, 0, col="red")}
0.04
0.02
0.00
u
−0.02
−0.04
year
{plot(data$Year, data$std_u,
ylab="",
xlab="", type="l", xaxt="none")
axis(1, seq(1960,2005,2))
mtext(side=1, line=3, "year",cex=1.1)
mtext(side=2, line=3, "u estandarizados",cex=1.1)
abline(0, 0, col="red")}
7
1
u estandarizados
0
−1
−2
year
En los residuales tanto los normales como los estandarizados (se encuentran entre -1 y 1) se pueden observar
formas que pueden darnos indicios de comportamientos de autocorrelación, no parecen ser generados de
forma aleatoria.
Evaluando ut contra ut−1
#### Graficando los residuales del presente frente a los residuales del pasado ####
{plot(data$u_1, data$u,
ylab="",
xlab="", type = "p", pch = 16, col = "blue")
mtext(side=1, line=3, "u(t-1)",cex=1.1)
mtext(side=2, line=3, "ut",cex=1.1)
abline(h=0, v=0, col="black", lty=2)
abline(lm(data$u ~ data$u_1, data = data), col = "green", lty=2)}
8
0.04
0.02
0.00
ut
−0.02
−0.04
u(t−1)
dwtest(modelo1)
##
## Durbin-Watson test
##
## data: modelo1
## DW = 0.21756, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
9
El test de correlación serial de Breusch–Godfrey LM es un test de autocorrelación en los errores y residuos
estadísticos en un modelo de regresión. Hace uso de los errores generados en el modelo de regresión y un
test de hipótesis derivado de éste.
Ho : No existe correlación serial de cualquier orden sobre ρ.
##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: modelo1
## LM test = 34.02, df = 1, p-value = 5.456e-09
coeftest(bg1)
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.0062584 0.0282482 0.2216 0.8247
## lX -0.0015019 0.0063783 -0.2355 0.8138
## lag(resid)_1 0.8686522 0.0786108 11.0500 <2e-16 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
Correlogramas
#Con código
{acf(data$u, 20, xlim=c(1,20), main = "", ylab = "", xlab = "", xaxt="none")
axis(1, 1:20)
mtext(side=1, line=3, "Rezagos",cex=1.1)
mtext(side=2, line=3, "Autocorrelation (AC)",cex=1.1)}
10
1.0
Autocorrelation (AC)
0.5
0.0
−0.5
1 2 3 4 5 6 7 8 9 11 13 15 17 19
Rezagos
11
0.8
Partial autocorrelation (PAC)
0.6
0.4
0.2
−0.2 0.0
1 2 3 4 5 6 7 8 9 11 13 15 17 19
Rezagos
#Con función
ggAcf(data$u,main="ACF de los residuales")
12
ACF de los residuales
0.5
ACF
0.0
−0.5
5 10 15
Lag
13
PAC de los residuales
0.9
0.6
PAC
0.3
0.0
−0.3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Lag
Podemos observar un problema de autocorrelación en los residuales y puede ser de orden AR(1) ACF con
decaimiento exponencial, PACF con caida abrupta, propio de un AR
H0 : Los datos se distribuyen de forma independiente (es decir, las correlaciones en la población de la que
se toma la muestra son 0, de modo que cualquier correlación observada en los datos es el resultado de la
aleatoriedad del proceso de muestreo
#### Test Ljung Box ####
##
## Box-Ljung test
##
## data: data$u
## X-squared = 35.566, df = 1, p-value = 2.465e-09
14
## Iteration 0: rho = 0
## Iteration 1: rho = 0.8679
## Iteration 2: rho = 0.8912
## Iteration 3: rho = 0.8953
## Iteration 4: rho = 0.8962
## Iteration 5: rho = 0.8964
## Iteration 6: rho = 0.8964
## Iteration 7: rho = 0.8964
## Iteration 8: rho = 0.8964
## Iteration 9: rho = 0.8964
summary(pw)
##
## Call:
## prais_winsten(formula = lY ~ lX, data = data, index = data$Year)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.03546 -0.01079 0.00693 0.02630 0.04666
##
## AR(1) coefficient rho after 9 iterations: 0.8964
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.56421 0.13458 11.62 5.3e-15 ***
## lX 0.66009 0.03035 21.75 < 2e-16 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
##
## Residual standard error: 0.01014 on 44 degrees of freedom
## Multiple R-squared: 0.9974, Adjusted R-squared: 0.9974
## F-statistic: 1.721e+04 on 1 and 44 DF, p-value: < 2.2e-16
##
## Durbin-Watson statistic (original): 0.2176
## Durbin-Watson statistic (transformed): 1.67
## Call:
## lm(formula = lY ~ lX, data = data)
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.955389 0.192416 10.162 5.283e-13 ***
## lX 0.576819 0.041914 13.762 < 2.2e-16 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
##
## Residual standard error: 0.0096 on 43 degrees of freedom
## Multiple R-squared: 0.815 , Adjusted R-squared: 0.8107
## F-statistic: 189.4 on 1 and 43 DF, p-value: < 2.349e-17
15
##
## Durbin-Watson statistic
## (original): 0.21756 , p-value: 5.098e-19
## (transformed): 1.70388 , p-value: 1.253e-01
##
## Lag truncation parameter chosen: 1
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.606680 0.171168 9.3865 4.536e-12 ***
## lX 0.652216 0.039821 16.3787 < 2.2e-16 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
library(nlme)
##
## Attaching package: ’nlme’
library(EnvStats)
##
## Attaching package: ’EnvStats’
16
2. Simulando con datos y revisando autocorrelación de los errores.
yt = β1 Xt + ut
ut = ρut−1 + ϵt
Crearé un vector X que distribuye normal con tamaño 10.000,media 3 y desviación estándar 1
Simulando errores, para este caso la correlación los residuales ut con los ut−1 será de ρ = 0.7 Asumiré que
el error entre los residuales será ruido blanco. Los residuales siguen un proceso AR (1)
#Simulando errores
17
6
4
2
u
0
−2
−4
Index
y <- X*beta + u
##
## Call:
## lm(formula = y ~ X)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.4047 -1.0421 0.0198 1.0379 5.8663
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.07746 0.04897 1.582 0.114
## X 0.46913 0.01546 30.345 <2e-16 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
##
## Residual standard error: 1.525 on 9998 degrees of freedom
## Multiple R-squared: 0.08433, Adjusted R-squared: 0.08424
## F-statistic: 920.8 on 1 and 9998 DF, p-value: < 2.2e-16
18
u_tilde <- y_mco$residuals
u_tilde_rezagado <- rep(NA,Tamano)
for (t in 2:Tamano) u_tilde_rezagado[t] <- u_tilde[t-1]
##
## Call:
## lm(formula = u_tilde ~ X + u_tilde_rezagado)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.6143 -0.6650 0.0058 0.6762 3.8509
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.032448 0.031811 -1.020 0.308
## X 0.010733 0.010043 1.069 0.285
## u_tilde_rezagado 0.760395 0.006497 117.041 <2e-16 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
##
## Residual standard error: 0.9908 on 9996 degrees of freedom
## (1 observation deleted due to missingness)
## Multiple R-squared: 0.5781, Adjusted R-squared: 0.578
## F-statistic: 6849 on 2 and 9996 DF, p-value: < 2.2e-16
Graficando la regresión
19
8
6
4
2
Y
0
−2
−4
0 2 4 6
{plot(u_tilde_rezagado, u_tilde,
ylab="",
xlab="", type = "p", pch = 16, col = "blue")
mtext(side=1, line=3, "u(t-1)",cex=1.1)
mtext(side=2, line=3, "ut",cex=1.1)
abline(lm(u_tilde ~ u_tilde_rezagado), col = "red", lty=2)}
20
6
4
2
ut
0
−2
−4
−4 −2 0 2 4 6
u(t−1)
dwtest(y_mco)
##
## Durbin-Watson test
##
## data: y_mco
## DW = 0.47935, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: modelo1
## LM test = 34.02, df = 1, p-value = 5.456e-09
coeftest(bg1)
21
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.0062584 0.0282482 0.2216 0.8247
## lX -0.0015019 0.0063783 -0.2355 0.8138
## lag(resid)_1 0.8686522 0.0786108 11.0500 <2e-16 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
Correlogramas
0.6
0.4
ACF
0.2
0.0
0 10 20 30 40
Lag
22
PAC de los residuales
0.6
0.4
PAC
0.2
0.0
0 10 20 30 40
Lag
##
## Box-Ljung test
##
## data: u_tilde
## X-squared = 5782.2, df = 1, p-value < 2.2e-16
## Call:
## lm(formula = y ~ X)
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.0302462 0.0477663 0.633 0.5266
## X 0.4846220 0.0079411 61.027 <2e-16 ***
23
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
##
## Residual standard error: 0.9906 on 9997 degrees of freedom
## Multiple R-squared: 0.2714 , Adjusted R-squared: 0.2714
## F-statistic: 3724.3 on 1 and 9997 DF, p-value: < 0e+00
##
## Durbin-Watson statistic
## (original): 0.47935 , p-value: 0e+00
## (transformed): 2.02412 , p-value: 8.87e-01
##
## Lag truncation parameter chosen: 1
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.077463 0.062451 1.2404 0.2149
## X 0.469129 0.015454 30.3572 <2e-16 ***
## ---
## Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
24