通过R中的卷积添加两个随机变量

2024-03-24

我想计算 R 中两个概率分布的卷积,我需要一些帮助。为了简单起见,假设我有一个变量 x,它呈正态分布,平均值 = 1.0,stdev = 0.5,变量 y 呈对数正态分布,平均值 = 1.5,stdev = 0.75。我想确定 z = x + y。据我所知,z 的分布不是先验已知的。

顺便说一句,我正在使用的现实世界示例需要添加两个根据许多不同分布分布的随机变量。

有谁知道如何通过卷积 x 和 y 的概率密度函数来添加两个随机变量?

我尝试生成 n 个正态分布随机值(使用上述参数)并将它们添加到 n 个对数正态分布随机值。但是,我想知道是否可以使用卷积方法代替。任何帮助将不胜感激。

EDIT

感谢您的回答。我定义了一个 pdf,并尝试进行卷积积分,但 R 抱怨积分步骤。我的pdf文件是Log Pearson 3,如下

dlp3 <- function(x, a, b, g) { 
 p1 <- 1/(x*abs(b) * gamma(a)) 
 p2 <- ((log(x)-g)/b)^(a-1) 
 p3 <- exp(-1* (log(x)-g) / b) 
 d <- p1 * p2 * p3 
 return(d) 
} 

f.m <- function(x) dlp3(x,3.2594,-0.18218,0.53441) 
f.s <- function(x) dlp3(x,9.5645,-0.07676,1.184) 

f.t <- function(z) integrate(function(x,z) f.s(z-x)*f.m(x),-Inf,Inf,z)$value 
f.t <- Vectorize(f.t) 
integrate(f.t, lower = 0, upper = 3.6)

R 在最后一步抱怨,因为 ft 函数是有界的,并且我的积分限制可能不正确。关于如何解决这个问题有什么想法吗?


这是一种方法。

f.X <- function(x) dnorm(x,1,0.5)        # normal (mu=1.5, sigma=0.5)
f.Y <- function(y) dlnorm(y,1.5, 0.75)   # log-normal (mu=1.5, sigma=0.75)
# convolution integral
f.Z <- function(z) integrate(function(x,z) f.Y(z-x)*f.X(x),-Inf,Inf,z)$value
f.Z <- Vectorize(f.Z)                    # need to vectorize the resulting fn.

set.seed(1)                              # for reproducible example
X <- rnorm(1000,1,0.5)
Y <- rlnorm(1000,1.5,0.75)
Z <- X + Y
# compare the methods
hist(Z,freq=F,breaks=50, xlim=c(0,30))
z <- seq(0,50,0.01)
lines(z,f.Z(z),lty=2,col="red")

使用包同样的事情distr.

library(distr)
N <- Norm(mean=1, sd=0.5)          # N is signature for normal dist
L <- Lnorm(meanlog=1.5,sdlog=0.75) # same for log-normal
conv <- convpow(L+N,1)             # object of class AbscontDistribution
f.Z  <- d(conv)                    # distribution function

