【问题标题】:Simulate data in R from a linear model where the parameters are correlated从参数相关的线性模型模拟 R 中的数据
【发布时间】:2018-04-27 21:35:55
【问题描述】:

我想在 R 中模拟来自跟随模型的数据

Y ~ N(b0 + b1*X, sigma) 

并在R中拟合以下模型

lm(Y ~ 1 + X, data)

R 代码大致如下,

nsims = 1000
X = 1:50 
b0 = rnorm(nsims, 55.63, 31.40)
b1 = rnorm(nsims, 1.04, .39)
sigma = rnorm(nsims, 11.34, 4.11)

问题是我希望 b0b1sigma 相关联。我希望他们有这个进行关联。

R <- matrix(c(1, .16, .54, 
              .16, 1, .13,
              .54, .13, 1),
              nrow = 3)
colnames(R) <- c("b0", "b1", "sigma")

现在考虑到我想要这种关联结构,我上面的rnorm 代码是错误的。如果我的数据不需要这个相关矩阵,我可能会执行以下操作,

 sim_data <- data.frame()
 for(i in 1:nsims){
   Y = b0[i] + b1[i]*X + rnorm(length(X), 0, sigma[i]) 
   data_tmp <- data.frame(Y = Y, X = X, ID = i)
   sim_data <- rbind(sim_data, data_tmp)
 }

但是由于我生成参数的方式,这忽略了我的相关结构。谁能给我一些建议或指示在哪里寻找如何合并相关性?

【问题讨论】:

    标签: r simulation


    【解决方案1】:

    模拟 3 维正态分布并从中获取变量。您可以使用MASS 包进行多变量模拟,使用MBESS 包进行从相关到协方差矩阵的转换,这在mvrnorm 函数中是必需的。

    library(MASS)
    library(MBESS)
    R <- matrix(c(1, .16, .54,
                  .16, 1, .13,
                  .54, .13, 1),
                nrow = 3)
    SD <- c(31.40, .39, 4.11)
    ## convert correlation matrix to covariance matrix
    Cov <- cor2cov(R, SD)
    ### you can also do it algebraically without MBESS package
    ### Cov <- SD %*% t(SD) * R 
    ### where %*% is matrix multiplication and * is normal multiplication
    ### t() is transpose function
    
    # simulate multivariate normal distribution
    mvnorm <- mvrnorm(
      1000,
      mu = c(55.63, 1.04, 11.34),
      Sigma = Cov,
      empirical = T
    )
    # check whether correlation matrix is right
    cor(mvnorm)
         [,1] [,2] [,3]
    [1,] 1.00 0.16 0.54
    [2,] 0.16 1.00 0.13
    [3,] 0.54 0.13 1.00
    # extract variables
    b0 <- mvnorm[, 1]
    b1 <- mvnorm[, 2]
    sigma <- mvnorm[, 3]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-23
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      相关资源
      最近更新 更多