从伯努利分布生成协变量,在R中具有特定的相关结构

时间:2015-05-14 06:11:28

标签: r

我正在尝试使用R重现一篇文章的模拟结果,而我一开始就陷入困境。我应该生成大约10个协变量,都遵循bernoulli分布,它们通过回归结构进行关联:p(X_j=1|X_j-1)=0.1+0.1(X_j-1 - 0.15), j=1,...,10n=100个人和X1~Binomial(1,0.5)。我认为它应该很容易,但我想我错过了一些东西,不知道如何继续。任何建议或想法(甚至清除他们想说的内容)都会非常有用!

1 个答案:

答案 0 :(得分:1)

像这样的递归定义很混乱。你可以使用循环

draw <- function() {
    N<-10
    x <- numeric(N)
    x[1] <- runif(1) < .5
    for(i in 2:N) {
        x[i] <- runif(1) < 0.1+0.1*(x[i] - 0.15)
    }
}
draw()

或减少功能

Reduce(function(xjm1,x) {
    as.numeric(runif(1) < .1+.1*(xjm1-0.15)) }, 
    rep(0,9), init=runif(1)>.5, accumulate=T)

如果您需要生成一堆这些值并计算相关性,则可以执行

xx <- replicate(100, draw())
cor(t(xx))