Как сравнить различные средства распределения с эталонным значением истинности в Matlab?

У меня есть значения производства (q) из 4 разных методов, хранящихся в 4 матрицах. Каждая из 4 матриц содержит значения q из другого метода, например:

Matrix_1 = 1 row x 20 column 

Matrix_2 = 100 rows x 20 columns 

Matrix_3 = 100 rows x 20 columns 

Matrix_4 = 100 rows x 20 columns 

Количество столбцов указывает количество лет. 1 строка будет содержать значения производства, соответствующие 20 годам. Остальные 99 строк для матриц 2, 3 и 4 — это просто разные реализации (или запуски моделирования). Таким образом, в основном остальные 99 строк для матриц 2,3 и 4 являются повторяющимися случаями (но не с точными значениями из-за случайных чисел).

Считайте Matrix_1 эталонной истиной (или базовым случаем). Теперь я хочу сравнить остальные 3 матрицы с Matrix_1, чтобы увидеть, какая из этих трех матриц (каждая со 100 повторениями) лучше всего сравнивается или точно имитирует Matrix_1.

Как это можно сделать в Матлабе?

Я знаю, вручную, что мы используем доверительный интервал (ДИ), строя график mean of Matrix_1 и рисуя каждое распределение mean of Matrix_2, mean of Matrix_3 и mean of Matrix_4. Ответом будет наибольший КИ среди матриц 2, 3 и 4, содержащий эталонную истину (или mean of Matrix_1).

mean of Matrix_1 = (1 row x 1 column)

mean of Matrix_2 = (100 rows x 1 column)

mean of Matrix_3 = (100 rows x 1 column)

mean of Matrix_4 = (100 rows x 1 column)

Я надеюсь, что вопрос ясен и актуален для SO. В противном случае, пожалуйста, не стесняйтесь редактировать/предлагать что-либо в вопросе. Спасибо!

EDIT: Мои три метода, о которых я говорил, это a1, a2 и a3 соответственно. Вот мой результат:

ci_a1 =

  1.0e+008 *

   4.084733001497999
   4.097677503988565

ci_a2 =

  1.0e+008 *

   5.424396063219890
   5.586301025525149

ci_a3 =

  1.0e+008 *

   2.429145282593182
   2.838897116739112

p_a1 =

    8.094614835195452e-130

p_a2 =

    2.824626709966993e-072

p_a3 =

    3.054667629953656e-012

h_a1 = 1; h_a2 = 1;  h_a3 = 1

Ни один из моих ЭК из трех методов не включает в себя mean ( = 3.454992884900722e+008). Итак, мы все еще учитываем значение p для выбора наилучшего результата?


person Community    schedule 17.09.2010    source источник
comment
Не по теме: я увидел ваш закрытый вопрос и заметил, что вы хотите использовать геостатистику. Если вы хотите сделать это, перейдите на R вместо того, чтобы строго придерживаться Matlab или Python. R сделан для этой цели и имеет целый список пакетов специально для геостатистического анализа. Например, он также может общаться с GRASS.   -  person Joris Meys    schedule 28.09.2010
comment
@Joris: На самом деле для моей работы по геостатистике я использую SGEMS, однако для написания кода я использую Matlab. В основном я хотел знать, какой из Matlab и Python лучше для кодирования общего назначения, но я неправильно объяснил свой вопрос. Спасибо за ваше предложение, кстати.   -  person    schedule 28.09.2010
comment
@Harptreet: я отредактировал ваш заголовок, чтобы лучше отразить ваш истинный вопрос.   -  person Joris Meys    schedule 29.09.2010
comment
Оба ваших ответа были полезны, поэтому я не знаю, какой из них выбрать в качестве ответа (я думаю, должна была быть функция 1/2-1/2 !!).   -  person    schedule 29.09.2010


Ответы (2)


Если я правильно понимаю, расчет в MATLAB довольно прост.

Шаги 1-2 (средний расчет):

k1_mean = mean(k1);
k2_mean = mean(k2);
k3_mean = mean(k3);
k4_mean = mean(k4);

Шаг 3. Используйте HIST для построения гистограмм распределения:

