【R语言学习笔记】关于提取各类模型值的意外发现

本文介绍了在使用R语言进行统计分析时,如何更有效地提取模型参数,特别是通过str函数来查看模型内部结构,从而找到需要的参数如自由度、p值等。以t检验、方差分析和广义线性模型为例,展示了如何利用str和summary函数自动化提取显著性系数,提升工作效率。
摘要由CSDN通过智能技术生成

之前在做各类回归方程和检验的时候,针对模型里面的值的提取总是有一种碰运气的成本,比如在做t检验的时候想提取里面的自由度,随便举个例子,基于mtcars这个数据集

a<-t.test(mtcars$vs,mtcars$cyl)

结果为

Welch Two Sample t-test

data:  mtcars$vs and mtcars$cyl
t = -17.528, df = 35.907, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -6.415358 -5.084642
sample estimates:
mean of x mean of y 
   0.4375    6.1875 

里面其实是有df=35.907这个字段的,但是不能每次看到后在手工提取,之前的做法是针对这类名称,直接用a$df去看,但是其实这个字段储存在parameter里,比如

a$parameter
 df 
35.90693 

那么问题来了,我怎么知道哪个参数储存在哪里呢?

下面意外的用到了str函数。

比如针对刚才的t检验结果a,用str

str(a)
List of 9
 $ statistic  : Named num -17.5
  ..- attr(*, "names")= chr "t"
 $ parameter  : Named num 35.9
  ..- attr(*, "names")= chr "df"
 $ p.value    : num 3.5e-19
 $ conf.int   : atomic [1:2] -6.42 -5.08
  ..- attr(*, "conf.level")= num 0.95
 $ estimate   : Named num [1:2] 0.438 6.188
  ..- attr(*, "names")= chr [1:2] "mean of x" "mean of y"
 $ null.value : Named num 0
  ..- attr(*, "names")= chr "difference in means"
 $ alternative: chr "two.sided"
 $ method     : chr "Welch Two Sample t-test"
 $ data.name  : chr "mtcars$vs and mtcars$cyl"
 - attr(*, "class")= chr "htest"

看到有各类的参数,储存在$后的字段里,比如我要提取p值,直接输入

a$p.value
[1] 3.500725e-19

就能看到p值为3.500725e-19。

同理,我做一个方差分析,比如就这个mtcars数据集了

fit.a<-aov(mpg~am,data=mtcars)
summary(fit.a)
Df Sum Sq Mean Sq F value   Pr(>F)    
am           1  405.2   405.2   16.86 0.000285 ***
Residuals   30  720.9    24.0                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

看这个方差分析都有什么参数:

str(fit.a)
List of 12
 $ coefficients : Named num [1:2] 17.15 7.24
  ..- attr(*, "names")= chr [1:2] "(Intercept)" "am"
 $ residuals    : Named num [1:32] -3.39 -3.39 -1.59 4.25 1.55 ...
  ..- attr(*, "names")= chr [1:32] "Mazda RX4" "Mazda RX4 Wag" "Datsun 710" "Hornet 4 Drive" ...
 $ effects      : Named num [1:32] -113.65 -20.13 -0.64 4.33 1.63 ...
  ..- attr(*, "names")= chr [1:32] "(Intercept)" "am" "" "" ...
 $ rank         : int 2
 $ fitted.values: Named num [1:32] 24.4 24.4 24.4 17.1 17.1 ...
  ..- attr(*, "names")= chr [1:32] "Mazda RX4" "Mazda RX4 Wag" "Datsun 710" "Hornet 4 Drive" ...
 $ assign       : int [1:2] 0 1
 $ qr           :List of 5
  ..$ qr   : num [1:32, 1:2] -5.657 0.177 0.177 0.177 0.177 ...
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:32] "Mazda RX4" "Mazda RX4 Wag" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值