У меня есть сигнал по оси Y (отклонение от курса) и сигнал времени по оси X (время). Я попытался найти доверительный интервал этого сигнала. Но я не могу построить среднее значение сигнала. Я думаю, потому что среднее значение имеет 2 вектора, а размер сигнала - 5001. Как я могу это решить? Я благодарен за ответы!
N = size(yawrate,1); % Number of ‘Experiments’ In Data Set
yMean = mean(yawrate); % Mean Of All Experiments At Each Value Of ‘time’`
ySEM = std(yawrate)/sqrt(N); % Compute ‘Standard Error Of The Mean’ Of All Experiments At Each Value Of ‘time’
CI95 = tinv([0.025 0.975], N-1); % t-score Calculate 95% Probability Intervals Of t-Distribution
yCI95 = bsxfun(@times, ySEM, CI95(:)); % Calculate 95% Confidence Intervals Of All Experiments At Each Value Of ‘x’
figure
plot(time, yMean) % Plot Mean Of All Experiments
hold on
plot(time, yCI95+yMean) % Plot 95% Confidence Intervals Of All Experiments
hold off
grid
Большое спасибо за ваш ответ. Размер рысканья и времени - 5001. Я имею в виду размер среднего значения, показывающего 1 1.
Код написан для yawrate
, которая представляет собой матрицу NxM
, с временными шагами M
и экспериментами с N
. В этом случае mean(yawrate)
представляет собой вектор со значениями M
. time
также должен иметь значения M
. Если ваш N
равен 1, этот код бесполезен.
нет, у меня N 5001.
Нет, ваш M
- 5001, ваш N
- 1.
Спасибо, Крис, ты прав. Собственно это мой вопрос. Как мне построить верхнюю и нижнюю границы моего сигнала в соответствии с доверительным интервалом?
Если у вас есть только один сигнал, вы не можете вычислить доверительный интервал. Если вы знаете что-то о том, как был измерен / получен сигнал, вы можете оценить доверительный интервал, но это не вычислительная вещь и требует хорошего понимания физики, лежащей в основе измеряемого процесса, и измерительного оборудования. Самый простой - просто измерить ваш сигнал несколько раз и передать набор сигналов через код, который у вас здесь.
Я бы прокомментировал, но у меня недостаточно репутации. Поскольку я отвечая, я также буду использовать то, что уже есть в комментариях. Вопрос немного неясен относительно вещей, уже отмеченных в комментариях: size(yawrate)
- это [1,N]
или [N,M]
для некоторых M? Те же вопросы для time
. Если я правильно понял из вашего ответа на этот вопрос и из вашего кода, вы предполагаете, что yawrate
- это NxM
, а yMean
- это размер 1xM
. в этом случае вам также понадобится время, чтобы стать 1xM
. Это то, что написал Крис Луенго.
Кроме того, yCI95+yMean
будет означать добавление вектора 2x1
, содержащего доверительный интервал, к значениям 1xM
o yMean
. Это даст вам массив 2xM
. Это не работает в каждой версии Matlab, и я думаю, что для этого требуется, чтобы первая была 2x1
, а не 1x2
, поэтому вам может потребоваться
plot(time, yCI95(1)+yMean)
plot(time, yCI95(2)+yMean)
опять же, если я понимаю ваш код. Проверьте предполагаемые размеры, которые вы делаете.
Спасибо, Маркос. На самом деле я спрашиваю, о чем вы меня просите :) Я не понимаю доверительный интервал. У меня есть сигнал и график сигнала, как на этой фотографии. Размер (скорость рыскания) и размер (время) равны [5001 1], но среднее значение - это число и размер [1 1]. Если я рисую (время, среднее), это, безусловно, линия. Как в этой ситуации построить график верхней и нижней границ доверительного интервала? В том-то и дело, я этого не понимаю.
yMean кажется единственным значением, поэтому при его построении вы получите точку для каждого временного значения. В случае, если время выборки слишком велико, вы можете увеличить видимость ваших линий, используя t = 0: 0,01: время (конец) в функции построения графика, а не время.
Какие размеры у
yawrate
иtime
? Что означает «среднее значение имеет 2 вектора»?