2015-05-29 2 views
0

У меня есть данные, что есть 3 переменные, которые зависят один из другого, как иерархию, так предполагая, что данные выглядят следующим образом:Каков наилучший способ добавления vars в линейную модель, если они зависят друг от друга в R?

H0 H1 H2 t y x 
a a1 a1a 5 2 1 
a a1 a1b 5 4 2 
a a2 a2a 8 3 3 
b b1 b1a 22 7 88 
c a1 c1a 2 2 2 
... 

Как можно видеть, существует иерархия: H0- > H1-> H2. И, возможно, один и тот же H1 для двух разных H0. Я хочу сделать линейную модель для й в зависимости от других переменных:

model <- lm(log(x) ~ H0 + H1 + H2 + t + y) 

Это работает, но если я могу изменить его с H0*H1 + H2 + t + y я получаю не достаточно ошибку памяти. И если я делаю H0 + H1 + H0:H1 + H2 + t + y, то получаю ту же ошибку с тем же расчетным размером, который я предполагаю правильным.

Я видел также, что существует также гнездятся / и кондиционирование | (docs), и я не совсем уверен, что является лучшим для моего случая. Я не нашел, что here

| который не используется lm на всех

который я боюсь согласиться, но нет аргументов контера. И есть также I(...), а также ^, и я действительно хочу еще несколько объяснений об этих подходах.

Больше: предположим, что у меня есть другая переменная q, которую я не использую в модели, я должен использовать -q в lm?

+0

Я предполагаю, что у вас есть огромное количество уровней факторов, которые приводят к огромной матрице дизайна. В таком случае вы можете легко запускать память. – Roland

+0

Итак, что вы предлагаете мне делать? – sop

+0

Рассчитайте количество уровней 'H0: H1' и попробуйте что-то вроде' lm.fit.sparse' в пакете MatrixModels. Но вы, вероятно, должны искать другой статистический метод. – Roland

ответ

1

Оператор - оператор удаляет указанные члены, так что (a + b + c)^2 - a: b идентичен a + b + c + b: c + a: c.

Его также можно использовать для удаления термина перехвата.

+0

Итак, это оператор, используемый для lm, но можете ли вы также рассказать мне о/и | ? – sop

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