LINUX.ORG.RU

Поиск точки изгиба в одномерном массиве

 , , ,


3

1

Есть шумная кривая, описывающая синаптический ток:

http://i.stack.imgur.com/RyH5g.png

В ней три фазы: покой, нарастание и спад. Нужно найти точку начала фазы нарастания (помечена красным). Куда копать? Если бы не шум, это была бы тупо точка отклонения от прямой, а так я в растерянности...


Ответ на: комментарий от emulek

Хотя... Неплохо-бы узнать, ОТКУДА этот шум берётся, его физическую природу?

Шум от одиночных каналов, шум от неидеальной цепи (контакт электрода с мембраной может «подсвистывать»), шум усилителя, цифровой шум АЦП, иногда ЭМ-наводки. Может, ещё что по мелочи.

Axon
() автор топика
Ответ на: комментарий от i-rinat

Ты как всегда эпичен. Брать численно производную от функции с шумом — отличная идея!

я беру не просто производную, а её среднее значение по малому интервалу. К тому же этот шум уже уменьшен в 1000 раз усреднением результатов.

emulek
()
Ответ на: комментарий от emulek

а что за картинка в первом посте? Это усреднённое из 1000?

Да.

Axon
() автор топика
Ответ на: комментарий от Axon

Так это дифференциал, а не производная.

это численная производная. А dx/dy является «обычной» производной в данной точке. Т.е. моя численная стремится к обычной производной когда Δ стремится к нулю. Но это так только если шума нет.

Если шум есть, то численная производная стремится до некоторого значения Δ, а потом обращается в ☣(т.е. не имеет смысла). Нужное значение Δ выбирается эмпирически, и оно зависит от природы шума(не только его амплитуды-частоты, но и от статистических особенностей)

emulek
()
Ответ на: комментарий от Axon

Шум от одиночных каналов, шум от неидеальной цепи (контакт электрода с мембраной может «подсвистывать»), шум усилителя, цифровой шум АЦП, иногда ЭМ-наводки. Может, ещё что по мелочи.

ты меня не понял: шум зависит от фазы синапса(или чего там у вас?)?

Похоже по картинке, что нет. Я угадал?

emulek
()
Ответ на: комментарий от emulek

я беру не просто производную, а её среднее значение по малому интервалу

Сразу видно специалиста по численным методам.

К тому же этот шум уже уменьшен в 1000 раз усреднением результатов.

Невероятно. То есть ты всерьёз считаешь, что шум — это нечто, добавляющееся к всегда неизменной кривой? Невероятно.

i-rinat ☕☕☕☕
()
Ответ на: комментарий от i-rinat

я беру не просто производную, а её среднее значение по малому интервалу

Сразу видно специалиста по численным методам.

сразу видно балобола — всё обосрал, а по делу ни слова.

Невероятно. То есть ты всерьёз считаешь, что шум — это нечто, добавляющееся к всегда неизменной кривой? Невероятно.

демагог как он есть: придумал «всегда неизменную кривую о которой говорил emulek». Теперь будешь доказывать, что её нет?

Да иди ты. Я лучше займусь чем-то полезным. От тебя всё равно не дождёшься ничего умного.

emulek
()

Тебе нужно найти касательную в этой точке, здесь её коэффициент будет изменяться в отрицательную сторону. Тебе нужно интерполировать сигнал, затем разделить его на одинаковые части, и пройтись по ним, ища касательную, если касательная начнет меняться, то это или спад или нарастание сигнала.

menangen
()
Ответ на: комментарий от emulek

Тогда ему надо снимать многаграфиков. Это было бы самое лучшее. А иначе - только гадать приближенно

anonymous
()
Ответ на: комментарий от menangen

Тебе нужно найти касательную в этой точке

Тут выше говорят, что численное дифференцирование шумных кривых не есть гуд.

Axon
() автор топика

возьми некоторые точки из массива, например каждую третью, замути интерполяцию, она наверно не такая шумная будет.

WRG
()

Если кривая одно «состояние» замеренно один раз, то бери маленькие отрезки и считай среднеквадратичное отклонение на нём. Больше какого-то числа - пошел рост. Но это всё фигня, надо намерить много раз

anonymous
()
Ответ на: комментарий от WRG

возьми некоторые точки из массива, например каждую третью, замути интерполяцию, она наверно не такая шумная будет.

Вообще-то, не. Ещё и шум будет низкочастотный, и тогда его от сигнала вообще фиг отличишь.

