相关分类和连续数据的模拟

Simulation of correlated categorical and continuous data

我想模拟相关的分类数据和连续数据。如何在 R 中实现?

#For example, how to simulate the data in a way that these two variable are correlated?
x <- sample( LETTERS[1:4], 1000, replace=TRUE, prob=c(0.1, 0.2, 0.65, 0.05) ) #Categorical variable
y <- runif(1000,1,5) #Continuous variable

任何想法将不胜感激!

这是否为您提供了您正在寻找的东西? 您可以更改 sd 值以修改相关量。

k <- 1:4
n <- 1000
x <- sample( LETTERS[k], n, replace=TRUE, prob=c(0.1, 0.2, 0.65, 0.05) ) 
y <- as.vector(sapply(k,function(x) rnorm(round(n/length(k)),mean=x,sd=2)))

这是一个使用联结函数的方法。使用较大的 alpha 值以获得更高的相关性。

library(copula)
n <- 1000
alpha <- 5
u <- rCopula(n, claytonCopula(alpha))
u1 <- u[,1]
u2 <- u[,2]
x <- ifelse(u1 < 0.1, "A", 
     ifelse(u1 < 0.3, "B", 
     ifelse(u1 < 0.95, "C", "D")))
y <- qunif(u2, 1, 5)
plot(factor(x), y)

plot(factor(x))

plot(density(y))

reprex package (v0.3.0)

创建于 2021-02-21