本文首发于“生信补给站”公众号,https://mp.weixin.qq.com/s/TqFk66F2gUu_k8WEjKbLtA

更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号。

lm/glm/t.test/chisq.test等模型结果,怎么提?复制粘贴还是broom?

一 载入数据及R包

1.1 mtcars数据集

#载入内置数据集mtcars
head(mtcars)
                  mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

1.2 broom-R包

#载入R包
library(broom)
??broom #查看broom包用法

broom主要提供如下三种结果整理函数

  • tidy: 返回模型的统计结果的数据框;

  • augment: 返回模型参数并增加预测和残差等模型结果;

  • glance: 返回模型的一行重要结果,包含R^2、矫正后的R^2,以及剩余标准误差。

二 回归模型

2.1 线性回归

#构建简单线性回归模型
lmfit <- lm(mpg ~ wt, mtcars)
summary(lmfit)
summary(lmfit)$coef

结果如上,只需要将上面的P值,R squared,Adjusted R squared等关心的模型结果,用时间和耐心“精确”的复制粘贴出来就可以了!

嫌麻烦的小伙伴可以用broom试一下,其实只一行就行。

2.2 R-broom提取结果

1)tidy函数

library(broom)
#返回模型的统计结果的数据框
tidy(lmfit)

看起来和summary(lmfit)$coef差不多,但还是有区别的:

  • coef(summary(lmfit)) 中,terms保存在rawname中;

  • 列名为Pr(>|t|)而不是p.value;

2)augment()函数

#提取回归中每个原始点的拟合值和残差等信息
augment(lmfit)

返回每个原始点的参数值以及模型的拟合值,残差等结果,同时为避免列名重复,模型结果的列名以.开始。

3) glance()函数

#提取R squared,Adjusted R squared等
glance(lmfit)

对于广义线性模型(glm) 和非线性模型(nls)同样适用,可自行尝试。

三 生存分析

生信分析常用的生存分析,结果是否可以提取呢?

答案是可以的,稍微有点区别。

3.1 生存分析示例

#library("survminer") #载入R包
library("survival") #载入R包
fit_cox <- coxph(Surv(time, status)~sex, data=lung)
summary(fit_cox)

3.2 基础方法提取

#通过函数来提取关键结果
coef(summary(fit_cox))
#提取HR和95%置信区间
exp(coef(fit_cox))
#提取HR的95%置信区间
exp(confint(fit_cox))

3.3 broom函数提取

#生存分析,提取的是exp(coef)相关信息,exponentiate = TRUE
tidy(fit_cox,exponentiate = TRUE)

四 假设检验

除模型结果外,broom还可以用于 t.test, cor.test和wilcox.test检验的结果提取。

4.1 T检验

tt <- t.test(wt ~ am, mtcars)
tidy(tt)

返回统计值,P值,置信区间,检验方法等信息;

4.2 wilcox.test

wt <- wilcox.test(wt ~ am, mtcars)
tidy(wt)

可见上述返回值只有一行,因此 glance函数返回相同的结果。

4.3 chisq.test

chit <- chisq.test(xtabs(Freq ~ Sex + Class, data = as.data.frame(Titanic)))
tidy(chit)
#只有chisq.test检验可以使用augment函数
augment(chit)

参考资料:

http://127.0.0.1:18603/library/broom/doc/broom.html

◆ ◆ ◆ ◆ ◆

R|批量循环处理同一格式文件-csv,txt,excel

R In Action |基本数据管理

数据分析|R-缺失值处理

数据分析|R-异常值处理

数据分析|R-描述性统计

数据处理|数据查重怎么办?去重,就这么办!

小数据| 描述性统计(Python/R 实现)

数据挖掘|R-相关性分析及检验

数据处理 | R-tidyr包

数据处理|R-dplyr

R|apply,tapply

数据处理|数据框重铸

R|ML_code-入门(1)

R|ML_code-线性回归(2)

R|机器学习入门-多元线性回归(3)

【觉得不错,右下角点个“在看”,期待您的转发,谢谢!】