hist([k2_mean; k3_mean; k4_mean]')

Шаг 4. Вы можете выполнить t-тест, сравнивая векторы 2, 3 и 4 с нормальным распределением со средним значением k1_mean и неизвестной дисперсией. Подробнее см. TTEST.

[h,p,ci] = ttest(k2_mean,k1_mean);
person yuk    schedule 25.09.2010
comment
Вы НЕ используете t-тест для сравнения распределений, t-тест проверяет только средние значения. - person Joris Meys; 28.09.2010
comment
Вы правы, но ОП хочет сравнивать дистрибутивы с одним значением, что невозможно. Я полагаю, что он ошибся, сравнивая распределения со сравнением средств. См. его пункт 4). Он хочет найти, какая матрица ближе к первой. Если его средние значения векторов не слишком близки к значению k1_mean, он может решить это с помощью t-критерия. Разумеется, предполагается нормальное распределение значений векторов, которое можно проверить. - person yuk; 28.09.2010
comment
@Yuk: Можете ли вы отредактировать свой ответ, чтобы я проголосовал за него, так как по ошибке ответ, за который проголосовали, был возвращен обратно. Кроме того, как мне интерпретировать мой результат, поскольку я не мог четко понять параметры h,p и ci в справке функции. Является ли ci с наибольшим значением тем, который очень похож на исходную истину? - person ; 29.09.2010
comment
@Harpreet, я предполагаю, что это будет тот, у которого будет самое высокое значение p. ci — это доверительный интервал, то есть интервал, покрывающий истинное среднее значение в 95 % случаев. Значение p говорит вам, насколько велик шанс получить среднее значение для матрицы 2, 3 или 4, если среднее значение действительно является значением в матрице 1, и учитывая, что средние значения распределены (вот где центральная предельная теорема вступает в игру ). - person Joris Meys; 29.09.2010
comment
@Joris: Спасибо, что не отстаете. Пожалуйста, смотрите мой результат выше в вопросе. Ни один из моих КИ из трех методов не включает в себя среднее значение (с которым я сравнивал). Итак, мы все еще считаем p-значение, чтобы выбрать лучший результат? Спасибо еще раз. - person ; 29.09.2010
comment
@Harpreet: я ничего не изменил в ответе, но теперь вы сможете изменить свой голос. - person Joris Meys; 29.09.2010
comment
@Harpreet, извините за поздний ответ. Благодаря Йорису вы уже получили хороший ответ по доверительному интервалу и p-значению. Я бы использовал p-значение в качестве критерия (это то, как вычисляется возвращаемое значение h с пороговым значением p). Поскольку вы выполняете 3 сравнения одновременно, вы можете применить поправку Бонферрони (просто умножив p-значения на 3), но это не сильно изменит результаты. Похоже, все ваши матрицы довольно далеки от 1-й, поэтому интерпретируйте данные соответствующим образом. Не спрашивайте, какая матрица ближе, по какой менее отличается. Однако это выходит за рамки статистики. - person yuk; 29.09.2010

РЕДАКТИРОВАТЬ: я неправильно истолковал ваш вопрос. См. ответ Юка и следующие комментарии. Мой ответ - то, что вам нужно, если вы хотите сравнить распределения двух векторов вместо вектора с одним значением. Судя по всему, здесь имеет место последнее.

Что касается ваших t-тестов, вы должны помнить, что они проверяют «истинное» среднее значение. Учитывая количество значений для каждой матрицы и доверительные интервалы, несложно угадать стандартное отклонение ваших результатов. Это мера «разброса» ваших результатов. Теперь ошибка вашего среднего значения рассчитывается как стандартное отклонение ваших результатов, деленное на количество наблюдений. А доверительный интервал рассчитывается путем умножения этой стандартной ошибки на прибл. 2.

Этот доверительный интервал содержит истинное среднее значение в 95% случаев. Таким образом, если истинное среднее значение находится точно на границе этого интервала, значение p равно 0,05, чем дальше среднее значение, тем ниже значение p. Это можно интерпретировать как вероятность того, что значения, которые вы имеете в матрице 2, 3 или 4, получены из совокупности со средним значением, как в матрице 1. Если вы видите свои p-значения, можно сказать, что эти шансы отсутствуют.

Итак, вы видите, что когда количество значений становится большим, доверительный интервал становится меньше, а t-критерий становится очень чувствительным. Это говорит вам о том, что три матрицы значительно отличаются от среднего. Если вам нужно выбрать один, я бы все равно взглянул на дистрибутивы. В противном случае вариант с ближайшим средним значением кажется хорошим предположением. Если вы хотите углубиться в это, вы также можете спросить на stats.stackexchange.com.


Ваш вопрос и ваш метод не очень ясны:

  • Равно ли распределение во всех столбцах? Это важно, так как два распределения могут иметь одно и то же среднее значение, но значительно различаться:

альтернативный текст

  • есть ли причина, по которой вы не используете центральную предельную теорему? Мне кажется, что это очень сложный способ получения результата, который можно легко найти, используя тот факт, что распределение среднего приближается к нормальному распределению, где sd(среднее) = sd(наблюдения)/количество наблюдений. Экономит вам немного работы - если дистрибутивы одинаковы! -

Теперь, если вопрос действительно заключается в сравнении распределений, вам следует рассмотреть возможность просмотра qqplot. для общего представления и 2-образец колмогорова-смирнова test для формального тестирования. Но, пожалуйста, прочитайте этот тест, так как вы должны понимать, что он делает, чтобы правильно интерпретировать результаты.

На заметку: если вы выполняете этот тест в нескольких случаях, убедитесь, что вы понимаете проблему множественных сравнений и используете соответствующую поправку, например. Бонферрони или Данн-Сидак.

person Joris Meys    schedule 28.09.2010
comment
@Harpeet: если взять средние значения столбцов, у вас будет 4 вектора по 20 значений. Таким образом, вы можете сравнить распределение 2, 3 и 4 с распределением в матрице 1. Это не на 100% статистически правильно, но в противном случае нам придется перейти к более сложному моделированию. Если вас интересует, какая матрица является ближайшей, то вы берете среднее из 100 средних (это то, на чем строится ваш доверительный интервал), и вы видите, какое из них приближается к 3,45 ближе всего. Тоже догадка, но не самая страшная. -продолжение - person Joris Meys; 29.09.2010
comment
Дело в том, что вы должны решить, что ближе всего к тому, у которого больше всего шансов содержать истинное значение в ci? Или тот, который в среднем ближе всего? Может случиться так, что среднее значение находится дальше, но разброс больше и, следовательно, ci больше. Вы даже можете посмотреть на распределения: ближе всего те, которые имеют наиболее равную форму. Это - очень упрощенно - то, что тестирует тест Колгоморова-Смирнова. Но что ближе всего, я не могу решить за вас. - person Joris Meys; 29.09.2010