confint () теперь работает с mlm:
confint(lm(mpg~wt,data=mtcars))
2.5 % 97.5 %
(Intercept) 33.450500 41.119753
wt -6.486308 -4.202635
confint(lm(disp~wt,data=mtcars))
2.5 % 97.5 %
(Intercept) -204.0914 -58.2054
wt 90.7579 134.1984
confint(lm(cbind(mpg,disp)~wt,data=mtcars))
2.5 % 97.5 %
mpg:(Intercept) 33.450500 41.119753
mpg:wt -6.486308 -4.202635
disp:(Intercept) -204.091436 -58.205395
disp:wt 90.757897 134.198380
Проблема в использовании масштаба внутри dplyr или purrr, я использовал as.data.frame после масштаба, потому что все ваши столбцы имеют цифры c в любом случае:
confint(lm(cbind(mpg,disp)~wt,data=as.data.frame(scale(mtcars))))
2.5 % 97.5 %
mpg:(Intercept) -0.1824544 0.1824544
mpg:wt -1.0530332 -0.6822855
disp:(Intercept) -0.1687740 0.1687740
disp:wt 0.7165054 1.0594545
Для dplyr и purrr вы можете видеть, что имена переменных также перепутаны:
library(dplyr)
library(purrr)
confint(lm(cbind(mpg,disp)~wt,data=modify_if(.x = mtcars, .p = is.numeric, .f = scale)))
2.5 % 97.5 %
:(Intercept) -0.1824544 0.1824544
:wt -1.0530332 -0.6822855
:(Intercept) -0.1824544 0.1824544
:wt -1.0530332 -0.6822855
confint(lm(cbind(mpg,disp)~wt,data=mutate_if(mtcars,is.numeric,scale))
2.5 % 97.5 %
:(Intercept) -0.1824544 0.1824544
:wt -1.0530332 -0.6822855
:(Intercept) -0.1824544 0.1824544
:wt -1.0530332 -0.6822855
Я предполагаю, что при масштабировании атрибуты, которые переносятся Перемешать что-то в секрете (все еще глядя на код). Один из способов решить эту проблему - принудительно преобразовать вывод в вектор (используя c или as.numeri c):
confint(lm(cbind(mpg,disp)~wt,data=modify_if(mtcars,is.numeric,~c(scale(.x)))))
или
confint(lm(cbind(mpg,disp)~wt,data=mutate_if(mtcars,is.numeric,~c(scale(.x)))))
2.5 % 97.5 %
mpg:(Intercept) -0.1824544 0.1824544
mpg:wt -1.0530332 -0.6822855
disp:(Intercept) -0.1687740 0.1687740
disp:wt 0.7165054 1.0594545
К сожалению, tidy(..,conf.int=TRUE)
не совсем работает, поэтому для построения графика вам нужно использовать confint
из статистики с некоторыми манипуляциями.