У меня есть некоторые данные, содержащие групповую переменную (0/1) и индивидуальную оценку для примерно 2000 человек. Набор данных выглядит примерно так:Перемешать данные перед выполнением glm, а затем повторить x раз
ID group score
A1 1 3.5
A2 1 3.2
A3 0 2.8
A4 0 2.5
Я хочу, чтобы проверить, если переменная группа может быть предсказана через счет, и использовали следующее: R:
glm(group~score,family=binomial)
Теперь я хотел бы проверьте мое значение p, перетасовывая групповую переменную, затем снова выполняя glm. Я хотел бы сделать это как минимум 10 000 раз и, возможно, больше, каждый раз при печати значения p для оценки в файле, так что есть одна строка на каждую перестановку. Я посмотрел на sample(), но я стараюсь объединить это с glm() и как вывести только p-значение. В скрипте/формуле я хотел бы легко изменить количество перестановок, а также изменить формулу glm, если я захочу добавить ковариаты.
Благодарим за помощь!
тасовани часть 'данных $ группа <- выборка (данные $ группа, N, замените = FALSE)', где 'N' является 'nrow (data)'. Тем не менее, я настоятельно рекомендую вам ознакомиться с «уровнями доверия», после чего вы почти наверняка сможете сократить ваши 10 000 проб до более удобного количества. –
Спасибо! Это похоже на то, что я пробовал, только это работает! Насколько я понимаю, число перестановок должно быть в порядке величины p-значения, чтобы тщательно протестировать его, поэтому, если p-значение составляет 10^-5, мне нужны 10^5 перестановок. Будет читать больше, хотя. – user2854461
Предположительно, вы имеете в виду 'group ~ score'. У вас, кажется, хороший размер выборки - любая конкретная причина, по которой вы хотите выполнить тест перестановки, а не тест отношения правдоподобия через 'anova'? Для теста перестановки вы можете попробовать пакет 'glmperm' на CRAN. –