【问题标题】:Simulating realistic noise for a calcium baseline模拟钙基线的真实噪声
【发布时间】:2016-01-25 16:29:51
【问题描述】:

感谢真正令人惊叹的社区,我的项目组离模拟逼真的钙基线噪音更近了一步。

我在数学模型中模拟了典型的钙运动:

感谢社区,我可以在不切实际的基线中添加随机噪音:

但是,噪声动态实际上太快了。有没有办法减慢噪音并产生更宽的噪音峰值而不是这些尖峰。我添加一个实际测量来向您展示我的意思:

如果这个问题太具体了,我很抱歉,并将删除该帖子。

最良好的祝愿,非常感谢!

【问题讨论】:

    标签: r simulation noise


    【解决方案1】:

    请提出您的问题和示例reproducible,以便其他人可以提供帮助。话虽如此,看起来基线只是一个随机的法线——可能是用x <- rnorm(500) 之类的东西创建的。减少这种跳跃的一种方法是计算移动平均线。您可以使用 TTRzoo 之类的包来执行此操作,或者您可以创建自己的函数。例如:

    x <- rnorm(500)
    plot(x, type = "l")
    

    ma <- function(x, n = 5){ filter(x, rep(1/n, n), sides = 2) }
    plot(ma(x), type = "l")
    

    plot(ma(x, 10), type = "l")
    

    【讨论】:

    • 谢谢你,Jason - 结果看起来不错;但是,出于我的目的,我必须为大小为 159,957 的 x 选择一个相当高的 n 值(约 1500)。我选择的 n 越高,数据中的 NA 区域就越大。首先,我认为 n 应该只是 x 的倍数,但在绘制数据时仍然有相当多的未识别 Y 值。有没有办法克服这个问题?
    • 好吧,只是剪掉了 NA 部分 - 感谢所有 :)
    【解决方案2】:

    我现在明白你的意思了。对于这种情况,我有两个建议,也许它们会有所帮助:

    尝试只在基线的一个子集上添加噪音(以下是 10%)

    baseline.index = which(App[,2] == min(App[,2]))
    baseline.index.subset = sample(x = baseline.index, size = 0.1 * length ( baseline.index) , replace = F)
    noise = rnorm( length (baseline.index.subset))
    App[ baseline.index.subset,2] = App[ baseline.index.subset,2] + noise
    

    并尝试使用噪声的均值和标准差。即:

    noise = rnorm( length (baseline.index.subset), mean = 0, sd = 0.1)
    

    如果这有帮助,请告诉我们

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-27
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 2014-06-18
      • 1970-01-01
      相关资源
      最近更新 更多