2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Ошибки квантования
Сообщение26.11.2013, 00:40 
Здравствуйте.

Прошу помощи в решении следующей задачи (если решение существует):

Есть массив цен. Для первого простого варианта предположим что они представляют собой броуновское движение (сумма независимых нормально распределенных величин со средним 0 и ско=1)

Дальше мы делаем квантование по цене (округляем до ближайшего целого)
Вот немного кода на R:
Код:
> x = cumsum(rnorm(1000000))             # моделируем 1 млн. цен
> plot.ts(x)                             # нарисуем график
> sd(diff(x))                            # оценим ско
[1] 0.9985503
> x_round = round(x, 0)                  # округляем цены до ближайшего целого (0 знаков после комы)
> sd(diff(x_round))                      # оценим ско
[1] 1.0789
> xq = x_round[c(T, diff(X_round)!=0)]   # удаляем идущие подряд одинаковые значения
> length(xq)                             # размер массива после удаления
[1] 630838
> sd(diff(xq))                           # оценим ско
[1] 1.358383

Задача состоит в том как по имеющимся уже квантованным ценам (xq), их дисперсии/ско и величине q(интервал квантования) оценить дисперсию/ско оригинального ряда.

https://ccrma.stanford.edu/~jos/mdft/Round_Off_Error_Variance.html - здесь есть формула вычисления дисперсии ошибки квантования:
$var = q^2/12$

проверим распределение ошибок:
Код:
> hist(x_round - x)

Изображение


как видно распределение равномерное.
Вычислим дисперсию и ско для этого случая:
Код:
> q = 1
> var = q^2 / 12
> var
[1] 0.08333333
> cko = sqrt(var)
> cko
[1] 0.2886751

Оценочное ско равно:
Код:
> sd(x_round - x)
[1] 0.2888048

практически совпадают. а вот как вычислить ско начального ряда никак не пойму. есть идеи?
Заранее спасибо за любую информацию.

 
 
 [ 1 сообщение ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group