hist(Z,freq=F,breaks=50, xlim=c(0,30))
z <- seq(0,50,0.01)
lines(z,f.Z(z),lty=2,col="red")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过R中的卷积添加两个随机变量 的相关文章

  • 为什么 rbind 会抛出警告

    这与是否有更优雅的方法将不规则的数据转换为整洁的数据框 https stackoverflow com questions 25102617 are there more elegant ways to transform ragged d
  • R:邻接表到邻接矩阵

    Bonjour 我想将邻接列表 3 列 转换为邻接矩阵 在这个论坛中 我找到了多个有关如何将边列表转换为邻接矩阵的示例 我成功地为两列列表做到了这一点 我已经尝试了在网上可以找到的所有解决方案 但似乎我错过了一小步 我尝试过的 我的变量是用
  • 为 ggplot 定义新的尺度轴变换

    我正在尝试创建一个squared使用 y 轴变换scales trans new但遇到错误 MWE data data frame x 1 10 y runif 10 z rnorm 10 10 library ggplot2 ggplot
  • 使 matplotlib 图形默认看起来像 R?

    Is there a way to make matplotlib behave identically to R or almost like R in terms of plotting defaults For example R t
  • 为格子中的每个面板添加不同的独特标签

    很清楚如何在格子中标记面板 https stackoverflow com questions 8508269 how to label panels in lattice using panel text or ltext论据 但是 如果
  • R igraph - 保存布局?

    我想知道是否可以 保存 igraph 网络的布局 以便其他人能够重现相同的图表 目前 Fruchterman Reingold 算法总是创建一个新的网络 par mfrow c 1 2 g lt erdos renyi game 100 1
  • 用闪亮的 R 设计 DT 中的展开行按钮

    我正在尝试设计 DT 中可用的展开行按钮的样式 样式可用here https datatables net examples api row details html 我用于创建数据表的代码是 library DT datatable cb
  • 粘贴两个 data.table 列

    dt lt data table L 1 5 A letters 7 11 B letters 12 16 L A B 1 1 g l 2 2 h m 3 3 i n 4 4 j o 5 5 k p 现在我想粘贴列 A 和 B 以获得一个新
  • 当我用一个观察值运行回归时,为什么“fastLm()”会返回结果?

    为什么fastLm 当我用一项观察进行回归时返回结果吗 下面为什么不lm and fastLm 结果相等吗 library Rcpp library RcppArmadillo library data table set seed 1 D
  • 如何在折线图中显示 Sep-12 格式的数据并抑制网格线和灰色背景?

    我正在努力使日期格式正确 数据已经是melt 格式 数据中有四个变量碰巧共享相同的数据 我只是想绘制一个简单的四线折线图 每个变量作为一条单独的线 并将 Sep 12 显示为最新数据点 我正在使用旧的 ggplot 请随意 我有两个问题 第
  • R 中的 huxtable 即使有选项也默认为科学记数法(scipen=999)

    我试图生成像样的桌子 并在过去的一周尝试了很多软件包 我的头在游泳 今天早上开始使用 package huxtable 并试图摆脱科学记数法 x lt mtcars 1 5 1 2 x mpg lt x mpg 10000000 get s
  • 使用 lpSolve 优化 R 团队名单

    我是 R 新手 有一个想要解决的特定幻想运动队优化问题 我见过其他帖子使用 lpSolve 来解决类似的问题 但我似乎无法理解代码 下面的示例数据表 每个球员都在一个球队中 扮演着特定的角色 有薪水 并且每场比赛都有平均得分 我需要的限制是
  • R tm 包创建 N 个最常见术语的矩阵

    我有一个termDocumentMatrix使用创建的tmR 中的包 我正在尝试创建一个包含 50 个最常出现的术语的矩阵 数据框 当我尝试转换为矩阵时 出现此错误 gt ap m lt as matrix mydata dtm Error
  • 使用 fread 导入数据后所有列均作为字符

    我导入了一个 CSV 文件 包含文本列和数字列 x lt fread myfile csv header TRUE verbose T na strings c null null 但导入后 当我运行summary x 时 所有列都被视为字
  • R Shiny UI 子选项复选框?

    我有一个基本的 RShiny 应用程序 它有一个反应式复选框 它根据复选框中选择的数据 df 列 绘制时间序列数据 我当前的代码生成一个带有复选框输入的 UI 如下所示 Load R packages library shiny libra
  • 如何在 R 中创建循环来生成随机样本列表?

    我正在尝试创建一个循环来创建一系列包含随机样本的对象 如下所示 sample lt ceiling runif 9 min 0 max 20 这是圆形制服的示例 但它可以替换为普通 泊松或任何您想要的 因此 我构建了一个循环来自动生成各种生
  • 如何使用 R 或 PowerShell 从文本文件中提取数据?

    我有一个包含如下数据的文本文件 This is just text Username SOMETHI C Text Account DFAG Finish time 1 JAN 2011 00 31 58 91 Process ID 202
  • 不理解..密度的行为

    在下面的数据框中 我预计密度的 y 轴值为 0 6 和 0 4 但它们是 1 0 我觉得我使用的方式显然缺少一些非常基本的东西 密度 但是我的大脑冻结了 我将如何使用 密度 获得所需的行为 任何帮助将不胜感激 df lt data fram
  • 获取所有参数作为列表

    R 是否提供对象 函数 方法 关键字来获取所有函数参数 使用一个例子 function a b default 会提供a and b也 在函数环境内 有没有类似的说法list 这还包括a and b在结果中 或者换一种方式 简写list a
  • 确定 R 中的组是否重复某个值

    我有一个包含许多列和行的数据 我想通过创建新的逻辑变量来确定某个组的值是否重复 相同 所以我的数据如下所示 v0 lt c 1 2 3 4 5 6 7 8 9 v1 lt c a b a c e c b b e v2 lt c R NA R

