从密度对象(或更广泛地从一组数字)生成随机数

2024-04-10

假设我有一组数字,我怀疑它们来自同一分布。

set.seed(20130613)
x <- rcauchy(10)

我想要一个从相同的未知分布中随机生成一个数字的函数。我想到的一种方法是创建一个density对象,然后从中获取 CDF,并取随机均匀变量的逆 CDF(参见维基百科) http://en.wikipedia.org/wiki/Inverse_transform_sampling.

den <- density(x)

#' Generate n random numbers from density() object
#' 
#' @param n The total random numbers to generate
#' @param den The density object from which to generate random numbers
rden <- function(n, den)
{
        diffs <- diff(den$x)
        # Making sure we have equal increments
        stopifnot(all(abs(diff(den$x) - mean(diff(den$x))) < 1e-9))
        total <- sum(den$y)
        den$y <- den$y / total
        ydistr <- cumsum(den$y)
        yunif <- runif(n)
        indices <- sapply(yunif, function(y) min(which(ydistr > y)))
        x <- den$x[indices]

        return(x)
}

rden(1, den)
## [1] -0.1854121

我的问题如下:

  1. 是否有更好的(或内置在 R 中)方法从密度对象生成随机数?
  2. 关于如何从一组数字生成随机数还有其他想法吗(除了sample)?

要从密度估计生成数据,您只需随机选择一个原始数据点,并根据密度估计的内核添加随机“错误”部分,对于默认的“高斯”,这仅意味着从原始向量并添加平均值为 0 且标准差等于所用带宽的随机法线:

den <- density(x)

N <- 1000
newx <- sample(x, N, replace=TRUE) + rnorm(N, 0, den$bw)

