ns
явно строит естественный кубический сплайн.Вы не можете настроить степень полинома.Чтобы понять почему, вам нужны базовые знания по сплайнам.
Обычно для сплайна степени d
с k
узлами (включая k - 2
внутренние узлы и 2
граничные узлы, там
(d + 1)(k - 1)
кусочно-полиномиальные коэффициенты d(k - 2)
ограничения непрерывности для этих коэффициентов
, следовательно, будет (d + 1)(k - 1) - d(k - 2) = k + d - 1
неограниченные коэффициенты.означает, что
- для линейного сплайна с
d = 1
, k
узлами дают ровно k
свободных коэффициентов; - для квадратичного сплайна с
d = 2
, k
узлы дают ровно k + 1
свободных коэффициентов; - для кубического сплайна с
d = 3
, k
узлами дают ровно k + 2
свободных коэффициентов.
Это стандартные сплайны, которыеВы можете получить из конструктора bs
.
«Естественный» означает дополнительные граничные условия, так что k
узлы дают k
свободных коэффициентов. Очевидно, что линейный сплайн легко «естественен»;квадратичный сплайн nимеет еще одно ограничение;для кубического сплайна требуется еще два ограничения.
Имеет смысл задать естественные условия для кубического сплайна: вторая производная на каждом из 2 граничных узлов равна 0. Однако не очевидно, какое условие (условия)вам нужно для другой степени сплайнов.Следовательно, ns
позволяет вам построить кубический сплайн.
Обратите внимание, что bs
и ns
ожидают, что вы предоставите внутренние узлы только через аргумент knots
.