Axon
() автор топика
Ответ на: комментарий от emulek

Блять, а ты не подумал, что я хотел сказать: «Я полностью согласен с этим господином.» А раз ты так реагируешь, то и пнх

anonymous
()
Ответ на: комментарий от Axon

Одиночные ионные каналы.

блин! Я вообще смутно помню, что такое «синапс». Биологию я знаю на уровне средней школы. Точнее знал 30 лет назад.

emulek
()
Ответ на: комментарий от Axon

Кто все эти люди?

«Метод половинного деления» и «Метод золотого сечения»

Не биофака, наверное.

... ты же знаешь, как делать уколы? Там самый натуральный МПД

comp00
()
Ответ на: комментарий от Axon

численное дифференцирование шумных кривых не есть гуд.

…а ты именно этого и желаешь.

выше говорят

говорят, что в моськве кур доят. А пришли — сисег не нашли.

«изгиб» это и есть изменение первой производной(aka касательной. Но «касательная» плохое слово, ибо для зашумлённой кривой она не имеет смысла. Имеет смысл только численная производная до определённого предела)

emulek
()
Ответ на: комментарий от WRG

возьми некоторые точки из массива, например каждую третью, замути интерполяцию, она наверно не такая шумная будет.

да, но и «изгиб» будет не в том месте.

emulek
()
Ответ на: комментарий от Axon

По факту на записи он не линейный. Есть дендритная фильтрация, есть недокомпенсированные ёмкости, и в итоге райз сглаживается.

Тебе обязательно искать именно точку перегиба? Почему нельзя сфитировать райз прямой и посмотреть где она пересекает ноль. Скажем взять интервал по вертикали 10-90% от максимума где оно точно выше шумов (у тебя ниже) и до того места где уже вершина начинается. Ну да, будет систематическая ошибка, но мне кажется ее можно скомпенсировать амплитудой. В качестве амплитуды можно тупо сумму сигнала взять или значение на вершине, что покатит.

Другой вариант закорячить сплайн с ограничением на горизонтальный участок, тот который весь в шумах. Можно подумать ввести веса как функцию от величины отсчета.

ebantrop
()
Ответ на: комментарий от comp00

«Метод половинного деления» и «Метод золотого сечения»

у нас первое называлось «дихотомия». А не МПД.

Только к чему ты это всё сказал? Покажи, как тут дихотомию применять?

emulek
()
Ответ на: комментарий от comp00

уважаемый, прочитай первый пост: в интересующем ТСа диапазоне его функция строго монотонна.

emulek
()
Ответ на: комментарий от ebantrop

Тебе обязательно искать именно точку перегиба? Почему нельзя сфитировать райз прямой и посмотреть где она пересекает ноль. Скажем взять интервал по вертикали 10-90% от максимума где оно точно выше шумов (у тебя ниже) и до того места где уже вершина начинается.

Тут частота дискритизации не слишком высокая, на весь райз точек пять приходится, из-за этого фиттить тяжело. На низкоамплитудных ответах совсем фигово работает из-за плохого SNR. Можно оверсемплить через интерполяцию, но это очень тяжёлая процедура, и она тоже не всегда помогает.

Другой вариант закорячить сплайн с ограничением на горизонтальный участок, тот который весь в шумах.

Для этого надо знать где кончается горизонтальный участок. ☺

Axon
() автор топика
Ответ на: комментарий от comp00

ищешь экстремум

А нафига мне экстремум?

Axon
() автор топика
Ответ на: комментарий от emulek

а по делу ни слова.

Численная производная от экспериментальных данных — это азы. Человеку с минимальным опытом в области такое бы даже в голову не пришло — о недопустимости такого подхода говорят сразу, когда про обратную задачу рассказывают. Так что по делу тут и говорить не надо. Ты уже всё показал. Просто тебе-то кажется, что ты умные вещи пишешь, но выглядит это как бред. Я просто сказал тебе об этом прямым текстом.

придумал «всегда неизменную кривую о которой говорил emulek»

Я сложил два и два. Из «1000 раз» это следует напрямую.

Я лучше займусь чем-то полезным.

Давно пора. Я с нетерпением жду от тебя чего-то полезного. Дождусь ли?

i-rinat ☕☕☕☕
()
Ответ на: комментарий от i-rinat

Численная производная от экспериментальных данных — это азы. Человеку с минимальным опытом в области такое бы даже в голову не пришло — о недопустимости такого подхода говорят сразу, когда про обратную задачу рассказывают.

А какой взамен предлагают?

