R “传销”对象的“stats::confint”的置信区间错误?

R “传销”对象的“stats::confint”的置信区间错误?,r,statistics,R,Statistics,这里我不确定我是否做错了什么,或者这是R本身的confint函数中的一个错误,但我得到的是不包含估计的回归估计的置信区间 这里是reprex: #模型(将数据中的所有数字列转换为z分数) mod#A tibble:4 x 8 #>响应项估计标准误差统计p值形态低形态高 #> #>1 mpg(截距)8.05e-17 0.0893 9.01e-16 1.00e+0-0.182 0.182 #>2加仑重量-8.68e-1

这里我不确定我是否做错了什么,或者这是
R
本身的
confint
函数中的一个错误,但我得到的是不包含估计的回归估计的置信区间

这里是reprex:

#模型(将数据中的所有数字列转换为z分数)
mod#A tibble:4 x 8
#>响应项估计标准误差统计p值形态低形态高
#>                                         
#>1 mpg(截距)8.05e-17 0.0893 9.01e-16 1.00e+0-0.182 0.182
#>2加仑重量-8.68e-10.0908-9.56e+0.29e-10-1.05-0.682
#>3显示(截距)-1.70e-16 0.0826-2.06e-15 1.00e+0-0.182 0.182
#>4显示重量8.88e-10.08401.06e+11.22e-11-1.05-0.682
确认(mod)
#>                   2.5 %     97.5 %
#>:(截距)-0.1824544 0.1824544
#>:wt-1.0530332-0.6822855
#>:(截距)-0.1824544 0.1824544
#>:wt-1.0530332-0.6822855
如果绘制估算图,这一点会更加明显:

我做错什么了吗?或者这是预期的行为

confint()现在可用于传销:

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中使用scale,我在scale之后使用as.data.frame,因为您的所有列都是数字:

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.numeric):


不幸的是,
tidy(..,conf.int=TRUE)
不太有效,因此在绘图时,需要使用stats中的
confint
,并进行一些操作。

确实,间隔看起来完全错误。看见
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