让A是一个正态分布的随机变量,平均值为20.2,标准差为1.1
让B是一个正态分布的随机变量,平均值为12.3,标准差为2.4
让我们假设A和B之间的相关性是0.5
让C = A / B
我想计算C分布的第5个百分位数。
以下是我在R中进行计算的尝试:
require(MASS)
num_of_sim = 10000
mu_a = 20.2
sigma_a = 1.1
mu_b = 12.3
sigma_b = 2.4
corr = 0.5
sigma_matrix = matrix(c(sigma_a, corr, corr, sigma_b), ncol = 2)
correlated_rand_num = mvrnorm(num_of_sim, mu = c(mu_a, mu_b), Sigma = sigma_matrix)
c_vector = correlated_rand_num[,1]/correlated_rand_num[,2]
quantile(c_vector, 0.05)
从上面的代码中可以看到,我使用了蒙特卡洛模拟来估计C的分布。
有没有一种方法可以在R中没有蒙特卡罗模拟的情况下进行计算?
如果没有,是否有更好的方法在R中进行蒙特卡洛模拟?