Пермутационный t-критерий

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
Аватара пользователя
Dryomys
Интересующийся
Сообщения: 32
Зарегистрирован: 24 ноя 2010, 12:41
Репутация: 3
Откуда: Пущино

Пермутационный t-критерий

Сообщение Dryomys » 21 фев 2013, 21:46

Кто-нибудь знает, в R он есть в виде отдельной функции? Нужно сравнить средние двух выборок рандомизационным методом.

MYS
Интересующийся
Сообщения: 42
Зарегистрирован: 02 ноя 2011, 09:11
Репутация: 23

Re: Пермутационный t-критерий

Сообщение MYS » 23 фев 2013, 00:17

boot package вашу проблему не решает?

http://cran.r-project.org/web/packages/boot/index.html

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Пермутационный t-критерий

Сообщение gamm » 23 фев 2013, 06:39

Dryomys писал(а):Кто-нибудь знает, в R он есть в виде отдельной функции? Нужно сравнить средние двух выборок рандомизационным методом.
у вас заголовок поста неправильный: t-критерий параметрический, перестановочные критерии непараметрические, и то, и другое вместе не бывает.

А так, либо руками, либо используя boot, строим интервал и смотрим, есть в нем ноль или нет

Код: Выделить всё

library(boot)
x1<-rnorm(50,0,1)
x2<-rnorm(50,1,1)
ind<-rep(1:2,each=50)
tmp<-data.frame(x=c(x1,x2),series=ind) # имя series - фиксированное
abc.ci(tmp, mean.diff)

Аватара пользователя
Dryomys
Интересующийся
Сообщения: 32
Зарегистрирован: 24 ноя 2010, 12:41
Репутация: 3
Откуда: Пущино

Re: Пермутационный t-критерий

Сообщение Dryomys » 23 фев 2013, 09:52

MYS, спасибо, буду разбираться! Я в пакете coin рылась по совету книжки Kabacoff R. - R in Action - 2011
gamm ничего подобного. Можно тут использовать пермутации, как раз смысл в том, что в данном случае не нужно заморачиваться с приведением данных к нормальному виду. Например: считаем t-критерий как обычно, потом 1000 раз считаем с помощью пермутаций, рисуем распределение и смотрим, куда попал наш, вычисленный по исходным данным. Кстати, для параметрического коэффициента корреляции Пирсона в пакете coin функция есть.

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Пермутационный t-критерий

Сообщение gamm » 23 фев 2013, 14:08

Dryomys писал(а):gamm ничего подобного. Можно тут использовать пермутации, как раз смысл в том, что в данном случае не нужно заморачиваться с приведением данных к нормальному виду. Например: считаем t-критерий как обычно, потом 1000 раз считаем с помощью пермутаций, рисуем распределение и смотрим, куда попал наш, вычисленный по исходным данным.
1) о каком "приведении к нормальному виду" вы говорите - по крайне мере в критерии Стьюдента его нет.
2) критерий Стьюдента - параметрический. Т.е. распределение статистики известно при выполнении определенных условий. Если условия выполнены, то он работает. Если нет - то приведенная вами процедура просто не имеет смысла.
3) при выполнении перестановочных тестов оценивается распределение статистики, в данном случае разности средних. Придумать можно, конечно, сколь угодно бессмысленную процедуру, но опубликовать такое в приличном издании вряд ли удастся. Просто посмотрите, как это сделано в пакете boot.
Dryomys писал(а):Кстати, для параметрического коэффициента корреляции Пирсона в пакете coin функция есть.
для корреляции сам коэффициент корреляции и есть статистика (в отличие от t-статистики, для которой исходной статистикой, которую собственно и проверяют, является разность средних).

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Пермутационный t-критерий

Сообщение gamm » 24 фев 2013, 04:55

поскольку эта фраза заинтересовала
Dryomys писал(а): Кстати, для параметрического коэффициента корреляции Пирсона в пакете coin функция есть.
посмотрел пакет coin. Там того, что вы предлагаете, естественно нет, там вообще параметрический (точный) критерий, распределение вероятностей для которого в некоторых случаях вычисляется с использованием перестановочных тестов. Никто там коэффициент корреляции не вычисляет, там вычисляется некоторая статистика, которая (при разных модификациях) может использоваться для проверки разных гипотез, там их дюжина. Так что название поправьте.

Аватара пользователя
Dryomys
Интересующийся
Сообщения: 32
Зарегистрирован: 24 ноя 2010, 12:41
Репутация: 3
Откуда: Пущино

Re: Пермутационный t-критерий

Сообщение Dryomys » 07 мар 2013, 13:10

искомая функция нашлась на сайте Пьера Лежандра adn.biol.umontreal.ca/~numericalecology/Rcode/
Всем большое спасибо за комментарии!

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Пермутационный t-критерий

Сообщение gamm » 07 мар 2013, 19:36

Dryomys писал(а):искомая функция нашлась на сайте Пьера Лежандра adn.biol.umontreal.ca/~numericalecology/Rcode/
1) приведенная функция не решает вашу задачу
Нужно сравнить средние двух выборок рандомизационным методом.
поскольку это парный тест (сравнение показателя объекта до treatment и после).

2) тов. Лежандр не прав даже в этом случае, что видно из приведенного ниже примера (который нужно запустить):

Код: Выделить всё

set.seed(123)
p.x<-rnorm(20)
p.y<-rnorm(20)
p.xy<-p.y - p.x
res.sd<-c()
for(i in 1:1000) {
  ind<-rbinom(100,1,0.5)
  p.xy1<-p.xy*(1-2*ind)
  res.sd<-c(res.sd,sd(p.xy1))
}
p.sd<-sd(p.xy)
hist(res.sd,breaks=30,xlim=range(c(p.sd,res.sd)))
lines(c(p.sd,p.sd),c(0,1000),col="red")
СКО, на которое делится разность при перестановках, всегда меньше, чем СКО исходной выборки, что даст смещенное p-value ("перестановочные" разности будут смещены по модулю в большую сторону - немного, но смещены). Сравнивать нужно просто средние ...

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей