0

Я пытаюсь установить сплайн на мои данные, имеющие 5700 выборок данных (с повторяющимися значениями х, то есть х: горизонтальная ось), используя функцию «interp1d» из пакета «scipy» в python. Я попробовал сплайн более низкого порядка (k = 1) и квадратичный сплайн (k = 2), кубический сплайн (k = 3). И я шокирован, когда наблюдаю странный отклик «сплайнов» на мои данные. Хотя сплайн в «k = 1» имеет какой-то смысл, но смехотворно перерабатывает его (квадратичный и кубический сплайн выполняются слишком плохо). В моем первом испытании я использование полиномиального фитинга для соответствия данным и результаты были обнадеживающими. Я ожидал, что сплайн-фитинг даст результаты лучше, чем то, что я получил при полиномиальной установке. This is the result with splines. Пожалуйста, предложите мне, где я ошибаюсь?Привязка сплайна к данным с дублированием x с использованием scipy (Python)

ответ

0

Если набор данных имеет отдельные однозначно оцененные точки для каждого значения X, эффективное взвешивание для каждой точки данных равно 1,0. Если, однако, одна точка данных в этом наборе данных удваивается или копируется, как только одна точка данных имеет эффективный вес 2.0.

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

Если некоторые точки данных в этом наборе данных имеют уникальные значения X, а некоторые появляются более одного раза, один подход заключается в том, чтобы усреднять значения Y для «дублированных» точек данных, чтобы каждая точка снова имела эффективный вес 1.0. Иногда это может работать в конкретном случае, который я описываю.

+0

Спасибо Джеймс, я удалил дубликаты с их средним числом. и теперь сплайн на k = 1 такой же, как k = 2, такой же, как k = 3. Должен ли я ожидать, что производительность «Квадратичного», «Кубического» сплайна лучше, чем «Линейный»? или есть еще одна проблема? –

+0

Я предлагаю несколько простых тестов, которые легко запрограммированы. Извлеките меньший набор данных со значениями для min (x), max (x), mean (x) плюс несколько других точек, которые должны работать как ожидалось. Затем попробуйте набор данных с каждой 100-й точкой данных, затем каждые 10, а затем с каждой другой точкой данных. Анализ заключается в определении влияния количества точек данных на результаты. Это должно занять очень мало времени для выполнения и должно быть информативным. Мое подозрение, глядя на ваш график, заключается в том, что сплайны работают правильно и сглаживают шум в данных. –

Смежные вопросы