Axon
() автор топика
Ответ на: комментарий от i-rinat

Численная производная от экспериментальных данных

ты читать умеешь? Это НЕ экспериментальные данные. А выборка тысячи экспериментов(независимых надо думать).

Человеку с минимальным опытом в области такое бы даже в голову не пришло — о недопустимости такого подхода говорят сразу, когда про обратную задачу рассказывают. Так что по делу тут и говорить не надо. Ты уже всё показал. Просто тебе-то кажется, что ты умные вещи пишешь, но выглядит это как бред. Я просто сказал тебе об этом прямым текстом.

ты перешёл на личности. И всё.

Мы вернёмся к задаче ТСа? да/нет?

Если нет, то пнх. Мне больше нечего тебе сказать.

emulek
()
Ответ на: комментарий от Axon

А какой взамен предлагают?

Аппроксимацию функции чем-нибудь гладким и вычисление производных от неё. Ну и ещё регуляризацию какую-нибудь, чтобы не свалиться в оверфиттинг слишком сложными функциями. IMHO вот этот вариант у тебя просто идеальный получился: http://i.imgur.com/IR34F83.png

i-rinat ☕☕☕☕
()
Ответ на: комментарий от emulek

Это НЕ экспериментальные данные.

Вау, какие новости.

А выборка тысячи экспериментов(независимых надо думать).

Не совсем. Это усреднённый набор индивидуальных событий из одной записи.

Axon
() автор топика
Ответ на: комментарий от Axon

Для этого надо знать где кончается горизонтальный участок.

с аналитической т.з. — нигде. Миллион лет назад УЖЕ началось отклонение.

Но это в теории. На практике плюют на диванных теоретиков, и полагают, что это «прямая». А вот это «уже пошла вниз». А «пошла вниз» эквивалентно «производная меньше нуля».

emulek
()
Ответ на: комментарий от i-rinat

Аппроксимацию функции чем-нибудь гладким и вычисление производных от неё.

Жостко.

IMHO вот этот вариант у тебя просто идеальный получился: http://i.imgur.com/IR34F83.png

А ничего, что там линейную область покорёжило? И положение локального максимума в области точки перегиба зависит от сглаживания?

Axon
() автор топика
Ответ на: комментарий от emulek

с аналитической т.з. — нигде. Миллион лет назад УЖЕ началось отклонение.

Ага. Глутамат в синаптической щели был всегда, лол.

Axon
() автор топика
Ответ на: комментарий от emulek

Это НЕ экспериментальные данные. А выборка тысячи экспериментов

Ты бы поучился читать то, что пишешь. Выборка из экспериментов — не экспериментальные данные? Что за бред.

ты перешёл на личности. И всё.

Понимаешь, очень сложно доказать человеку, что он пишет бред, если он пишет бред на полном серьёзе.

Мы вернёмся к задаче ТСа? да/нет?

ТС опубликовал свои данные. Сделай анализ, покажи класс. Да/нет?

пнх

Ай-яй-яй, как неприлично, Дмитрий.

i-rinat ☕☕☕☕
()
Ответ на: комментарий от Axon

При чём здесь DTW?

мда.... искать некую точку, которая существует только в мыслях наблюдателя, и игнорировать пакет который фитит _уже_ _размеченную_ _наблюдателем_ «загогулину» в новую «загогулину» той же природы....

и при этом спросить такое? я разочарован :(

psv1967
()
Ответ на: комментарий от Axon

А ничего, что там линейную область покорёжило?

Можно не гладким. Можно попробовать в виде кусочно-линейной функции. Но мне кажется, это перебор.

И положение локального максимума в области точки перегиба зависит от сглаживания?

Вот смотрю я на синюю линию и вижу, что скачет она. То есть вроде кажется, что точку перегиба видно точно, но точность меньше, чем кажется. Проводим мысленно сверху и снизу линии «типа погрешности». И вуаля, положение максимума у зелёной линии не такое уж неточное.

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

i-rinat ☕☕☕☕
()
Ответ на: комментарий от Axon

Не совсем. Это усреднённый набор индивидуальных событий из одной записи.

примитивно. такие данные уже позволяют фильтровать в state space без каких либо искажений.

psv1967
()
Ответ на: комментарий от psv1967

Вот что у вас за патологическая неспособность что-либо объяснять без попыток оскорбить собеседника?

Axon
() автор топика
Ответ на: комментарий от i-rinat

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

Вообще, да, но это уже спорт. :-)

Axon
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.