Начальная загрузка для сравнения двух групп - PullRequest
4 голосов
/ 01 сентября 2010

В следующем коде я использую начальную загрузку для вычисления C.I. и значение p при нулевой гипотезе о том, что два разных удобрения, применяемые к растениям томата, не влияют на урожайность растений (и альтернативой является то, что «улучшенное» удобрение лучше). Первый случайный образец (x) поступает от растений, где использовалось стандартное удобрение, в то время как «улучшенный» образец использовался на растениях, откуда поступил второй образец (y).

x <- c(11.4,25.3,29.9,16.5,21.1)
y <- c(23.7,26.6,28.5,14.2,17.9,24.3)
total <- c(x,y)
library(boot)
diff <- function(x,i) mean(x[i[6:11]]) - mean(x[i[1:5]])
b <- boot(total, diff, R = 10000)

ci <- boot.ci(b)
p.value <- sum(b$t>=b$t0)/b$R

Что мне не нравится в приведенном выше коде, так это то, что повторная выборка выполняется так, как если бы была только одна выборка из 11 значений (отделяя первые 5 как принадлежащие образцу x, оставляя оставшуюся часть выборке y). Не могли бы вы показать мне, как этот код должен быть изменен, чтобы рисовать повторные выборки размера 5 с заменой из первого образца и отдельные повторные выборки размера 6 из второго образца, чтобы при повторной выборке при начальной загрузке имитировался дизайн «отдельных образцов», в результате которого исходные данные?

Ответы [ 3 ]

5 голосов
/ 01 сентября 2010

EDIT2: Взлом удален, так как это было неправильное решение. Вместо этого нужно использовать страты аргументов загрузочной функции:

total <- c(x,y)
id <- as.factor(c(rep("x",length(x)),rep("y",length(y))))
b <- boot(total, diff, strata=id, R = 10000)
...

Имейте в виду, что вы даже не приблизитесь к правильной оценке вашего p.value:

x <- c(1.4,2.3,2.9,1.5,1.1)
y <- c(23.7,26.6,28.5,14.2,17.9,24.3)

total <- c(x,y)

b <- boot(total, diff, strata=id, R = 10000)
ci <- boot.ci(b)
p.value <- sum(b$t>=b$t0)/b$R
> p.value
[1] 0.5162

Как бы вы объяснили p-значение 0,51 для двух выборок, где все значения второго больше, чем самое высокое значение первого?

Приведенный выше код подходит для получения -безисной оценки доверительного интервала, но проверка значимости разницы должна проводиться путем перестановки по всему набору данных.

1 голос
/ 04 июня 2013

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

x <- c(1.4,2.3,2.9,1.5,1.1)
y <- c(23.7,26.6,28.5,14.2,17.9,24.3)


b_x <- boot(x, sum, R = 10000)
b_y <- boot(y, sum, R = 10000)

z<-(b_x$t0-b_y$t0)/sqrt(var(b_x$t[,1])+var(b_y$t[,1]))
pnorm(z)

Таким образом, мы можем ясно отвергнуть ноль, что они - то же самое население. Возможно, я пропустил корректировку степени свободы, я не уверен, как в этом отношении работает начальная загрузка, но такая корректировка не изменит ваши результаты кардинально.

1 голос
/ 01 сентября 2010

Хотя в некоторых случаях фактические слои почвы можно считать стратифицированной переменной, это не один из них.У вас есть только одна манипуляция между группами растений.Следовательно, ваша нулевая гипотеза состоит в том, что они действительно происходят из одной популяции.В этом случае правильный подход к начальной загрузке состоит в том, чтобы рассматривать предметы, как будто они из одного набора из 11 образцов.

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

...