2014-12-11 2 views
1

나는 rho = 0.7 인 AR (1) 모델로부터 데이터 (Y)를 시뮬레이션하려고합니다. 그런 다음이 데이터를 사용하여 절편에서 Y를 회귀 한 다음 (매개 변수 추정을 Y 값의 평균이 됨으로써) 0보다 작거나 같은 계수의 귀무 가설을 검정합니다 (대체 값은 0보다 큽니다).)를 사용합니다. 다른 래그 값에 대해 2000 번의 복제를 사용하여이 가정에 대한 몬테카를로 시뮬레이션을 실행하고 싶습니다. 그 목적은 래그 (lag)가 변함에 따라 Newey West 평가자의 유한 샘플 성능을 보여주는 것입니다. 그래서 이것은 내가 시작한 방법이다.몬테카를로 시뮬레이션 in R

A<-array(0, dim=c(2000,1)) 
for(i in 1:2000){ 
    y_new<-arima.sim(model=list(ar=0.7), n=50, mean=0,sd=1) 
    reg<-lm(y_new~1) 
    ad<-coeftest(reg, alternative="greater", vcov=NeweyWest(reg, lag=1, prewhite=FALSE)) 
    A[i]<-ad[,3] 
} 

나의 질문 : 이러한 종류의 시뮬레이션을 수행하는 올바른 방법 위에있는 코드는 무엇입니까? 그렇다면 HAC 테스트에서 다른 래그 값에 대해이 프로세스를 반복하는 코드를 어떻게 얻을 수 있습니까? 나는 lag을 1 씩 증가시킬 때마다 테스트를 실행하기를 원한다. 따라서 lags 1,2,3,4 ......, 50에 대해 50 번을 수행하여 2000 개의 시뮬레이션 된 테스트 통계를 다른 이름을 가진 벡터. 다양한 사례 값에 대해 시험 통계에 대한 거절 확률을 계산하고 (위험도 = 0,05, 임계 값 1.645 사용) 각 거푸집에 대해 거절 확률을 그립니다. 도와주세요

+0

이 MC 실험에 대해 무엇을 보여 줍니까? – Khashaa

+0

for 루프 대신에'replicate'을 사용하는 것이 더 쉽고 빠릅니다. –

+0

거부 ​​가능성을 계산할 수준을 지정하지 않았으므로 귀하의 질문은 여전히 ​​모호합니다. 하나의 지연으로 시뮬레이션 된 샘플 하나에 대한 계산을 입증하면 도움이됩니다. – Khashaa

답변

1

시뮬레이션의 가능한 목적을 언급하지 않았기 때문에 올바른 방법인지 여부를 알기 어렵습니다.

각 지연에 대해 시뮬레이션을 2000 회 반복하는 대신 (즉, 시뮬레이션 수가 2000 * 50) 각 시뮬레이션 된 샘플에 대해 50 개의 테스트 통계를 계산하여 많은 시간을 절약 할 수 있습니다. 시뮬레이션을하는

훨씬 나아 형식이 모호한 설명을 사용하여 data.frame

result <- lapply(1:nreps, function(i)data.frame(simulation = i, lag = lags, pvalues = sim())) %>% 
rbind_all 

코드를 저장 시뮬레이션 결과에 따라

library(AER) 
library(dplyr) 
lags <- 1:50 
nreps <- 2000 

sim <- function(){ 
    ynew <- arima.sim(model = list(ar=0.7), n=50, mean=0, sd=1) 
    reg <- lm(ynew ~ 1) 
    s <- rep(NA, 50) 
    for(i in lags){  
    ad <- coeftest(reg, alternative="greater", vcov=NeweyWest(reg, lag = i, prewhite=FALSE)) 
    s[i] <- ad[ ,4] 
    } 
    s 
} 

, 난 추정 당신이 원하는 것은

library(ggplot2) 
result %>% 
    group_by(lag) %>% 
    summarize(rejectfreq = mean(pvalues > 0.05)) %>% 
    ggplot(., aes(lag, rejectfreq)) + geom_line()+ 
    coord_cartesian(ylim = c(0,1)) + 
    scale_y_continuous(breaks=seq(0, 1, by=0.1)) 
과 같이 보입니다

enter image description here

비록 100 개의 시뮬레이션만을 사용하여 그림을 만들었지 만, Newey-West의 지연 선택은 방해 항이 i.i.d 인 경우별로 중요하지 않다는 것이 분명합니다.

관련 문제