MATLAB — анализ точек изменения или «findchangepts»: как это работает?

#matlab

#matlab

Вопрос:

Я использую функцию findchangepts и использую «линейный», который обнаруживает изменения в среднем и наклоне. Как он отмечает изменения? Выполняется ли это по последовательным точкам, пока следующая точка не будет иметь другое среднее значение и наклон? Mathworks имеет следующее объяснение:

Если x является вектором с N элементами, то findchangepts разбивает x на две области, x (1: ipt-1) и x (ipt: N), которые минимизируют сумму остаточной (квадратичной) ошибки каждой области из ее локального среднего.

Как функция получает ipt? Заранее спасибо! Я работаю с одним вектором с N элементами.

Комментарии:

1. Возьмите ipt = 1 , у вас будет сумма остатков r(1) . Теперь возьмите ipt = 2 , у вас будет сумма остатков r(2) , и так далее, пока r(N) . Где минимум r ? Это значение, которое функция принимает как ipt .

2. Спасибо, Маттео В. Но для того, чтобы он выполнял сумму остатков, не нужна ли оценка для сравнения значения? Это часть моего замешательства, что он считает эмпирической оценкой?

3. Как написано в той части документации, о которой вы сообщили, сумма остатков берется относительно локального среднего значения подмножества. Итак, если мы вернемся к моему простому объяснению, остатки для ipt = i with i = 1,...,N (вероятно) равны чему-то вроде r(i) = sqrt(sum((x(1:ipt) - mean(x(1:ipt)).^2) sum((x(ipt 1:N) - mean(x(ipt 1:N)).^2)); . По крайней мере, это то, что я получаю из документации, я действительно не проверял, как это реализовано в Matlab.