Оптимальное масштабирование наименьших квадратов - PullRequest
1 голос
/ 16 декабря 2009

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

Ответы [ 2 ]

1 голос
/ 16 декабря 2009

Один хитрый способ оценить линейный фактор без необходимости иметь дело со сдвигом фазы - это вычислить отношение оценочных масштабов волн. самый простой способ - использовать стандартное отклонение:

k = std(W1) / std(W2);

если вы заботитесь о надежности, я бы подставил в MAD или IQR; MAD - это среднее абсолютное отклонение, которое вы можете (несколько неэффективно) «встроить» следующим образом:

MAD = @(x)(median(abs(bsxfun(@minus,x,median(x)))));
k = MAD(W1) / MAD(W2);

IQR - это межквартильный диапазон, который требует правильного вычисления квантиля. Вы можете реализовать это неэффективно, используя sort. Я оставляю это как упражнение для читателя.

1 голос
/ 16 декабря 2009

Назовите W1 и W2 двумя векторами. Чтобы это работало, они должны быть векторами столбцов. Переставьте их, если они являются строками, а не столбцами. Тогда, если мы хотим найти значение k такое, что W1 = k * W2, просто используйте обратную косую черту.

k = W2\W1;

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

...