2016-06-19 4 views
0

Я пытаюсь запустить glmmLasso оценить смешанную модель с помощью команды:glmmLasso Предупреждающие сообщения

glm1_final <- glmmLasso(Activity~Novelty + Valence + ROI, rnd = 
list(Subject=~1), data = KNov, lambda=lambda[opt],switch.NR=F,final.re=TRUE) 

Этого код в основном взят из demo("glmmLasso-soccer"), но мои переменных подставляются в активности является мерой активности мозга. , Novelty и Valence являются категориальными переменными, кодирующими тип стимулов, используемых для получения ответа, и ROI является категориальной переменной, кодирующей три области мозга, от которых мы отбирали эту активность. Subject - это идентификационный номер для индивидуумов, из которых были взяты данные (n = 94). lambda[opt] устанавливается на предыдущем шаге, хотя этот предыдущий шаг также дает мне ошибки, поэтому я не знаю, насколько это точно.

я получаю два предупреждения:

предупреждающих сообщений: 1: В split.default ((1: Ncol (Х)) [- inotpen.which], ИПЕН): длина данных не кратна сплит переменных 2: в est.glmmLasso.RE (FIX = правка, RND = RND, данные = данные, лямбда = лямбда,: переменная кластера должна быть указана в качестве факторного

Первое происходит только если! ROI находится в модели. Я не определил никаких изменений, которые я могу сделать для модели, чтобы сделать вторую.

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

Кто-нибудь знает, что означают эти предупреждения?

UPDATE:

Я загрузил abreviated версию моих данных: Google Drive

Я подтвердил, я все еще получаю вторую ошибку, если я запускаю код:

KNov <- read.table("Nov_abr.txt", header = TRUE) 
KNov$Subject <- factor(KNov$Subject) 
library(glmmLasso) 
glmmLasso(Activity~Novelty + Valence + ROI, rnd = list(Subject=~1), data = KNov, lambda=10,switch.NR=F,final.re=TRUE) 

В KNov $ Subject < - factor (KNov $ Subject) прояснил другую ошибку.

Версия РЛ является: R версии 3.3.0 (2016-05-03) Платформа: "i386-w64-mingw32"

+0

Добро пожаловать в переполнение стека! Можете ли вы указать данные и/или код, который предоставит нам [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? Можем ли мы (по крайней мере) увидеть результаты 'str (KNov)'? –

+0

@BenBolker Я добавил данные, спасибо за вашу помощь! – xralphyx

ответ

3

Вы должны использовать

KNov$Subject <- factor(KNov$Subject) 

избавиться первого предупреждения, и as.factor(ROI) в вашем фиксированной формуле эффекта, как описано (выделено ниже):

исправление: двухсторонний линейную формулу объект, описывающий фиксированных эффектов часть модели, с ответ на слева от оператора «~» и термины, разделенные операторами «+» , справа. Для категориальных ковариаций используйте 'as.factor (.)' В формуле.Обратите внимание, что соответствующие манекены, рассматриваются в качестве группы и обновляются поблочно

Так

glmmLasso(Activity~Novelty + Valence + as.factor(ROI), 
     rnd = list(Subject=~1), 
     data = KNov, lambda=10,switch.NR=F,final.re=TRUE) 

похоже на работу (я до сих пор получаю предупреждение, но я думаю, что это потому, что я используя крошечное подмножество данных). (Этот синтаксис также показан в «линейной смешанной модели с категориальным ковариатом», например, в ?glmmLasso.) Да, было бы неплохо, чтобы получить более явное предупреждение, но ответ в документации ...

+0

Это избавляет от этого предупреждения. Тем не менее, я также хотел бы протестировать взаимодействие с ROI. Если я запустил 'glmmLasso (Activity ~ Novelty + Valence + as.factor (ROI) + Новинка: as.factor (ROI) + Новинка: Valence: as.factor (ROI), rnd = list (Subject = ~ 1) , данные = KNov, лямбда = 10, switch.NR = F, final.re = TRUE), ' я получаю ошибку ' 'ошибка в [.data.frame' (данные,, strsplit (fac.name , ":") [[1]] [1]): undefined columns selected' – xralphyx

+0

Я предполагаю, что вам придется создавать собственные матричные переменные модели/фиктивные переменные; Я думаю, что 'as.factor()' в формулах обрабатывается специально, поэтому включение термина взаимодействия, вероятно, будет именно этим. (Было бы полезно попробовать 'as.factor (Novelty: ROI)' - я сомневаюсь, что это сработает, но если это произойдет, это будет самый простой путь вперед.) (Я мог бы обновить свой ответ, но технически вы спрашиваете другого вопрос ...) –

+0

Быстрое разъяснение - причина, по которой ROI нуждается в as.factor(), потому что он имеет более двух уровней (в отличие от Novelty of Valence, которые также категоричны)? – xralphyx

Смежные вопросы