楼主: llb_321
1483 0

[学习分享] 【独家发布】一种生成多元Laplace分布随机数的方法 [推广有奖]

  • 3关注
  • 49粉丝

教授VIP

已卖:595份资源

学科带头人

9%

还不是VIP/贵宾

-

TA的文库  其他...

LATEX & R 模板和代码

威望
2
论坛币
28191 个
通用积分
1739.6743
学术水平
410 点
热心指数
421 点
信用等级
355 点
经验
2099 点
帖子
1410
精华
1
在线时间
1035 小时
注册时间
2010-6-18
最后登录
2023-8-18

初级热心勋章 初级信用勋章 中级热心勋章 中级信用勋章 初级学术勋章

楼主
llb_321 在职认证  发表于 2022-9-28 23:14:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
之前有坛友问多元Laplace分布随机数的生成方法,查了下R的包,没找到相应的函数。


本帖参考NormalLaplace包rnl()函数代码,提供一种能够生成多元Laplace分布随机数的方法。


请各位专家赐正。


  1. mu <- c(0, 10, 100) #各元均值
  2. Sigma = diag(c(1, 2, 5)) #各元标准差
  3. Alpha <- c(1, 1, 1 / 2) #各元alpha参数
  4. Beta <- c(1, 1, 3 / 2) #各元beta参数
  5. n <- 1000 #样本数

  6. x <- matrix(NA, n, length(mu)) #位置和形状参数调整矩阵
  7. y <- rexp(n, 1)
  8. for (i in 1:length(mu)) {
  9.   probs <- c(1 / Beta[i], 1 / Alpha[i]) / (1 / Beta[i] + 1 / Alpha[i])
  10.   signs <- sample(c(-1, 1), n, replace = TRUE, prob = probs)
  11.   mult <- ifelse(signs < 0, signs / Beta[i], signs / Alpha[i])
  12.   x[, i] <- mult * y
  13. }

  14. z <- matrix(rnorm(n * length(mu)), ncol = n) #标准正态分布随机数
  15. rnlres <- t(mu + t(chol(Sigma ^ 2)) %*% z) + x #多元Laplace分布随机数

  16. hist(rnlres[, 2], probability = T, breaks = 50,
  17.      xlim = c(0, 20), ylim= c(0, 0.2))#第2列的直方图
  18. lines(density(rnlres[, 2]), col = "blue", lwd = 2)#第2列的概率密度曲线
  19. curve(NormalLaplace::dnl(x, param = c(10, 2, 1, 1)),
  20.       col = "red", lwd = 2, add = T)#NormalLaplace包的概率密度曲线
  21. curve(dnorm(x, 10, 2), lwd = 2, add = T)#对比正态分布
复制代码

结果对比:黑色为正态分布,蓝色为所生成的第二列向量的概率密度曲线,红色为应用NormalLaplace包dnl()生成的概率密度曲线。红色和蓝色线基本相符,与正态分布对比也符合Laplace分布的特点。


laplace分布




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Laplace place 随机数 LAC APL laplace

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
dxystata + 100 + 20 + 1 精彩帖子
Sunknownay + 3 + 3 + 3 鼓励积极发帖讨论

总评分: 经验 + 100  论坛币 + 20  学术水平 + 4  热心指数 + 3  信用等级 + 3   查看全部评分

本帖被以下文库推荐

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-16 22:40