Академический Документы
Профессиональный Документы
Культура Документы
TAREA
TAREA N°4
El servicio de estudios de un banco pretende elaborar un modelo de regresión lineal con el que
explicar el nivel de consumo mensual medio por familia en términos nominales (𝐷𝑡 ) a través de
su renta mensual media, también en términos nominales (𝑌𝑡 ) y el índice de precios de consumo
(𝑃𝑡 ).
Con esta intensión decide estimar el modelo:
𝐷𝑡 = 𝛼0 + 𝛼1 𝑌𝑡 + 𝛼2 𝑃𝑡 + 𝑢𝑡
Donde el termino 𝑢𝑡 es el termino de error. Para ello dispone de 50 observaciones muestrales
generadas desde enero de 1986 hasta febrero de 1990 de la tabla 1(tarea 1).
Supongamos que 𝑉𝑎𝑟(𝑢𝑡 ) = 𝜎 2 𝑢 𝑌 𝛾 𝑡 y 0 < 𝛾 ≤ 3. Estima los parámetros 𝛾, 𝛼0 , 𝛼1 , 𝛼2 𝑦 𝜎 2 𝑢
por MV mediante un método de búsqueda sobre el posible recorrido de 𝛾 2 y después utilizando
el comando optimize. Compara ambos resultados obtenidos.
ESTIMACION SIN HETEROCEDASTICIDAD
A. ESTIMAMOS DE LOS PARÁMETROS POR MCO
Los estimadores:
𝛼̂ = (𝑋 ′ 𝑋)−1 𝑋′𝑌
datos<-read.table("Dat_tar1.txt")
dim(datos)
attach(datos)
datos[1:4,]
consumo <-V1
renta <-V2
precios <-V3
const <- rep(1,length(consumo))
regresion1 <- lm(consumo ~ renta + precios)
summary(regresion1)
Call:
lm(formula = consumo ~ renta + precios)
Residuals:
Min 1Q Median 3Q Max
-13.5839 -2.8529 0.2416 2.6791 10.2060
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 51.1359 29.7030 1.722 0.0917 .
renta 0.7226 0.0698 10.352 1.03e-13 ***
precios -0.3342 0.3640 -0.918 0.3633
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
𝑆𝐶𝑅 = ∑(𝐷 − 𝛼0 + 𝛼1 𝑌𝑡 + 𝛼2 𝑃𝑡 )2
𝑖=1
Probamos con un starling values para las alfas iguales a cero y gamma 0.1 con un valor
positivo,por lo se estimara un modelo de regresión lineal donde se cumplan las hipótesis básicas
> LogL <- function(p){
+ alfa0<- p[1]
+ alfa1<- p[2]
+ alfa2<- p[3]
+ sigma<- p[4]
+ LL <- ( -(length(consumo)/2)*log(2*pi) - (length(consumo)/2)*log(
sigma^2)
+ - (1/(2*(sigma^2))) * sum((consumo - alfa0*const - alfa1*renta -
alfa2*precios)^2) )
+ return(LL)
+ }
>
> starting.values <- c ( 0.0 , # alfa1
+ 0.0 , # alfa2
+ 0.0 , # alfa3
+ 0.1 ) # sigma
>
> LogL.opt <- maxLik(LogL,start= starting.values,
+ print.level=3,
+ method="BFGS")
Initial function value: -55335036
Initial gradient value:
[1] 720282.6 141510787.5 85347584.9 1106701608.1
initial value 55335036.219544
iter 2 value 25644.368404
iter 90 value 146.250673
final value 146.250673
converged
> LogL.opt$maximum
[1] -146.2507
> LogL.opt$estimate
[1] 51.2277279 0.7228098 -0.3352791 4.5089988
> LogL.opt$hess
[,1] [,2] [,3] [,4]
[1,] -2.44426701 -4.479261e+02 -284.7571 0.02842171
[2,] -447.92614062 -8.928245e+04 -53321.3438 0.02842171
[3,] -284.75710678 -5.332134e+04 -33256.2990 0.00000000
[4,] 0.02842171 2.842171e-02 0.0000 -4.88853402
>
De los resultados obtenidos el logaritmo máximo de la función de verosimilitud es -146,25, los
parámetros óptimos estimados podemos ver que constante es un poco diferente a la estimada
por MCO, pero los coeficientes o cambios marginales son iguales que los estimados por MCO ,
asimismo el valor de sigma es positivo
̂ = 51.22 + 0.72𝑌𝑡 − 0.33𝑃𝑡
𝐷
𝜎̃ 2 𝑀𝑉 = 4.50
ESTIMACION CON HETEROCEDASTICIDA
ESTIMACION MAXIMA VEROSIMILITUD CUANDO 𝜸 =2.34 SIN BUCLE
Utilizaremos la función con heterocedasticidad provocada por la renta, por lo que la función que
vamos a maximizar depende de α0 , α1, α2 , σ2 y 𝛾 , de la siguiente manera:
𝑉𝑎𝑟(𝑢𝑡 ) = 𝜎 2 𝑢 𝑌 𝛾 𝑡 y 0 < 𝛾 ≤ 3
𝑇 −1 𝑇
1 1
𝛼̃(𝛾) = (∑ 𝛾 𝑋𝑡 𝑋 ′ 𝑡 ) ∑ 𝑋𝑦
𝑍 𝑡 𝑍𝛾 𝑡 𝑡 𝑡
𝑡=1 𝑡=1
𝑇
1 1
𝜎̃ (𝛾, 𝛼) = ∑ 𝛾 (𝑦𝑡 − 𝑋 ′ 𝑡 𝛼)2
2
𝑇 𝑍 𝑡
𝑡=1
𝑇 𝑇
𝑇 𝑇 𝛾 1 1
𝑙𝑛𝐿(𝛼, 𝜎 2 , 𝛾) = − 𝑙𝑛2𝜋 − 𝑙𝑛𝜎 2 − ∑ 𝑙𝑛𝑍𝑡 − 2 ∑ 𝛾 (𝑦𝑡 − 𝑋 ′ 𝑡 𝛼)2
2 2 2 2𝜎 𝑍 𝑡
𝑡=1 𝑡=1
LogLHet <- function(p){
alfa0<- p[1]
alfa1<- p[2]
alfa2<- p[3]
sigma<- p[4]
gamma <- p[5]
logl <- (-(length(consumo)/2)*log(2*pi) - (length(consumo)/2)*log(si
gma^2) - (gamma/2)*sum(log(renta))
- 1/(2*(sigma^2))*sum(( 1/renta^(gamma))*(consumo - alfa0*c
onst - alfa1*renta -alfa2*precios)^2) )
return(logl)
}
X[ 1] : 7.368544e+01 G[ 1] : 8.030354e-08
X[ 2] : 7.837386e-01 G[ 2] : -3.729089e-02
X[ 3] : -6.246961e-01 G[ 3] : -1.182804e-02
X[ 4] : -9.804510e-03 G[ 4] : -7.039072e-01
X[ 5] : 2.329398e+00 G[ 5] : -9.678656e-04
Solution Found Generation 163
Number of Generations Run 500
𝑦1 0
Ω=[ ⋱ ]
3
𝑦𝑛
Por lo que dado un γ calcularemos un 𝛼 , y dado un γ y 𝛼 calcularemos un 𝜎 2 y así hasta llegar
a todas las iteraciones que acaba en 3. Al estimar 𝜎 2 cogiendo los residuos al cuadrado
evaluaremos lnL para el valor de γ=0 y así sucesivamente para todos los valores de γ .
#creamos las variables identificar la matriz X
N<-50
K<-3
consumo <-datos$V1
renta<-datos$V2
precios<-datos$V3
const<- rep(1,length(consumo))
#creamos la matriz X
X<- matrix(data=rbind(const,renta,precios), nrow=50, ncol=3, byrow=T)
X [1:5,]
dim(X)
vecL<- rep(0,300)
vecgamma<-rep(0,300)
#creamos el bucle
> vecL<- rep(0,300)
> vecgamma<-rep(0,300)
> for (i in 0:300){
+ gamma <- i/100
+ vecgamma[i]<-gamma
+ omega<-diag(50)*renta^gamma
+ A<-(solve(t(X)%*%(solve(omega))%*%X))%*%(t(X)%*%(solve(omega))%*%co
nsumo)
+ SCR<-sum((consumo-(X%*%B))^2)
+ Varianza<-((1/N)*sum(( 1/renta^(gamma))*(consumo-(X%*%B))^2) )
+ logl <- (-(N/2)*log(2*pi) - (N/2)*log(Varianza) - (gamma/2)*sum(log
(renta))
+ - 1/(2*(Varianza))*sum(( 1/renta^(gamma))*(consumo-(X%*%B))^2) )
+ vecL[i] <- logl
+ }
> max(vecL)
[1] -140.1915
> vecgamma [which.max(vecL)]
[1] 2.34
# optimización
> LogLHet <- function(p){
+ gamma<- p
+ omega<-diag(50)*renta^gamma
+ A<-(solve(t(X)%*%(solve(omega))%*%X))%*%(t(X)%*%(solve(omega))%*%co
nsumo)
+ Varianza<-((1/N)*sum(( 1/renta^(gamma))*(consumo-(X%*%B))^2) )
+ logl <- (-(N/2)*log(2*pi) - (N/2)*log(Varianza) - (gamma/2)*sum(log
(renta))
+ - (1/(2*(Varianza)))*sum(( 1/renta^(gamma))*(consumo-(X%*%B))^2) )
+ return(logl)
+ }
> optimize(LogLHet, c(0,3),maximum=T)
$maximum
[1] 2.337654
$objective
[1] -140.1915
De los resultados obtenidos el máximo es 2.33 y el objetive es de -140.19.
Como podemos observar los resultados obtenidos mediante el método de búsqueda en red
sobre el posible recorrido de gamma y el de la optimización son iguales.
Por lo que el valor de valor de gamma que hace máximo el valor de VecL es:
𝛾 = 2.33
#Obtenemos gráficamente
plot(vecL)
-140
-141
-142
-143
vecL
-144
-145
-146
Index
Observando el grafico podemos concluir que el máximo del VecL se logra cuando 𝛾 = 233 que
es igual a 𝛾 = 2,33 en escala centesimal.