【问题标题】:Simulation to find random sequences模拟寻找随机序列
【发布时间】:2021-12-31 10:59:46
【问题描述】:

使用 R,我可以尝试找出下面的年龄向量是随机抽样产生的概率。我使用了运行测试(来自 randtests 包),结果 p 值 = 0.2892。其他同事使用 rle 函数(R 中的运行长度编码)或其他人来模拟随机分配的概率是否生成观察到的序列。他们的结果表明 p

更新:我收到了统计学家的建议,我可以使用非参数引导程序来做到这一点。但是,我仍然不知道如何做到这一点。感谢您的帮助。

示例:

Age <-c(68,71,72,69,80,78,80,81,84,82,67,73,65,68,66,70,69,72,74,73,68,75,70,72,75,73,69,75,74,79,80,78,80,81,79,82,69,73,67,66,70,72,69,72,75,80,68,69,71,77,70,73)                                                  ;
randtests::runs.test(Age);
X <- rle(Age);X$lengths

【问题讨论】:

  • p &lt; 0.00000001 对于这么小的样本来说似乎很荒谬。无论如何 - p 值与某些假设相关。在不确切知道他们的假设是什么的情况下,很难复制他们的 p 值。也许您可以请您的同事澄清他们是如何计算 p 值的。这比在互联网上随机询问不了解上下文的陌生人更有意义。
  • 他们的假设是这个数据序列不是随机分布或偶然的结果。他们将此序列与他们通过模拟生成的预期随机序列进行比较,以得出上述非随机概率。我需要自己复制它,但不知道代码。非常感谢任何帮助。
  • 随机抽样什么?这些数字看起来不像是 65 到 84 范围内整数的随机抽样。似乎缺少一些上下文。无论如何,做出统计声明的人有责任清楚地说明该声明是什么,并为其他人提供足够的信息来复制他们的结果。如果你试图猜测同事的结论背后的原因,那么他们在成为优秀沟通者的任务中失败了。为什么不让他们澄清一下?
  • 他们说他们使用重采样来将提到的序列与模拟创建的预期随机序列进行比较。在他们的论文中,他们没有提供代码或任何其他要点,除了我从他们的论文中复制的文本“我还使用重采样来计算列中相同值的运行概率”。他们没有直接回答那些问他们的人。唯一的选择是寻求 R 专家的帮助来尝试猜测代码。
  • 如果这来自已发表的论文,也许您可​​以编辑问题以包含引文。

标签: r statistical-test


【解决方案1】:

最初呈现的并不是故事的全部。如果查看这些数字来自的补充资料,则报告的 p 值用于比较两个向量。 OP 只提供一个,因此任务定义不明确。

研究文章的完整断言是

group1 <- c(68,71,72,69,80,78,80,81,84,82,67,73,65,68,66,70,69,72,74,73,68,75,70,72,75,73)
group2 <- c(69,75,74,79,80,78,80,81,79,82,69,73,67,66,70,72,69,72,75,80,68,69,71,77,70,73)

作为两个独立的随机样本,p 值

即使使用组内的排列来检查位置(原始条目中的 10 个条目)的身份,我也看到每百万中只有 2 或 3 个具有相似数量的相同值的抽奖。即,类似:

set.seed(123)
mean(replicate(1e6, sum(sample(group1, length(group1)) == group2)) >= 10)
# 2e-06

测试相关性和/或自举很容易在报告的 p 值范围内(在 1 亿次模拟中没有那么极端)。

【讨论】:

  • 梅尔夫,非常感谢。我相信这两组没有相互比较。他们使用带有重采样和替换的非参数引导来生成相同长度的预期随机变量。然后他们将使用 rle 函数的现有变量的游程编码与生成的变量的游程编码进行比较,以确定重采样生成的序列与现有变量的随机性概率。如果您能帮我解决这个问题,我将不胜感激。
  • 我使用了一组来缩短代码,但是这两组合并为一个变量,用于重采样和比较。 group1
猜你喜欢
  • 2013-08-13
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
  • 2017-07-19
  • 1970-01-01
相关资源
最近更新 更多