asl / rssa

R package for Singular Spectrum Analysis
55 stars 27 forks source link

What does "tol" in "igapfill" means? #184

Closed furiousbean closed 9 years ago

furiousbean commented 9 years ago

Today I'd tested a new "igapfill" method with default parameters on finite rank series with a gap (but without any noise), and found out that precision of gap filling is about 10^-3, i.e. it reconstructs only 3 digits after zero at gap measurements. Thus, there are few questions:

  1. Is it correct that "tol" parameter means squared distance between reconstructions at last two iterations of algorithm? Then maybe "tol" must mean just a distance? Or it should be clearly mentioned at "igapfill" help page?
  2. Is it enough to have just three significant digits by default?
asl commented 9 years ago

As everywhere - tol is squared distance used for converged by itself. And surely the tolerance for prediction by itself corresponds quite poorly with the true limit.

neg99 commented 9 years ago

Поддерживаю вопросы Никиты. Я не нашла в хелпе информации, что это расстояние в квадрате. Поэтому вопрос Никиты по-существу. (И это не стандартно, по-моему, что не в масштабе рядов.) В статье по iossa, eps это корень из средней суммы квадратов. Саша, у вас в iossa tol=1.e-5 (не 6 и не 3) - что это значит?.

asl commented 9 years ago

У нас с этим разброд и шатание, да. В iossa - это норма. В cadzow - квадрат нормы. igapfill я делал в соответствии с cadzow.

neg99 commented 9 years ago

Думаю, нужно везде сделать норму.
А вот какие значения tol по умолчанию, надо выбрать. 10^-6 или ^-5 везде - чем может быть плохо? Так как есть еще maxiter. это можно ограничить. Сейчас еще в iossa maxiter=100 (логично, так как может быть очень плохая сходимость), в cadzow и igapfill отключено по умолчанию (т.е. нули).

eodus commented 9 years ago

От себя добавлю, что в cadzow/igapfill норма это максимальный квадрат (max(v^2)), а в ossa --- средний (sqrt(mean(v^2))).

@asl, а какой резон в был использовании именно максимума?... Если он есть, надо везде сделать его. Или везде среднее.

asl commented 9 years ago

Я думаю, что с точки зрения сходимости в себе максимум выглядит более адекватной метрикой.

neg99 commented 9 years ago

В iossa есть параметр norm = function(x) sqrt(mean(x^2)). Соответственно, нужно также сделать и в остальных итеративных методах. По умолчанию можно задать и max, не так важно.

asl commented 9 years ago

Fixed in c28d1dc28613eef1b0e703505ecfe5a0ab864f8a