zoukankan      html  css  js  c++  java
  • Broom |tidy up a bit,模型,检验结果一键输出!

    本文首发于“生信补给站”公众号,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)

    img

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

     

    3) glance()函数

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

    img

     

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

     

    三 生存分析

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

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

    3.1 生存分析示例

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

    img

    3.2 基础方法提取

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

    img

    3.3 broom函数提取

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

    img

    四 假设检验

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

    4.1 T检验

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

    img

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

     

    4.2 wilcox.test

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

    img

     

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

     

    4.3 chisq.test

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

    img

     

    参考资料:

    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)

     

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

     

  • 相关阅读:
    webuploader与django进行断点续传
    mac os 关于rar后缀压缩文件解压
    django forms组件
    迭代器
    函数的进阶
    初识函数
    ⽂件操作
    set集合,深浅拷⻉以及部分知识点补充
    再谈编码
    基本数据类型(dict)
  • 原文地址:https://www.cnblogs.com/Mao1518202/p/11887266.html
Copyright © 2011-2022 走看看