2013-05-19 3 views
3

При выполнении регрессии в R, каков порядок возвращаемых коэффициентов? Например:порядок коэффициентов в lm, R

coef(lm(y ~ x + z, data=data.frame(x=1:10, y=10:1, z=1:5))) 

ли он гарантировал, что коэффициент, связанный с x всегда будет возвращен до коэффициента, связанного с z? По порядку я имею в виду порядок в векторе возвращаемых коэффициентов. Причина, по которой это имеет значение для меня, - это проверить линейную гипотезу о коэффициентах в моей модели и, следовательно, порядок коэффициентов в матрице ковариаций дисперсии, возвращаемый vcov, и фактические оценки, возвращаемые coef.

+0

Там нет 'z' в формуле. –

+0

oops, typo. просто исправлено. – Alex

ответ

2

Индекс по названию, а не положению. Тогда вы всегда получите правильный ответ.

coef(lm(y ~ x+z, data=data.frame(x=1:10, y=10:1, z=1:5)))['x'] 
## x 
## -1 
coef(lm(y ~ x+z, data=data.frame(x=1:10, y=10:1, z=1:5)))['z'] 
##    z 
## -1.855301e-16 

И оба они, в желаемом порядке:

coef(lm(y ~ x+z, data=data.frame(x=1:10, y=10:1, z=1:5)))[c('x', 'z')] 
##    x    z 
## -1.000000e+00 -1.855301e-16 
+1

yeh вот что я делаю сейчас, но при выполнении взаимодействий некоторые из них имеют уродливые имена. например, если я делаю 'lm (y ~ 0 + I (x> 2) + x: I (z> 2) + z: I (z> 2)' у них довольно уродливые имена, но я думаю, они надеялись, что есть лучшее решение – Alex

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