Непараметричне багаторазове вимірювання Anova в R?


16

Наступне питання - одне із тих святих граалів для мене вже певний час, сподіваюся, хтось, можливо, зможе запропонувати гарну пораду.

Я б хотів виконати непараметричні повторні заходи мультиварки anova з використанням Р.

Я деякий час займався пошуком і читанням в Інтернеті, і поки що міг знайти рішення лише для деяких випадків: тест Фрідмана для одноразових непараметричних повторних заходів anova, порядкова регресія з функцією {car} Anova для багатосторонньої непараметричної anova тощо. Часткові рішення НЕ, що я шукаю в цій темі запитання. Я підсумував свої висновки до цього часу у публікації, яку я опублікував деякий час тому (під назвою: Повторні заходи ANOVA з R (функції та навчальні посібники) , якщо це допоможе комусь)


Якщо те, що я читаю в Інтернеті, відповідає дійсності, то це завдання може бути досягнуто за допомогою змішаної моделі звичайної регресії (також: Модель пропорційних шансів).

Я знайшов два пакети, які здаються актуальними, але не вдалося знайти жодної віньєтки на цю тему:

Отож, будучи новим у цьому питанні, я сподівався на деякі вказівки від людей, які тут.

Чи є підручники / запропоновані читання з цього питання? Ще краще, чи може хтось запропонувати простий приклад коду для того, як запустити та проаналізувати це в R (наприклад: "непараметричні повторні заходи багатосторонній anova")?


Тал, я можу запитати, ти знайшов для цього рішення? У мене є та ж проблема, і відповіді нижче можуть бути корисними, щоб допомогти знайти відповідь, але насправді не дають остаточної відповіді. У мене є 9 порядкових DV та 2 часових моменти, і я шукаю той самий тест, який ви хотіли виконати.
Торвон

1
Привіт Торвон. Я ніколи не прийшов до рішення. Я думаю, тести на перестановку будуть найбезпечнішим маршрутом, але я ніколи не мав часу сісти і змусити його працювати. Якщо ви це зробите - будь ласка, приходьте ще раз, щоб опублікувати свою відповідь. Ура, Т
Тал Галілі

Дякую за швидку відповідь. Мені доведеться це розробити, і я дам вам знати.
Торвон

Відповіді:


8

Пакет ez , автором якого я є, має функцію під назвою ezPerm (), яка обчислює тест перестановки, але, ймовірно, не виконує належних взаємодій (документація передбачає стільки ж). В останній версії є функція під назвою ezBoot (), яка дозволяє виконувати перекомпіляцію завантажувальної програми, яка враховує повторні заходи (шляхом переупорядкування суб'єктів, а потім у межах предметів), або використовуючи традиційні засоби комірки як статистику прогнозування, або використовуючи змішане моделювання ефектів для прогнозування для кожної комірки в дизайні. Я все ще не впевнений, наскільки "непараметричні" інтерфейси завантажувальної системи з прогнозів моделі змішаних ефектів; моя інтуїція полягає в тому, що їх можна вважати непараметричними, але моя впевненість у цій галузі низька, враховуючи, що я все ще вчуся про моделі змішаних ефектів.


Привіт Майку. Дякую за відповідь, і за ваш пакет - це справді чудово!
Тал Галілі

@Mike, Ваш пакет, здається, єдиний, що працює для змішаних конструкцій з множинними факторами. aovpАльтернатива - від сирітського lmpermпакета - виробляє величезні варіації для р-значень см це . У мене є кілька запитань: Де можна знайти бібліографічні посилання на реалізацію ezPerm? Як я можу інтерпретувати, що функція, ймовірно, не виконує належних взаємодій ? Що може бути постспеціальним тестом у цьому випадку? Спасибі!
toto_tico

@Mike, чи щось ezPerm( data = DATA, dv = DV, wid = WID, within = interaction(A,B), perms = 1e3)має сенс перевірити, чи взаємодія є значущою?
toto_tico

5

Коли ви сумніваєтеся, завантажувальний тренд! Дійсно, я не знаю процедури консервування для вирішення такого сценарію.

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

Науковець Google - це золото ... це робилося раніше ... хоча б один раз.

Луннеборг, Кліффорд Е .; Tousignant, James P .; 1985 р. "Завантажувальний апарат Efron із застосуванням до дизайну повторних заходів". Багатовимірне поведінкове дослідження; Кр85, Вип. 20 Випуск 2, p161, 18р


1
Дякую за ведучий Бретт! Мені цікаво, чи хтось до цього не втілив його в R (я б не здогадувався).
Тал Галілі

1
Правильно. R має безліч процедур для надання допомоги у завантажувальній програмі та інших методах рандомізації, але я не знаю, що ви знайдете щось конкретне для цієї проблеми.
Бретт

Дуже приємне перше речення. Я сподіваюся, що це не захищено авторським правом, тому що я планую його використовувати: D
gui11aume

0

Існує "фокус", який згадується на деяких форумах та списках розсилки - я також виявив, що це згадується в книзі Джоупа Хокса "Багаторівневий аналіз" (друге видання, 2010 р.), Стор. 189.

Ідея така: ви переформатуєте свої довгі дані в довгий довгий набір даних, в якому ви створюєте новий DV, який включає всі ваші відповіді DV, і використовуєте змінну індексу, яка містить інформацію про природу відеореєстраторів для прогнозування цього результату.

Припустимо, у вас 9 симптомів депресії (порядкові), 2 точки вимірювання та 300 предметів. Отже, у вас у звичайному наборі даних 300 рядків, а у вашому довгому наборі даних - 600 рядків, цей новий набір даних матиме 9 (симптоми) x 2 (час) x 300 (теми).

Нова змінна DV "симптоми" тепер містить вираженість симптомів учасників на 9 симптомів, змінна "індекс" містить інформацію про характер симптому (від 1 до 9), а потім є дві змінні "час" і " Ідентифікатор користувача".

Тепер ви можете використовувати ordinalпакет для запуску цього.

data<-read.csv("data_long_long.csv", head=T)

data$symptoms <- factor(data$symptoms)
data$time <- factor(data$time)
data$index <-factor(data$index)

m1<-clmm2(symptoms ~ index+time, random=UserID, data = data, Hess=TRUE, nAGQ=10)

У моєму конкретному випадку мене цікавило, чи існує значна взаємодія між індексом та часом, тому я запустив одну додаткову модель і порівняв їх:

m2<-clmm2(symptoms ~ index+time, random=UserID, data = data, Hess=TRUE, nAGQ=10)
anova(m1,m2)

CLMM2 використовує модель випадкового перехоплення (наскільки мені відомо, пакет ordinalне робить випадкових нахилів), якщо у вас немає для випадкової моделі перехоплення, ви можете запускати моделі замість цього за допомогою CLM, наприклад:

m3<-clm(symptoms ~ index+time, data = data)

1
не m1 і m2 абсолютно однакові, можливо, ви мали на увазі clmm2(symptoms ~ index*time, random=UserID, data = data, Hess=TRUE, nAGQ=10) anova(m1,m2). Чи знаєте ви випадково, як це виразити за допомогою нової функції clmm? Я не впевнений у позначенні.
toto_tico
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.