我试图模拟来自rho=0.7的AR(1)模型的数据(Y)。然后我将使用这些数据在截距上运行Y的回归(通过这样做,参数估计成为Y的平均值),然后使用鲁棒的标准错误。我想对这个假设运行一个蒙特卡罗模拟,使用2000次重复不同的滞后值。目的是显示当滞后变化时Newey West估计器的有限样本性能
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测试中的不同滞后值。我想运行测试每次增加1的滞后,因此我将这样做50次滞后1,2,3,4......,50,每次将2000个模拟测试统计信息存储在不同名称的向量中(sig. level=0,05,使用1.645的临界值),并根据各种滞后值绘制它们(拒绝概率)。请帮帮忙
因为你没有提到模拟的可能目的,所以很难说这是不是正确的方式。
通过为每个模拟样本计算50个测试统计信息,而不是为每个延迟重复模拟2000次(即模拟次数为2000*50),可以节省大量时间。
做模拟的更好的格式是
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
}
以下代码将模拟结果存储在数据中。框架
result <- lapply(1:nreps, function(i)data.frame(simulation = i, lag = lags, pvalues = sim())) %>%
rbind_all
根据你模糊的描述,我推断出你想要的是什么样子
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))
虽然该图仅使用100次模拟创建,但很明显,当扰动项被确认时,Newey-West中滞后的选择并不重要。
我正在写一个蒙特卡罗模拟来检查有多少次y不是紧挨着另一个y。我变出了一个40 x和10 y的向量,放置在向量中的随机位置。我的目标是计算向量中没有任何相邻y的概率。以下是我尝试过的: 结果是一个非常小的数字,这对我来说似乎没有意义。
下面是我想用R做的算法: 从模型到功能 将序列分为可能的子序列,包括,,,,,,,和 对于每个尺寸,对具有替换的块进行重采样,对于新系列,通过函数 为每个块大小的每个子系列获取 下面的函数可以完成此操作。 调用函数 我得到以下结果: 我想按时间顺序重复上面的到,然后我想到了中的技术。因此,我加载它的包并运行以下函数: 希望在表格中得到如下结果: 但我收到以下错误信息: MonteCarlo错误(f
从名字我们可以看出,MCMC由两个MC组成,即蒙特卡罗方法(Monte Carlo Simulation,简称MC)和马尔科夫链(Markov Chain ,也简称MC)。要弄懂MCMC的原理我们首先得搞清楚蒙特卡罗方法和马尔科夫链的原理。我们将用三篇来完整学习MCMC。在本篇,我们关注于蒙特卡罗方法。 2. 蒙特卡罗方法引入 蒙特卡罗原来是一个赌场的名称,用它作为名字大概是因为蒙特卡罗方法是一种
我有以下型号 在此处输入图像描述 我需要使用蒙特卡洛实验并获得统计数据。一个例子应该是。 在此处输入图像描述 但在运行时,图形上不会显示任何内容。如何将此统计数据链接到模型?
利用伪随机数生成器(PRNG)对排队型系统进行蒙特卡罗模拟。我使用System.random,因为它速度快,但发现它在后续的绘制之间有某种怪异的相关性,干扰了结果(不够随机)。 现在我使用的是Mersenne Twister(http://takel.jp/mt/mersennetwister.cs),它(到目前为止)已经证明对我的目的来说是足够随机的。它慢了50%,但那是我愿意付出的代价,以得到
问题内容: 我已经为“ 2d有效ising模型”编写了蒙特卡洛模拟,并且试图改善运行时间。 我的代码做什么:我为每个粒子(rgrid和mgrid)创建一个用于粒子数量(r)的矩阵和一个用于磁化强度的矩阵。粒子的自旋可以是-1/1,因此磁化强度范围为[-r,r],步长为2。 然后选择一个随机点和一个随机粒子(+1或-1)。由于概率取决于每个位置的正/负粒子数量,因此我创建了2个数组并将其压缩,这样我