另一种选择是使用以下公式来拟合密度logspline函数从logspline包(使用不同的方法来估计密度),然后使用rlogspline该包中的函数可根据估计的密度生成新数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从密度对象(或更广泛地从一组数字)生成随机数 的相关文章

  • R:如何找到向量的模式[重复]

    这个问题在这里已经有答案了 下面是我的data frame我想知道每个内存类别 1 到 8 的模式是什么 gt dput d structure list MEMORY1 c 5 5 7 1 5 6 4 5 4 5 5 4 1 5 5 2
  • 在常数空间中创建 1..N 的随机排列

    我正在寻找枚举固定空间中数字 1 N 的随机排列 这意味着我无法将所有数字存储在列表中 原因是 N 可能非常大 超过可用内存 我仍然希望能够一次遍历这样一个数字的排列 只访问每个数字一次 我知道对于某些 N 可以这样做 许多随机数生成器随机
  • 将所有分号替换为空格 pt2

    我尝试对 2000 多行关键字的列表运行文本分析 但它们的列出方式如下 战略 管理风格 组织 所以当我使用 tm 删除标点符号时 它就变成了 组织的战略管理风格 我认为这在某种程度上破坏了我常用术语的分析 我尝试过使用 vector lt
  • 为每个因素级别添加日期时间序列

    我有一个带有因子列的数据框 s lt data frame id 901 910 s id lt as factor s id 我有一个日期时间序列 library lubridate start lt now as difftime 2
  • 在`rmarkdown`中,如何在句子中添加图标?

    In rmarkdown 如何在句子中添加图标 例如如下 如何添加markdown icon单词 Markdown 和 is 之间 有一个很好的 R 包 可以轻松下载 RMarkdown 文档并将图标添加到其中 icons https gi
  • 在 R 中导入 csv 文件时如何保留前导零?

    当我写一个 csv来自 R 的文件 其中我的组名称以前导零值开头 前导零被保留 但是当我导入 csv前导零被删除 组名称被转换为整数 当我导入一个组时 如何保留组名称中的前导零 csvR 中的文件 Example df lt data fr
  • R data.table 多个条件连接

    我设计了一种解决方案 用于从两个单独数据表的多个列中查找值 并添加基于新列的值计算 多个条件比较 代码如下 它涉及在计算两个表中的值时使用 data table 和联接 但是 这些表没有联接在我正在比较的列上 因此我怀疑我可能无法获得 da
  • 如何在R中匹配具有相同主键的两个表中的数据

    我有两个表 其中包含有关人员的数据 df1 lt data frame id c 113 202 377 288 359 name c Alex Silvia Peter Jack Jonny 这为我提供了 id name 1 113 Al
  • RStudio 不会通过 rPython 调用加载所有 Python 模块

    我从 Bash 和 RStudio 中运行相同的脚本时出现一些意外行为 请考虑以下事项 我有一个文件夹 rpython 包含两个脚本 test1 R library rPython setwd rpython python load tes
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • 函数“[<-”将_替换_一个元素,但不会追加_元素_

    我在使用时注意到以下几点 lt 我成功于替换元素但不位于追加向量的一个元素 例子 VarX lt integer VarX 1 lt 11 lt VarX 2 22 VarX 1 11 Expected the value of VarX
  • 通过 r markdown 中的循环创建代码片段

    如同如何使用R中的knitr创建一个包含代码块和文本的循环 https stackoverflow com questions 36373630 how to create a loop that includes both a code
  • 如果条目出现次数少于 x 则删除数据框中的行

    我有以下数据框 称之为 df 它是由三个向量组成的数据框 姓名 年龄 和 邮政编码 df Name Age ZipCode 1 Joe 16 60559 2 Jim 20 60637 3 Bob 64 94127 4 Joe 23 9412
  • 使用 ggplot 构面时增加闪亮的绘图大小

    有没有办法增加绘图窗口的大小shiny取决于在一个中使用的面的数量ggplot图 也许使用垂直滚动 例如 使用下面的示例 当输入为 A 有三个方面 情节看起来不错 当选项 B 选择绘图数量会增加 但绘图窗口保持相同大小 导致绘图太小 是否有
  • R 编程常用工具

    如果已经以不同的方式问过这个问题 我深表歉意 但我找不到任何达到我想要的东西 我真的是从其他软件包 SPSS 开始接触 R 的 当我了解真正可以做什么时 我意识到我还需要其他 工具 这让我想到了我的问题 您有哪些用于开发 R 代码的设置 我
  • 更快的 %in% 运算符

    The 快速匹配 https cran r project org web packages fastmatch index html包实现了更快的版本match对于重复匹配 例如在循环中 set seed 1 library fastma
  • 读取R中打开的Excel文件

    有没有办法将打开的Excel文件读入R 当Excel中打开一个excel文件时 Excel会对文件加锁 比如R中的read方法无法访问该文件 你能绕过这个锁吗 Thanks 编辑 这发生在带有原始 Excel 的 Windows 下 发生错
  • 手动设置scale_fill_distiller()的比例

    我正在尝试制作一系列图表进行比较 举例来说 我想使用iris数据集来制作这样的图 其中我已过滤以仅查看 setosa 物种 library ggplot2 library dplyr iris gt filter Species setos
  • 合并数据框而不重复行

    我想合并两个数据框 但如果有多个匹配项 则不想重复行 相反 我想总结一下那天的观察结果 来自 合并 提取两个数据框中与指定列匹配的行并将其连接在一起 如果有多个匹配项 则所有可能的匹配项各贡献一行 这是一些示例代码 days lt as d
  • 如何从 CouchDB 加载随机文档(高效且公平)?

    我想从存储在 CouchDB 数据库中的一组文档中加载随机文档 单据的取放方式应符合下列要求 效率 文档的查找应该高效 最重要的是加载文档的时间不能随文档总数线性增长 这意味着skip无法使用查询参数 均匀分布 选择应该是真正随机的 尽可能

随机推荐

  • 枚举属性和副作用

    我有一个关于枚举的问题 这可能是一个简单的问题 但是 这是我的程序 public class Hello public enum MyEnum ONE 1 TWO 2 private int value private MyEnum int
  • 尝试选择菜单选项时,CSS悬停下拉菜单消失

    一段时间以来 我一直在寻找代码的修复方法 我有一个下拉菜单 在您将鼠标悬停在静态对象上后显示菜单的内容 但是当您尝试选择其中一个项目 将鼠标移离静态对象 时 项目会消失 设置回显示 无 我的代码如下 HTML div div class m
  • Puppeteer-web:不允许协议错误(目标:getBrowserContexts)

    我有一个 chrome 扩展正在尝试实现 puppeteer web 我已按照以下代码尝试进行设置puppeteer web Puppeteer 不是构造函数 https stackoverflow com questions 530010
  • nginx 和 nodejs 提供动态文件夹中的图像

    你好 我有这个 nginx 设置 server listen 80 server name xxxxxx xx www xxxxxxx xx root home xxxx public html location proxy pass ht
  • 是否可以从文件开头删除字节?

    我知道我可以有效地截断文件并从文件末尾删除字节 是否有相应的有效方法通过删除从文件开头到文件中间某个点的内容来截断文件 当我阅读您要求从文件开头开始删除文件内容的问题时 换句话说 您希望删除文件开头的内容并将剩余内容下移 这不可能 您只能从
  • Google 地图 API (9757):授权失败

    安卓工作室3 1 3安卓6 0摇篮4 4 我想要获取新的 Google 地图 api 密钥 所以这是我的步骤 在 Android Studio 中的 Android 项目中 我打开文件 googel maps api xml 将下一个网址复
  • 如何使用 boost::split 分割字符串并保留分隔符?

    我有一个像这样的字符串 std string input I am going to learn how to use boost library 我这样做 std vector
  • 如何在 ORC 分区 Hive 表的中间添加一列,并且仍然能够使用新结构查询旧分区文件

    目前 我在 Prod 中有一个分区 ORC 托管 错误地创建为内部优先 Hive 表 其中至少有 100 天的数据 按年 月 日 约 16GB 数据 分区 这个表大约有160列 现在我的要求是在这个表的中间添加一列 并且仍然能够查询旧数据
  • 如何在Python 3中用前导零填充字符串[重复]

    这个问题在这里已经有答案了 我正在努力使length 001在Python 3中 但每当我尝试打印它时 它都会截断不带前导零的值 length 1 我该如何阻止这种情况发生而不需要施放length在打印之前将其转换为字符串 利用zfill
  • 在 Android 10 的深色模式设备上进行测试时,文本颜色被覆盖为白色

    在以下 React Native 0 63 3 应用中 模拟器上的文本颜色按预期为黑色 但在 Android 10 的深色模式设备上进行测试时 文本颜色被覆盖为白色 import React from react import View T
  • 使用假网络摄像头和真实微型运行 Chromium

    我可以使用以下命令运行带有假网络摄像头的 Google Chrome google chrome stable use fake device for media stream use file for fake video capture
  • 管道末端重定向(C shell)

    我正在努力使ls tr a b gt text txt我已经完成管道 但无法将 STDOUT 添加到管道的末尾 在我的情况下 STDOUT 只能在最后一个参数中 我标记了应该进行重定向的代码部分 我认为应该打开该文件 并且dup2使用的方法
  • 如何将sbt项目导入到Eclipse中?

    我想将我的 sbt 项目导入 Eclipse 在网上搜索时 我了解到 Eclipse 有一个 sbteclipse 插件可以导入 sbt 项目 但我不知道该怎么做 我在 Ubuntu 12 04 LTS 上使用 Eclipse Kelper
  • Mysql Codeigniter Active Record - 如何执行 where_in 查询并返回正确的结果顺序?

    我有一组按特定顺序传递的 ID 需要保留 我正在从几个左连接查询与每个 ID 相关的数据 ID 是从搜索中返回的 因此必须保持顺序以使结果有效 否则搜索变得毫无意义 我的代码看起来像这样 this gt db gt where in id
  • 关于 ExpandableListView ChildView 的 Button ClickListener 的问题

    我正在尝试为我的餐厅制作一个应用程序 这是我之前遇到的问题 并且已解决 但是 您会在 ChildView 中注意到一些按钮 即 添加 就像这样对于我之前的查询here https stackoverflow com questions 63
  • 禁用与原型观察方法的链接

    我想创建一个像这样的链接 a href http example com text a 并替换行为 以便链接在单击时使用 Ajax 下载内容 对我来说重要的是不要替换 href 属性 因此复制链接仍然有效 一种解决方案是 link oncl
  • 实体框架6错误无法加载指定的元数据资源

    我在解决方案中使用实体框架 6 和 模型优先 我将 数据模型 类分离到另一个项目中 以便我可以添加对 数据模型 类的引用 而无需公开我的 数据模型上下文 和连接 我不想将我的实体数据模型项目 尤其是数据库上下文等 暴露给我的 UI 层 我有
  • 图像绘制速度

    我正在开发一款游戏 但目前我正在运行基准测试 如果有人能在这件事上帮助我 我将不胜感激 我正在做的是 当我单击开始按钮时 使用以下代码在面板上触发绘制事件 private void startToolStripMenuItem Click
  • 共享 ViewModel 以帮助片段和父 Activity 之间的通信

    虽然 JetPack 的导航组件看起来很有前途 但我却找不到实现我想要的东西的方法 让我们看一下示例应用程序屏幕 该应用程序有一个主要活动 一个顶部工具栏 一个带有 fab 的底部工具栏 我面临着两个挑战 我想以正确的方式解决它们 1 我需
  • 从密度对象(或更广泛地从一组数字)生成随机数

    假设我有一组数字 我怀疑它们来自同一分布 set seed 20130613 x lt rcauchy 10 我想要一个从相同的未知分布中随机生成一个数字的函数 我想到的一种方法是创建一个density对象 然后从中获取 CDF 并取随机均