2015-10-26 9 views
0

благодаря поистине удивительному сообществу моя группа проектов на один шаг ближе, чтобы имитировать реалистичный базовый уровень кальция.Имитация реалистичного шума для базовой линии кальция

Я моделируется типичное движение кальция в математической модели: enter image description here

Благодаря сообществу я мог бы добавить случайный шум к нереалистичным базовой линии:

enter image description here

Однако шум динамика на самом деле слишком быстро. Есть ли способ замедлить шум и создать более широкие пики шума вместо этих шипов. Добавить фактическое измерение, чтобы показать вам, что я имею в виду:

Если этот вопрос слишком специфичен, я извиняюсь, и удалю этот пост.

С наилучшими пожеланиями и за это!

ответ

2

Пожалуйста, задайте свой вопрос и примеры reproducible, чтобы другие могли помочь. Это, как говорится, похоже, что базовая линия - это просто случайная нормальная ситуация, вероятно, созданная с чем-то вроде x <- rnorm(500). Один из способов сделать это менее оживленным - рассчитать скользящую среднюю. Вы можете использовать пакет, например TTR или zoo, или можете создать свою собственную функцию. Например:

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

enter image description here

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

enter image description here

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

enter image description here

+0

Спасибо, Джейсон - результат выглядит хорошо; однако для моей цели мне пришлось бы выбрать довольно высокую n-ценность (около 1500) для x размером 159,957. Чем выше я иду с n, тем больше в NA есть область NA. Сначала я думал, что n должно быть просто кратным x, но при построении данных все еще существует довольно неопределенное значение Y. Есть ли способ преодолеть это? – Arne

+0

в порядке, просто обрезанный NA-частью - спасибо всем :) – Arne

1

Я вижу вашу точку в настоящее время. У меня есть два предложения для этого случая, может быть, они будут полезны:

Попробуйте добавить шум только подмножество базовой линии (Далее следует 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) 

Дайте нам знать, если это помогает