Конкретно назначьте контрасты в R model.matrix - PullRequest
0 голосов
/ 03 июля 2018

Если у меня есть переменная (условие) 2 уровня и я хочу создать модель. Matrix R автоматически назначает условие B в качестве члена в матрице проекта.

condition <- as.factor( c("A","A","A","B","B","B"))
df <- data.frame(condition)
design <- model.matrix( ~ condition)

> df
  condition
1         A
2         A
3         A
4         B
5         B
6         B


> design
  (Intercept) conditionB
1           1          0
2           1          0
3           1          0
4           1          1
5           1          1
6           1          1
attr(,"assign")
[1] 0 1
attr(,"contrasts")
attr(,"contrasts")$condition
[1] "contr.treatment"

Вопрос : Я бы хотел, чтобы мои результаты относились к условиеA . Как я могу указать это в model.matrix ()?

(Обходной путь должен был бы инвертировать получающиеся FC)

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Это результат, который вы хотите?

df <- data.frame(condition)
design <- model.matrix( ~ condition-1)
design
  conditionA conditionB
1          1          0
2          1          0
3          1          0
4          0          1
5          0          1
6          0          1
attr(,"assign")
[1] 1 1
attr(,"contrasts")
attr(,"contrasts")$`condition`
[1] "contr.treatment"
0 голосов
/ 03 июля 2018

Вы можете использовать функцию C, чтобы определить базу, которую вы хотите принять во внимание:

Принимая A за основу:

 model.matrix(~C(condition,base=1))
  (Intercept) C(condition, base = 1)2
1           1                       0
2           1                       0
3           1                       0
4           1                       1
5           1                       1
6           1                       1
attr(,"assign")
[1] 0 1
attr(,"contrasts")
attr(,"contrasts")$`C(condition, base = 1)`
  2
A 0
B 1

Принимая B за основу:

model.matrix(~C(condition,base=2))
  (Intercept) C(condition, base = 2)1
1           1                       1
2           1                       1
3           1                       1
4           1                       0
5           1                       0
6           1                       0
attr(,"assign")
[1] 0 1
attr(,"contrasts")
attr(,"contrasts")$`C(condition, base = 2)`
  1
A 1
B 0
...