R 中的模拟数据集
Simulated dataset in R
我在这里模拟另一个数据集,又卡住了!
这是我想要做的:
200 个观测值,90 个自变量(平均值 0,标准差 1)
创建 y 的方程是:y = 2x_1 + ... + 2x_30 - x_31 - ... - x_60 + 0*x_61 + ... + 0*x_90 + 亩
(换句话说,前 30 个 x 值的系数为 2,接下来的 30 个值的系数为 -1,最后 30 个值的系数为 0)。 mu 也是随机生成的正态变量,均值为 0,标准差为 10。
这是我目前的情况:
set.seed(11)
n <- 200
mu <- rnorm(200,0,10)
p1 <- for(i in 1:200){
rnorm(200,0,1)
}
p2 <- cbind(p1)
p3 <- for(i in 1:90){
if i<=30, y=2x
if i>30 & i<=60, y=-x
if i>60 & i<=90, y=0x
}
我仍在学习 R 的许多方面,所以我很确定代码有很多错误,即使在语法方面也是如此。非常感谢您的帮助!
谢谢!
尝试
library(mvtnorm)
coefs <- rep(c(2, -1, 0), each=30)
mu <- rnorm(200, 0, 10)
m <- rep(0, 90) # mean of independent variables
sig <- diag(90) # cov of indep variables
x <- rmvnorm(200, mean=m, sigma=sig) # generates 200 observations from multivariate normal
y <- x%*%coefs + mu
以防万一,如果你不熟悉线性代数
n <- 200
coefs <- rep(c(2, -1, 0), each=30)
mu <- rnorm(n, 0, 10)
x <- matrix(nrow=n, ncol=90) # initializes the indep.vars
for(i in 1:90){
x[, i] <- rnorm(200, 0, 1)
}
y <- rep(NA, n) # initializes the dependent vars
for(i in 1:n){
y[i] = sum(x[i,]*coefs) + m[i]
}
x[i,]*coefs
正好给出 (2*x_1,..., 2*x_30, -x_31,...,- x_60,0*x_61,...,0*x_90)
因为 *
是逐元素操作。
在实际使用它之前,您最好学习 R
的基础知识。
我在这里模拟另一个数据集,又卡住了!
这是我想要做的:
200 个观测值,90 个自变量(平均值 0,标准差 1)
创建 y 的方程是:y = 2x_1 + ... + 2x_30 - x_31 - ... - x_60 + 0*x_61 + ... + 0*x_90 + 亩 (换句话说,前 30 个 x 值的系数为 2,接下来的 30 个值的系数为 -1,最后 30 个值的系数为 0)。 mu 也是随机生成的正态变量,均值为 0,标准差为 10。
这是我目前的情况:
set.seed(11)
n <- 200
mu <- rnorm(200,0,10)
p1 <- for(i in 1:200){
rnorm(200,0,1)
}
p2 <- cbind(p1)
p3 <- for(i in 1:90){
if i<=30, y=2x
if i>30 & i<=60, y=-x
if i>60 & i<=90, y=0x
}
我仍在学习 R 的许多方面,所以我很确定代码有很多错误,即使在语法方面也是如此。非常感谢您的帮助!
谢谢!
尝试
library(mvtnorm)
coefs <- rep(c(2, -1, 0), each=30)
mu <- rnorm(200, 0, 10)
m <- rep(0, 90) # mean of independent variables
sig <- diag(90) # cov of indep variables
x <- rmvnorm(200, mean=m, sigma=sig) # generates 200 observations from multivariate normal
y <- x%*%coefs + mu
以防万一,如果你不熟悉线性代数
n <- 200
coefs <- rep(c(2, -1, 0), each=30)
mu <- rnorm(n, 0, 10)
x <- matrix(nrow=n, ncol=90) # initializes the indep.vars
for(i in 1:90){
x[, i] <- rnorm(200, 0, 1)
}
y <- rep(NA, n) # initializes the dependent vars
for(i in 1:n){
y[i] = sum(x[i,]*coefs) + m[i]
}
x[i,]*coefs
正好给出 (2*x_1,..., 2*x_30, -x_31,...,- x_60,0*x_61,...,0*x_90)
因为 *
是逐元素操作。
在实际使用它之前,您最好学习 R
的基础知识。