美文网首页
【R语言数据分析一:基础】

【R语言数据分析一:基础】

作者: lkj666 | 来源:发表于2021-04-23 08:40 被阅读0次

    2021.4.23
    持续更新中。。。


    《R语言实战2》、学术数据分析及可视化


    1. 相关性

        偏相关的计算,用到的时候再复习

    1.1 相关计算方法:

    • Person: 积差相关系数,衡量了两个定量变量之间的线性相关,适用于连续变量(常用)
    • Spearman:等级相关系数,衡量了分级定序变量之间的相关,适用于因子
    • Kendall:相关系数是一种非参数的等级相关

    1.2 计算

    第一步:计算相关系数

    cor(a, b) #a,b为两个向量
    cor(x) #x为数据框
    

    参数是数据框时,得出一个相关性矩阵

    第二步:相关性检验(P值)

    cor.test(y, x) #x, y是两个向量
    
    install.packages("psych")
    library(psych)
    corr.test(x) #x为数据框
    

    psych中函数corr.test()可以批量计算数据框的相关性并得出相关性的检验。(两个矩阵)

    2. 差异分析(t-test)

        t-test用于检验两个组别的差异性;ANOVA用于多个组别的差异性

    2.1 独立t检验

    • 两个组别之间没有影响
    t.test(y ~ x, data  = data.frame) #x和y分别是数据框example.txt中的两个向量
    

    2.2 非独立t检验

    • 两个组别有相关性
    t.test(data.frame$y, data.frame$x, paired = TRUE)
    

    多了一个paired = TRUE选项

    2.3 两组差异的非参数检验

    • 两组数据不符合正太分布,或者不是连续变量
    wilcox.test(y ~ x, data = data.frame) #独立检验
    wilcox.test(data.frame$y, data.frame$x, paired = TRUE ) #非独立检验
    

    2.4 样本不均等

    t.test(y ~ x, var.eq = F)
    



    3. 标准方差分析

        方差分析用于检验多个组别之间的差异性。计算出的P值与统计学意义之间没有必然的联系。

    3.1 前提假设

        进行方差分析之前,默认数据满足以下三个假设

    • 正态性:分布符合正态分布
    #定性描述正太分布
    hist(rnorm(100, mean = 5, sd = 3), breaks = 100)
    #定量描述正太分布
    shapiro.test(rnorm(100, mean = 5, sd = 3))
    

    P>0.05表示满足正态分布

    • 方差分析:样本来自同一个总体,总体方差相同
    #单因子方差齐性检验
    bartlett.test(count ~ spray, data = InsectSprays)
    #多因子方差齐性检验
    bartlett.test(len ~ interaction(supp,dose), data = ToothGrowth)
    

    P值>0.05表示满足正态分布

    • 独立性:变量之间是独立的
          实验过程中一般已经考虑过独立性

    3.2 单因子多组数据(one-way ANOVA)

    set .seed(4)
    df <- data.frame(Grade = rep(c('level1', 'level2', 'level3'), each = 5), 
                     Height = sample(150:190, 15))
    #总体因子之间是否显著
    aov(Height ~ Grade, data = df)
    summary(aov(Height ~ Grade, data = df))
    #各个组别之间是否显著
    TukeyHSD(aov(Height ~ Grade, data = df))
    

    P<0.05显著;P<0.001极显著

    3.3 多因子多组数据(two-way ANOVA)

    set.seed(6)
    df <- data.frame(Grade = rep(c('level1', 'level2', 'level3'), each = 5), 
                     Gender = rep(c('female', 'male'), each = 5, times =3),
                     Height = sample(150:190, 15))
    #分别检验单个因子和因子交互的显著性
    summary(aov(Height ~ Grade*Gender, data = df))
    #两两交互的影响
    TukeyHSD(aov(Height ~ Grade*Gender, data = df))
    

    Grade*Gender = Grade:Gender + Grade + Gender,因此可分别求单个因子和交互的影响显著性

    相关文章

      网友评论

          本文标题:【R语言数据分析一:基础】

          本文链接:https://www.haomeiwen.com/subject/aibglltx.html