随机推荐

  • 使用winsock2和IOCP替换Delphi TClientSocket?

    有这样的事吗 它需要是异步的 没有 Indy 尝试 HPScktSrvr http www terry net pages php id 220 939383 http www torry net pages php id 220 9393
  • 哪个 Javascript 函数库:Underscore 或 wu.js 或Functional 或...? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何获取模型属性的 id 以与 MVC3 中的自定义 IClientValidatable 一起使用

    我正在尝试编写一个自定义验证属性 该属性将有条件地需要基于模型布尔属性的字段 我的属性实现了 IClientValidatable 我有要检查的属性名称 但我不知道如何获取目标属性的客户端 ID public IEnumerable
  • Automapper - 字典到对象映射不起作用?

    我正在尝试将字典转换为对象 我已经尝试过以下方法 但它不起作用 public class FormField public string FieldName get set public string FieldValue get set
  • 服务器端表使用 JS、Php 或 Ajax 从表(但不是数据库)中删除行

    项目链接 https databasetable net 000webhostapp com https databasetable net 000webhostapp com 以下代码正确删除表中的一行 example on click
  • LoadInst 和 StoreInst 值和地址 LLVM

    我有一个文件 print c 它有两个功能 void printLoad print address and value of memory location from which value printf address value vo
  • Java - SpringMVC - 获取控制器中的参数

    我在将对象保存到数据库中时遇到问题 我有一个与配置文件具有多对一关系的用户 我的 JSP 刚刚添加了一个新用户 因此 JSP 包含字段和具有所需配置文件的组合框 问题是 当我运行程序时 即使我在组合框中选择了一个配置文件 属性 user p
  • Flutter:google_sign_in 插件 MissingPluginException

    我试图让谷歌登录插件正常工作 但没有成功 我已将其放入我的 pubspec yaml 并运行 flutter packages get 但仍然没有运气 抛出以下异常 E flutter 3313 ERROR lib tonic loggin
  • “有一个”和“是一个”是什么意思? [复制]

    这个问题在这里已经有答案了 谁能解释一下两个类之间的 HAS A 和 IS A 是什么意思 举个例子会有帮助 汽车是 车辆 汽车有一个方向盘 Eg class SteeringWheel class Vehicle virtual void
  • 集合中项目的总和

    使用 LINQ to SQL 我有一个包含 OrderDetails 集合的 Order 类 订单详细信息有一个名为 LineTotal 的属性 它获取 Qnty x ItemPrice 我知道如何对数据库进行新的 LINQ 查询来查找订单
  • iOS 内部分发由外部供应商开发的应用程序

    第三方开发了一款供我们企业环境中私人使用的应用程序 现在是时候分发它了 但他们不想向我们发送他们的代码 我感觉这会导致问题 因为分发配置文件和证书必须发送给他们 从而损害我们的私钥 这是我们不允许的 这是正确的吗 或者可以在不泄露我们的私钥
  • 如何从 PowerShell 模块导出变量

    我在a中定义了一个变量psm1文件 但是当我尝试在另一个脚本中访问它时 导入模块后 我没有看到在psm1 file 全局变量 psm1 blah hello world 我的脚本 ps1 Import Module PSScriptRoot
  • Phaser3 场景过渡

    我是新来的Phaser3在开始一个疯狂的项目之前 我想知道我应该如何开始 在场景之间切换 我看到有几个函数 启动 启动 切换 运行 恢复 暂停等 例如 假设我想要 2 个场景 一个菜单和一个游戏 我在菜单上启动 我想进入游戏场景 如果我单击
  • MongoDB 中“id”和“_id”字段的区别

    使用 MongoDB 文档中的字段 ID 或 ID 有什么区别吗 我问这个 因为我通常使用 id 但是我在文档中看到了这种排序 id 1 http www mongodb org display DOCS Optimizing Object
  • 高效的按位运算,用于计数位或查找最右|最左的位

    给定一个 unsigned int 我必须执行以下操作 计算设置为 1 的位数 找到最左边1位的索引 找到最右边1位的索引 操作不应依赖于体系结构 我已经使用按位移位完成了此操作 但我必须迭代几乎所有位 es 32 例如 计算 1 unsi
  • 窗口背景图像的模糊效果

    我有一个以图像为背景的窗口 在那个窗口上我还有按钮和其他控件 这是我对该窗口的风格
  • Angular:使用指令禁用材质按钮不起作用

    我想通过指令禁用一些按钮 向按钮添加禁用属性 该指令适用于经典 html 按钮 但不适用于角形材质设计按钮 mat button https material angular io components button overview im
  • float64 到 float32 的转换给出了意外的结果

    当我转换一个float64数到一个float32我得到一个奇怪的结果 In 22 np float32 20140131 0 Out 22 20140132 0 为什么会发生这种情况 20140131 0 无法表示为 32 位整数 32位浮
  • 如何为 Azure 虚拟机生成磁盘不足警报

    我有一个虚拟机 用作构建服务器 该虚拟机的磁盘经常堆积 并且正在努力解决该问题 同时我正在寻找设置在磁盘空间变高时触发警报的选项 我检查了监控下的可用指标 但只能找到 磁盘写入字节 和 磁盘读取字节 这对我没有帮助 我需要帮助设置发送到我的
  • 通过R中的卷积添加两个随机变量

    我想计算 R 中两个概率分布的卷积 我需要一些帮助 为了简单起见 假设我有一个变量 x 它呈正态分布 平均值 1 0 stdev 0 5 变量 y 呈对数正态分布 平均值 1 5 stdev 0 75 我想确定 z x y 据我所知 z 的