回归分析:计算区间估计值

> beta.int<-function(fm,alpha=0.05){
+ A<-summary(fm)$coefficients
+ df<-fm$df.residual
+ left<-A[,1]-A[,2]*qt(1-alpha/2, df)
+ right<-A[,1]+A[,2]*qt(1-alpha/2, df)
+ rowname<-dimnames(A)[[1]]
+ colname<-c("Estimate", "Left", "Right")
+ matrix(c(A[,1], left, right), ncol=3,
+ dimnames = list(rowname, colname ))
+ }

 

运用①:

> x<-c(0.10, 0.11, 0.12, 0.13, 0.14, 0.15,
+      0.16, 0.17, 0.18, 0.20, 0.21, 0.23)
> y<-c(42.0, 43.5, 45.0, 45.5, 45.0, 47.5,
+      49.0, 53.0, 50.0, 55.0, 55.0, 60.0)

> lm.sol<-lm(y ~ 1+x)
> fm=lm.sol

> A<-summary(fm)$coefficients #通过summary()获取系数

> A[,1] #estimate
(Intercept)           x 
   28.49282   130.83483 

> A[,2] #std.error
(Intercept)           x 
   1.579806    9.683379 

> alpha=0.05
> 1-alpha/2
[1] 0.975

> df<-fm$df.residual #通过回归方程lm()获取残差自由度
> df #df=n-2(变量个数)
[1] 10

> qt(1-alpha/2, df)
[1] 2.228139

> A[,2]*qt(1-alpha/2, df) #标准差*分布函数的反函数(即给定概率的t检验下分位点)
(Intercept)           x 
   3.520027   21.575913 

> left<-A[,1]-A[,2]*qt(1-alpha/2, df) #区间左侧值 预测值减去标准差与下分位点的乘积
> right<-A[,1]+A[,2]*qt(1-alpha/2, df) #区间左侧值 预测值加上标准差与下分位点的乘积

> dimnames(A)
[[1]]
[1] "(Intercept)" "x"          

[[2]]
[1] "Estimate"   "Std. Error" "t value"    "Pr(>|t|)"  

> dimnames(A)[[1]]
[1] "(Intercept)" "x" 

> A[[1]]
[1] 28.49282
> A[1] #效果一样,都是(1,1)
[1] 28.49282

> dimnames(A)[[1]]
[1] "(Intercept)" "x"          
> dimnames(A)[1] #效果不一样,选择第一组
[[1]]
[1] "(Intercept)" "x"          

> dimnames(A)[2] #选择第二组
[[1]]
[1] "Estimate"   "Std. Error" "t value"    "Pr(>|t|)"  

> rowname<-dimnames(A)[[1]]
> colname<-c("Estimate", "Left", "Right")

> c(A[,1], left, right)
(Intercept)           x           (Intercept)           x           (Intercept)           x 
   28.49282   130.83483    24.97279   109.25892    32.01285   152.41074 

> matrix(c(A[,1], left, right), ncol=3,
+        dimnames = list(rowname, colname ))
                   Estimate            Left            Right
(Intercept)  28.49282      24.97279     32.01285
x                130.83483    109.25892   152.41074

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值