首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为回归模型构造95%置信区间

为回归模型构造95%置信区间
EN

Stack Overflow用户
提问于 2021-01-03 22:23:29
回答 1查看 83关注 0票数 1

我需要一些帮助。下面的表格解释了工作场所的更替情况:

..............B(hat) se

性别-0.01 0.55

年龄-0.01 0.03

工作满意度-0.12 0.08

因此,对于那些换工作的人来说,工作场所的更替被编码为1,而工作满意度是按照从0=非常不满意到10 =非常满意的区间尺度来衡量的。

我应该让工作满意度达到95%的置信区间。然而,我不太确定该怎么做。到目前为止,我做到了以下几点:

代码语言:javascript
复制
c(-0.12 - qnorm(0.975) * 0.08, -0.012 + qnorm(0.975) * 0.08)

由此得到如下结果:1 -0.2767971 0.1447971

我不太确定这是否正确的方法。

谁有什么可以帮助我的意见?:)

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2021-01-04 01:30:59

如果你(天真地)假设一个正态分布(即无限自由度的t分布),你的代码就可以正常工作(除了打字错误)。

代码语言:javascript
复制
all.equal(qnorm(1 - .05/2), qt(1 - .05/2, df=Inf))
# [1] TRUE

`colnames<-`(t(apply(d, 1, function(x) 
  x[1] + x[2]*(qt(1 - .05/2, df=Inf)*c(-1, 1)))), paste0(c(2.5, 97.5), "%"))
#                         2.5%      97.5%
# Gender           -1.08798019 1.06798019
# Age              -0.06879892 0.04879892
# Job satisfaction -0.27679712 0.03679712

然而,你有n=112观测值,m=3系数和k=1常数,因此n-m-k个自由度。因此,使用具有108个自由度的t分布可能是更好的选择。

代码语言:javascript
复制
(DOF <- 112 - 3 - 1)
# [1] 108

qt(1 - .05/2, df=DOF)
# [1] 1.982173

`colnames<-`(t(apply(d, 1, function(x) 
  x[1] + x[2]*(qt(1 - .05/2, df=DOF)*c(-1, 1)))), paste0(c(2.5, 97.5), "%"))
#                        2.5%      97.5%
# Gender           -1.1001954 1.08019542
# Age              -0.0694652 0.04946520
# Job satisfaction -0.2785739 0.03857388

对于完整的摘要,您可以添加t统计信息和p值

代码语言:javascript
复制
signif(cbind(d, t=d[,1]/d[,2], p=2*pt(-abs(d[,1]/d[,2]), df=DOF),
             `colnames<-`(
               t(apply(d, 1, function(x) 
                 x[1] + x[2]*(qt(1 - .05/2, df=DOF)*c(-1, 1)))), 
               paste0(c(2.5, 97.5), "%"))), 
       2)
#                  B.hat.   se      t    p   2.5% 97.5%
# Gender            -0.01 0.55 -0.018 0.99 -1.100 1.100
# Age               -0.01 0.03 -0.330 0.74 -0.069 0.049
# Job satisfaction  -0.12 0.08 -1.500 0.14 -0.280 0.039

数据:

代码语言:javascript
复制
d <- structure(list(B.hat. = c(-0.01, -0.01, -0.12), se = c(0.55, 
0.03, 0.08)), class = "data.frame", row.names = c("Gender", "Age", 
"Job satisfaction"))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65550869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档