Broom |tidy up a bit,模型,检验结果一键输出!的更多相关文章

  1. caffe---测试模型分类结果并输出(python )

    当训练好一个model之后,我们通常会根据这个model最终的loss和在验证集上的accuracy来判断它的好坏.但是,对于分类问题,我们如果只是知道整体的分类正确率 显然还不够,所以只有知道模型对 ...

  2. SAS 评分卡开发模型变量统计及输出

    以下代码实现功能: 1.获取10个模型分别使用哪些变量 2.变量所模型使用的次数 3.把上表格输出到EXCEL中 %INCLUDE '00@HEADER.SAS'; %let dir=..\04@Mo ...

  3. 机器学习入门-文本特征-使用LDA主题模型构造标签 1.LatentDirichletAllocation(LDA用于构建主题模型) 2.LDA.components(输出各个词向量的权重值)

    函数说明 1.LDA(n_topics, max_iters, random_state)  用于构建LDA主题模型,将文本分成不同的主题 参数说明:n_topics 表示分为多少个主题, max_i ...

  4. 图示详解BERT模型的输入与输出

    一.BERT整体结构 BERT主要用了Transformer的Encoder,而没有用其Decoder,我想是因为BERT是一个预训练模型,只要学到其中语义关系即可,不需要去解码完成具体的任务.整体架 ...

  5. 利用keras进行手写数字识别模型训练,并输出训练准确度

    from keras.datasets import mnist (train_images, train_labels), (test_images, test_labels) = mnist.lo ...

  6. 多元线性回归 ——模型、估计、检验与预测

    一.模型假设 传统多元线性回归模型 最重要的假设的原理为: 1. 自变量和因变量之间存在多元线性关系,因变量y能够被x1,x2-.x{k}完全地线性解释:2.不能被解释的部分则为纯粹的无法观测到的误差 ...

  7. 时间序列预测之--ARIMA模型

    什么是 ARIMA模型 ARIMA模型的全称叫做自回归移动平均模型,全称是(ARIMA, Autoregressive Integrated Moving Average Model).也记作ARIM ...

  8. 【数学建模】day14-建立GM(1,1)预测评估模型应用

    学习建立GM(1,1)灰色预测评估模型,解决实际问题: SARS疫情对某些经济指标的影响问题 一.问题的提出 2003 年的 SARS 疫情对中国部分行业的经济发展产生了一定影响,特别是对部分 疫情较 ...

  9. 信用评分卡(A卡/B卡/C卡)的模型简介及开发流程|干货

    https://blog.csdn.net/varyall/article/details/81173326 如今在银行.消费金融公司等各种贷款业务机构,普遍使用信用评分,对客户实行打分制,以期对客户 ...

随机推荐

  1. 静态导入(static import)

    1.传统静态方法的调用方式 定义一个Common类,里面有静态方法和静态常量 package com.example.common; public class Common { public stat ...

  2. 在使用PhpSpreadsheet出现空行导入的问题

      在使用PhpSpreadsheet出现空行导入的问题,项目一直报错,原来是读取excel后会多读取几行,或者说读取的行数有错误.因此必须加一个,去除空行.暂时没有研究源码可能源码里面有这样的功能. ...

  3. zabbix ALL = NOPASSWD: ALL

  4. ADT中创建Android的Activity

    去创建Activity New->Other->Android->Android Activity->BlankActivity: 输入对应的信息: 创建完毕后,可以看到新建了 ...

  5. Docs-.NET-C#-指南-语言参考-预处理器指令:#endregion(C# 参考)

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#endregion(C# 参考) 1.返回顶部 1. #endregion(C# 参考) 2015/07/20 #endreg ...

  6. OHEM(online hard example mining)

    最早由RGB在论文<Training Region-based Object Detectors with Online Hard Example Mining>中提出,用于fast-rc ...

  7. 【grpc proto】python使用proto文件生成简易的服务端和客户端

    1.安装python-grpc(注意,是grpcio包,不是grpc包!) pip install grpcio 2.编写.proto文件 grpc教程:http://doc.oschina.net/ ...

  8. 【Leetcode_easy】840. Magic Squares In Grid

    problem 840. Magic Squares In Grid solution: class Solution { public: int numMagicSquaresInside(vect ...

  9. node.js http-server 搭建本地服务器

    使用vue-cli创建的项目,能够实现浏览器中自动刷新,实时查看项目效果,其中的原理在于,webpack在本地启动了一个本地服务器,将本机当作一台服务器: 打包后的文件是一个html静态页面,在本地文 ...

  10. vue项目开发优化

    1 按需引入ui组件 比如elementUI,不要直接在main.js中全局引入所有的组件,可以根据elementui的说明文件,按需引入 项目中的组件 2 异步引入路由组件 使用 { path:'/ ...