R. Используя t-критерий, сравните индивидуальное среднее с глобальным средним.

У меня огромная матрица такой формы, со 1000000 строками и 10000 столбцами. Это игрушечный пример:

A B C Mean
1 3 4 2.66
2 4 3 3
1 3 4 2.66
9 9 9 9
1 3 2 2
2 4 5 3
1 2 6 3
2 3 5 3.33

Строки в столбце «Среднее» представляют собой средние значения A, B и C для каждой строки. С другой стороны, глобальное среднее значение столбца «Среднее» равно 3,58. Я хотел бы знать, используя t-тест и R, значительно ли выше среднее значение в каждой строке от глобального среднего. Как я могу получить p-значения для сравнения ?. Сравнивать средние значения между двумя группами очень просто с помощью t.test (), но я не могу найти, как сравнить одно значение со средним значением группы, которая включает это значение.


person Lucas    schedule 08.03.2018    source источник
comment
Это вопрос статистики, лучше подходит для резюме.   -  person Roman Luštrik    schedule 08.03.2018
comment
Привет @ RomanLuštrik, я давно задавал аналогичный вопрос в резюме, но никто не ответил. Я уверен, что в SO есть много людей, работающих в области статистики / R, которые прочитают этот пост, и что у меня больше шансов получить ответ от пользователей SO.   -  person Lucas    schedule 09.03.2018


Ответы (1)


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

Но с точки зрения вашего вопроса R вы можете попробовать здесь t-тест с одним образцом:

global.mean <- 3.58
val.matrix <- matrix(c(...),...)

pvals <- apply(val.matrix,1,function(r) t.test(r,mu=global.mean)$p.value)
### should do a multiple comparison correction here, e.g., pvals*nrow(val.matrix)

Это даст вам вектор размера nrow(val.matrix), где каждый элемент является p-значением из двустороннего t-теста, проверяющего, значительно ли значения строки отличаются от 3,58. Я не защищаю этот статистический подход, но вот как вы могли бы его реализовать.

person Daniel    schedule 08.03.2018