Как мне вычислить пошаговые t-тесты между двумя векторами из 50 точек данных?

У меня есть фрейм данных с 3 переменными и 50 экземплярами (ID, pre и post). Что-то вроде этого

ID<- c("1","2","3","4","5","6","7","8","9","10")
pre<- c("2.56802","2.6686","1.0145","0.2568","2.369","1.2365","0.6989","0.98745","1.09878","2.454658")
post<-c("3.3323","2.66989","1.565656","2.58989","5.96987","3.12145","1.23565","2.74741","2.54101","0.23568")

dfw1<-data.frame(ID,pre,post)

Столбцы до и после являются средними значениями для другой совокупности. Я хочу провести двусторонний t-тест между первыми элементами как до, так и после. (Предварительно против публикации). Я хочу перебрать все 50 рядов. Я пробовал писать циклы, как показано ниже,

t<-0
for (i in 1:nrow(dfw$ID)) {
  t[i]<-t.test(dfw$pre,dfw$post,alternative = c("two.sided"), conf.level = 0.95)
  print(t)
}

он вернул ошибку Я хочу извлечь приведенную выше статистику, такую ​​как df, p-value, t-value для каждой строки и так далее. Как мне написать этот код на R?

Что за этим стоит математическое обоснование? Какая разница?

Roman Luštrik 20.08.2018 18:22

Это может быть полезно: stackoverflow.com/questions/51920287/…. Вам нужно будет использовать исходный набор данных, а не только средства, поэтому t.test может вычислить std dev и посмотреть, сколько наблюдений у вас было в каждой группе. Кроме того, я могу видеть до и после публикации, так что, может быть, вам нужно использовать спаренный t.test?

AntoniosK 20.08.2018 18:24

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

000andy8484 20.08.2018 18:28

Вы вводите числовые значения pre и post как символы (кавычки), это вероятный характер возвращаемой ошибки. Кроме того, вы должны вычислять t-ttest не между двумя наблюдениями, а между двумя выборками.

000andy8484 20.08.2018 18:29
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
4
79
1

Ответы 1

Этот код показывает, что вы не можете отклонить нулевую гипотезу о разнице 0 при обычном уровне достоверности 5%:

ID<- c("1","2","3","4","5","6","7","8","9","10")
pre<- as.numeric(c("2.56802","2.6686","1.0145","0.2568","2.369","1.2365","0.6989","0.98745","1.09878","2.454658"))
post<-as.numeric(c("3.3323","2.66989","1.565656","2.58989","5.96987","3.12145","1.23565","2.74741","2.54101","0.23568"))
dfw1<-data.frame(ID,pre,post)
t.test(dfw1$pre,dfw1$post,alternative = c("two.sided"), conf.level = 0.95, paired=TRUE)

Вывод (дающий вам df, t-stat и p-значение):

Paired t-test

data:  dfw1$pre and dfw1$post
t = -2.1608, df = 9, p-value = 0.05899
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -2.18109315  0.04997355
sample estimates:
mean of the differences 
               -1.06556

Спасибо за ответ. Я написал этот код row_t_welch (dfw [, c ("pre")], dfw [, c ("post")]) ранее, и это дало мне результат для всего столбца. Мне нужны были результаты для каждой строки данных.

shanky 20.08.2018 19:20

Поскольку точки являются предварительными и опубликованными, я предполагаю, что исходный вопрос может рассматривать это как парный тест на совпадение. Возможно, вы захотите рассмотреть возможность добавления paired = TRUE в функцию t.test.

Dave2e 20.08.2018 19:21

@ Dave2e: правильно, адресовано. Shanky: вы имеете в виду, что ваши векторы размещаются в виде строк, а не столбцов? Учтите, что вы не можете, как вы говорите, тестировать различия популяций по точкам. У точки есть среднее значение своего собственного значения и дисперсия, равная 0: т.е. она всегда будет статистически отличаться от другой точки.

000andy8484 20.08.2018 19:47

@ 000andy8484 - Дэйв. У меня 50 значений в столбце, и мои предварительные значения - это не что иное, как среднее из первых 6 значений, а мой пост - это среднее значение от 6-го до 10-го. Я планирую провести t-тест, чтобы узнать, где есть существенные изменения. Для этого я написал пару циклов и сделал два вектора: один со всеми предварительными значениями, а другой со всеми значениями постов. Я планирую провести t-тест со значениями pre и post.

shanky 21.08.2018 01:09

Другие вопросы по теме