Как найти сходство между двумя кривыми и оценка сходства?
У меня есть два набора данных (т, у1) и (т, у2). Эти наборы данных визуально выглядят одинаково, но их задержка по времени или сдвиг величины. Я хочу найти сходство между двумя кривыми (давая оценку сходства 1 для приблизительно одинаковых кривых и 0 для не похожих кривых). Некоторые кривые кажутся различными из-за колебаний в данных. Итак, я ищу метод, чтобы найти сходство между кривыми. я уже попробовал команду градиента в Matlab, чтобы найти наклон кривой на каждом временном шаге и сравнил ее. но это не дает мне удовлетворительных результатов. пожалуйста, кто-нибудь предложить мне метод, чтобы найти сходство между кривыми.
Заранее спасибо
4 ответа
Для измерения сходства данных временных рядов одним из традиционных решений является DTW (динамическое искажение времени)
Этот ответ предполагает, что ваши y1 и y2 являются сигналами, а не кривыми. Последнее я бы попытался параметризировать с ПОЛИФИТ.
Если они действительно выглядят одинаково, но смещены во времени (и не смещены), то вы можете:
y1n=y1/norm(y1);
y2n=y2/norm(y2);
normratio=norm(y1)/norm(y2);
c=conv2(y1n,y2n,'same');
[val ind]=max(c);
ind будет указывать временное смещение, а норма - разницу в величине. Оба могут быть использованы как функции для вашего показателя сходства. Я полагаю, однако, что ваши сигналы на самом деле меняются не только по временному сдвигу или величине, и в этом случае лучше выбрать какой-либо тип параметризации сигнала, а затем построить метрику по этим параметрам.
Не зная ничего о ваших данных, я сначала попробовал бы с AR (предполагая, что такие типичные вещи, как FFT или PRINCOMP не будут работать).
- Колмонгров Смирнов Тест (
kstest2
функция в Matlab) - Тест хи-квадрат
- для измерения сходства существует мера, называемая MIC: максимальный информационный коэффициент. Он количественно определяет информацию, разделяемую между двумя данными или кривыми.
Расстояние dv и dc в следующей статье может решить вашу проблему. http://bioinformatics.oxfordjournals.org/content/27/22/3135.full