Ограниченное сглаживание в R

Я хочу создать непрерывную кривую на основе некоторых данных, но кривая должна удовлетворять некоторым ограничениям:

  1. Все значения кривой находятся на интервале [0,1]. Значения за пределами этого интервала не поддаются интерпретации.
  2. Я хочу указать точное начальное и конечное значения: f(1) = 1 и f(last) = 0
  3. производная от f(x) всегда отрицательна или равна 0.

Точки данных также следуют этим правилам.

Прямо сейчас я использую smooth.monotone из пакета fda, ​​чтобы подогнать основу bspline, созданную с помощью create.bspline.basis. Это отлично работает для сохранения монотонности между узлами, но результирующая кривая, кажется, рискует быть выше 1 и ниже 0.

Есть ли способ указать точки, через которые должна проходить аппроксимация кривой, или интервал, который кривая не может покинуть?


person heyitsbmo    schedule 10.11.2012    source источник
comment
просто чтобы уточнить, если f(1)=1 и f(last)=0 и f'(x)‹=0, то last›1?   -  person Spacedman    schedule 11.11.2012
comment
Можете ли вы добавить короткие плоские сегменты на концах, например. [1 1] -- [1.001 1] и [последний - .001 0] -- [последний 0] ?   -  person denis    schedule 06.04.2013


Ответы (1)


Преобразуйте свою переменную 0-1 так, чтобы она была асимптотически от -Inf до +Inf, затем выполните неограниченное сглаживание, затем инвертируйте преобразование.

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

person Spacedman    schedule 10.11.2012
comment
Пытливые умы хотят знать: что в этом списке дел? :-) . Между тем, я бы предложил BenMorris, что вы не можете одновременно сглаживать данные и ограничивать их объем. Или вы можете, но вы, вероятно, получите передемпфированный результат и вам это не понравится. - person Carl Witthoft; 11.11.2012
comment
Здесь будет работать простое соединение точек. Это сплайн более гладкий в некотором смысле. Каждая последовательная точка данных (x_i,y_i) -> (x_i+1, y_i+1) определяет углы прямоугольника, в которых линия должна быть ограничена... Не уверен, что это полезно... - person Spacedman; 11.11.2012