유한시차 모형
본 글은 우석진 교수님의 책을 바탕으로 작성되었습니다. 책이 나오면 꼭 사보세요.
우석진, R for Econometric Big Data Analysis
예제와 일부 내용이 다릅니다.
필요한 패키지를 먼저 정리해보겠습니다.
library(dplyr) #데이터 처리
library(car) #장기효과 계산 때문에
library(ggplot2) #그래프
library(stargazer) #계량경제 표현
데이터는 PoEdata를 사용하겠습니다. 먼저 패키지를 설치합니다.
library(devtools)
devtools::install_github("ccolonescu/PoEdata")#PoEData
fair4데이터를 쓰겠습니다.
data(fair4)
성장과 투표 사이의 관계를 알아볼 생각입니다. fair4 데이터를 보면 시계열로 정리되어 있다는 점을 알 수 있습니다.
핵심 변수들의 관계를 짐작하기 위해 그래프를 그려봅니다.
ggplot(fair4,
aes(x=growth,y=vote,colour=c('No','Yes')[as.factor(war)]))+
geom_point(size=3,alpha=0.8)+
geom_smooth(method='loess',aes(x=growth,y=vote),colour="blue",se=FALSE)+
labs(colour="War")+
theme_bw()
이리저리해서 여러 모형을 생각해보겠습니다. STATA처럼 보려면 stargazer 함수를 쓰면 됩니다.
stargazer(
lm(vote~growth+war,data=fair4),
lm(vote~growth+goodnews,data=fair4),
lm(vote~growth+goodnews+war,data=fair4),
type='text'
)
시차 모형을 만들어보겠습니다. 단기효과들을 계산하지요.
stargazer(
lm(vote~growth+goodnews,data=fair4),
lm(vote~growth+lag(growth,1)+goodnews,data=fair4),
lm(vote~growth+lag(growth,1)+lag(growth,2)+goodnews,data=fair4),
type='text'
)
결과는
단기효과를 보면 당해가 0.634, 1차 lagged가 -0.311, 2차부터는 그다지....
현재 경제가 호황이고 작년에 경제가 나쁘면 voting이 올라가겠군요. 장기효과를 보겠습니다. car 패키지의 deltaMethod()함수를 써서 계산값을 구해봅니다.
m<-lm(vote~growth+g_1+g_2+goodnews,
data=fair4%>%
as_tibble()%>%
mutate(g_1=lag(growth,1))%>%
mutate(g_2=lag(growth,2)))
long_term=deltaMethod(m,'growth+g_1+g_2',data=fair4%>%
as_tibble()%>%
mutate(g_1=lag(growth,1))%>%
mutate(g_2=lag(growth,2)))
효과를 보면,
장기효과는 약 0.056 정도입니다. 경제가 호황이면 정치 참여가 늘어납니다. 민주주의 하려면 경제가 좋아야할까요?
p-value를 계산해봅시다.
tv=(long_term$Estimate-long_term$`2.5 %`)*sqrt(nrow(fair4))/(long_term$SE)
pv=2*pt(tv,nrow(fair4)-1,lower=FALSE)
sprintf("t-value = %.4f p-value = %.4f",tv,pv)
결과는
ㅋㅋㅋㅋ
STATA로 쉽게 할 수 있는 것을 R로 어렵게 해봤습니다. 우교수님께서 빨랑 책을 내셔서 데이터도 다 공유했으면 좋겠습니다. 교재로 쓰기 좋도록 편집도 잘 해두셨던데...
우석진, R for Econometric Big Data Analysis
예제와 일부 내용이 다릅니다.
필요한 패키지를 먼저 정리해보겠습니다.
library(dplyr) #데이터 처리
library(car) #장기효과 계산 때문에
library(ggplot2) #그래프
library(stargazer) #계량경제 표현
데이터는 PoEdata를 사용하겠습니다. 먼저 패키지를 설치합니다.
library(devtools)
devtools::install_github("ccolonescu/PoEdata")#PoEData
fair4데이터를 쓰겠습니다.
data(fair4)
성장과 투표 사이의 관계를 알아볼 생각입니다. fair4 데이터를 보면 시계열로 정리되어 있다는 점을 알 수 있습니다.
핵심 변수들의 관계를 짐작하기 위해 그래프를 그려봅니다.
ggplot(fair4,
aes(x=growth,y=vote,colour=c('No','Yes')[as.factor(war)]))+
geom_point(size=3,alpha=0.8)+
geom_smooth(method='loess',aes(x=growth,y=vote),colour="blue",se=FALSE)+
labs(colour="War")+
theme_bw()
이리저리해서 여러 모형을 생각해보겠습니다. STATA처럼 보려면 stargazer 함수를 쓰면 됩니다.
stargazer(
lm(vote~growth+war,data=fair4),
lm(vote~growth+goodnews,data=fair4),
lm(vote~growth+goodnews+war,data=fair4),
type='text'
)
시차 모형을 만들어보겠습니다. 단기효과들을 계산하지요.
stargazer(
lm(vote~growth+goodnews,data=fair4),
lm(vote~growth+lag(growth,1)+goodnews,data=fair4),
lm(vote~growth+lag(growth,1)+lag(growth,2)+goodnews,data=fair4),
type='text'
)
결과는
단기효과를 보면 당해가 0.634, 1차 lagged가 -0.311, 2차부터는 그다지....
현재 경제가 호황이고 작년에 경제가 나쁘면 voting이 올라가겠군요. 장기효과를 보겠습니다. car 패키지의 deltaMethod()함수를 써서 계산값을 구해봅니다.
m<-lm(vote~growth+g_1+g_2+goodnews,
data=fair4%>%
as_tibble()%>%
mutate(g_1=lag(growth,1))%>%
mutate(g_2=lag(growth,2)))
long_term=deltaMethod(m,'growth+g_1+g_2',data=fair4%>%
as_tibble()%>%
mutate(g_1=lag(growth,1))%>%
mutate(g_2=lag(growth,2)))
효과를 보면,
장기효과는 약 0.056 정도입니다. 경제가 호황이면 정치 참여가 늘어납니다. 민주주의 하려면 경제가 좋아야할까요?
p-value를 계산해봅시다.
tv=(long_term$Estimate-long_term$`2.5 %`)*sqrt(nrow(fair4))/(long_term$SE)
pv=2*pt(tv,nrow(fair4)-1,lower=FALSE)
sprintf("t-value = %.4f p-value = %.4f",tv,pv)
결과는
ㅋㅋㅋㅋ
STATA로 쉽게 할 수 있는 것을 R로 어렵게 해봤습니다. 우교수님께서 빨랑 책을 내셔서 데이터도 다 공유했으면 좋겠습니다. 교재로 쓰기 좋도록 편집도 잘 해두셨던데...
댓글
댓글 쓰기