Функция smooth.spline в R допускает компромисс между шероховатостью (как определено интегрированным квадратом второй производной) и подгонки точек (как определено суммированием квадратов остатков). Этот компромисс выполняется параметром spar или df. С одной стороны вы получаете линию наименьших квадратов, а другую вы получаете очень кривую кривой, которая пересекает все точки данных (или среднее значение, если вы дублировали значения x с разными значениями y).
Я просмотрел scipy.interpolate.UnivariateSpline и другие варианты сплайнов в Python, однако они кажутся только компромиссом, увеличивая количество узлов и устанавливая порог (называемый s) для разрешенных остатков SS. Напротив, гладкая плоскость в R позволяет иметь узлы во всех значениях x, не обязательно имея кривую, которая поражает все точки - штраф исходит от второй производной.
Есть ли у Python механизм сплайна, который ведет себя таким образом? Разрешить все узлы, но наказывать вторую производную?