У меня есть 1D-данные, которые нужно разделить на два.

Так что я использовал

fitgmdist(data,2);

и получил

  1. mu
  2. сигма
  3. пропорция компонента

для каждого гауссовского распределения.

А вот и график. (Серый: данные, синий: psd GMModel из fitgmdist)

До сих пор все было в порядке.

Итак, вопрос.

Как я могу разделить эти два графика распределения Гаусса?

Я пытался

  1. Использование makedist(‘Normal’) для создания каждого распределения Гаусса.
  2. Умножьте на пропорцию каждого компонента
  3. Добавить два дистрибутива вверх

Но почему-то мне не удалось получить такой же график, перекрывающий картинку выше.

Вероятно, у меня неправильное понятие «Нормализация» или «Модель гауссовой смеси».

Буду признателен за любой совет или сайт для поиска.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — @Image Analyst: данные загружены. спасибо за совет, в следующий раз учту :)

ПРИМЕЧАНИЕ. 

Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech ,ME,M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

Вы сделали что-то вроде этого:

x = [randn(4000,1)/2; 5+2*randn(6000,1)];
f = fitgmdist(x,2);
histogram(x,'Normalization','pdf')
xgrid = linspace(-4,12,1001)';
hold on; plot(xgrid,pdf(f,xgrid),'r-'); hold off

Вы можете дублировать значения PDF, выполнив что-то вроде этого:

n1 = makedist('normal',f.mu(1),sqrt(f.Sigma(1)));
n2 = makedist('normal',f.mu(2),sqrt(f.Sigma(2)));
p = f.ComponentProportion;
y = p(1)*pdf(n1,xgrid) + p(2)*pdf(n2,xgrid);
hold on; plot(xgrid,y,'c--'); hold off

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

СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