2015-04-08 2 views
1

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

В моем случае Один дистрибутив является распределением по рэлеевскому, а другой - врагом .

(вы можете думать Рэлей и райсовский как в гауссовском распределении, так как проблема, которую я пытаюсь состояние будет происходить в гауссовском случае.)

Для генерации два векторов, соответствующий каждый PDF.

Fs=1000; 
x=linspace(0,20,Fs*20) 
Ray=pdf('Rayleigh',x,1); 
Ric=pdf('rician',x,3,1); 

Интуитивно, чтобы найти точку пересечения этих двух pdf.

я установить определенный порог, скажем

epsilon=0.001; 

и пройти через все векторные элементы обоих векторов.

, если разница элементов в двух векторах меньше этого порогового значения, а затем запишите индекс.

, если пересечение происходит вблизи

index=350, 

тогда я могу ожидать, что разница в стоимости этих индексов

347, 348, 349, 350, 351, 352, 353, 

будет меньше эпсилон , то я выбираю медиану, то есть , index = 350, чтобы представить точку пересечения двух распределений.

Теперь проблема в том, что из-за природы этих pdf значение очень близко к нулю в самом начале и в хвосте.

Таким образом, независимо от того, как я выбираю эпсилон, индекс, которые записаны не будет что-то вроде

1,2,347, 348, 349, 350, 351, 352, 353, 6000,6001,6002,6003,6004,6005,6006..... 

Как я могу решить эту проблему? , или есть ли какой-либо надежный способ найти пересечение двух PDF-файлов в Matlab? (Я думаю, что эта функция должна быть весьма фундаментальной.)

ответ

0

Я бы изменить свой подход следующим образом:

  • Используйте соотношение PDF , а не разницу. Таким образом, вы избегаете обнаружения хвостов в дополнение к пересечению.
  • Минимизировать, вместо применения порога.
  • Векторизация: вычислить коэффициенты для всех точек сразу (и затем свернуть).

Другими словами:

[~, index] = min(abs(Ray./Ric-1)); 

В вашем примере, это дает

>> index 
index = 
    2107 

ФПВ как функция от х индекса следующим образом. Найден индекс intesection видно, чтобы быть правильным (чуть выше 2000 из графика):

enter image description here

+0

Спасибо за ответ, должен существовать как минимум для соотношения в точке пересечения, но у меня нет фигуры вне зависимости от того, будет ли он локальным минимумом или глобальным минимумом (он работает надежно, только если ему гарантирован глобальный минимум). С точки зрения невооруженным взглядом кажется, что в хвостах будет еще один минимум. –

+0

Я занимаюсь абс (Ray./Ric-1), кажется, что единственными минимумами являются пересечения (и, конечно же, это глобальные минимумы.) Спасибо. –

+0

@ AllenKuo Да, невооруженным глазом вводит в заблуждение хвосты. Хотя это не видно, один из хвостов во много раз больше другого. В любом случае, вы правы, мой подход работает только в том случае, если существует только один локальный минимум. Если есть несколько локальных минимумов, это будет произвольно производить один из них (что может быть не глобальным минимумом). В этом случае ваш пороговый подход будет лучше –

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