美文网首页
R语言之书笔记:初级统计学

R语言之书笔记:初级统计学

作者: 七七师姐 | 来源:发表于2020-01-01 16:25 被阅读0次

    概念

    • 数值型变量
      数值型变量:是将观测值以数值形式存储起来的变量,分为连续型和离散型两种类型。
      连续型变量:可以取某个区间中的任何值,可以是任何位数,有无限个可能值。
      离散型变量:只能取离散数据,如果有取值范围,就是有限个可能取值。

    • 分类变量
      分类变量:有名义变量和有序变量两种形式。
      名义变量:不能按照逻辑顺序排序的分类变量,例如性别。
      有序变量:可以排序的分类变量,例如药物剂量,低、中、高。

    • 参数和统计量
      参数:总体的特征叫作参数。
      统计量:样本的特征叫作统计量,统计量是参数的估计量。

    集中趋势:均值、中位数、众数

    • 均值:mean()
    • 中位数:median()
    xdata <- c(2,4.4,3,3,2,2.2,2,4)
    x.bar <- mean(xdata)
    x.bar
    m.bar <- median(xdata)
    m.bar
    
    • 众数、最小数、最大数:table()/min()/max()
    xtab <- table(xdata)
    xtab
    min(xdata)
    max(xdata)
    range(xdata) # 返回xdata的最小值和最大值
    #
    max(xtab)
    d.bar <- xtab[xtab==max(xtab)] # 频数最大的观测值为众数
    d.bar
    
    • 忽略缺失值或者未定义的变量(NA或NaN): 增加参数na.rm = TRUE
      sum/prod/mean/median/max/min/rang——都可以使用参数na.rm
    mean(c(1,4,NA))
    mean(c(1,4,NaN))
    #
    mean(c(1,4,NA),na.rm=TRUE)
    mean(c(1,4,NaN),na.rm=TRUE)
    
    • 对分组数据求统计量:tapply()
    mean(chickwts$weight[chickwts$feed=="casein"])
    mean(chickwts$weight[chickwts$feed=="horsebean"])
    mean(chickwts$weight[chickwts$feed=="linseed"])
    mean(chickwts$weight[chickwts$feed=="meatmeal"])
    mean(chickwts$weight[chickwts$feed=="soybean"])
    mean(chickwts$weight[chickwts$feed=="sunflower"])
    #分别求平均值很麻烦
    tapply(chickwts$weight,INDEX=chickwts$feed,FUN=mean)
    # 使用tapply 批量求出各组的平均值
    

    计数、百分比和比例

    • table()计数,除以nrow()观测数,即可求出比例或百分比
    table(chickwts$feed)
    table(chickwts$feed)/nrow(chickwts)
    
    • 计算逻辑标记向量的和计数,计算逻辑标记向量的均值即可求出比例
    sum(chickwts$feed=="soybean")/nrow(chickwts)
    mean(chickwts$feed=="soybean")
    
    #可以使用这种方法计算组合样本的比例:
    mean(chickwts$feed=="soybean"|chickwts$feed=="horsebean")
    
    • 使用tapply()批量求出比例, round()设置小数位
    tapply(chickwts$weight,INDEX=chickwts$feed,FUN=function(x) length(x)/nrow(chickwts))
    round(table(chickwts$feed)/nrow(chickwts),digits=3)
    # 比例乘以100得到百分比:
    round(mean(chickwts$feed=="soybean")*100,1)
    

    四分位数、百分位数和五分位数

    • quantile() 求分位数和百分位数
    xdata <- c(2,4.4,3,3,2,2.2,2,4)
    quantile(xdata,prob=0.8) # 0.8分位数
    quantile(xdata,prob=c(0,0.25,0.5,0.75,1)) # 同时计算多个分位数
    quantile(chickwts$weight,prob=c(0.25,0.75)) # 计算下四分位数和上四分位数
    
    • summary()计算五分位数和平均值
    summary(xdata)
    summary(quakes$mag[quakes$depth<400])
    

    离散程度:方差、标准差和四分位差

    • 方差:var(),标准差sd(),四分位差IQR()
    • sqrt()计算平方根
    xdata <- c(2,4.4,3,3,2,2.2,2,4)
    ydata <- c(1,4.4,1,3,2,2.2,2,7)
    
    var(xdata)
    sd(xdata)
    IQR(xdata)
    #
    sqrt(var(xdata))
    as.numeric(quantile(xdata,0.75)-quantile(xdata,0.25))
    #
    sd(ydata)
    IQR(ydata)
    #
    sd(chickwts$weight)
    IQR(chickwts$weight)
    #
    IQR(quakes$mag[quakes$depth<400])
    

    协方差和相关系数

    • 协方差:表示两个数值型变量在什么程度上一起变化。正数可能存在正线性关系,负数可能存在负线性关系,等于零不存在线性关系。


      协方差计算公式
    • 相关系数:最常用Pearson相关系数,取值[-1,1],越接近0,相关关系越弱。


      相关系数计算公式
    • cov() 计算协方差,cor() 计算相关系数

    xdata <- c(2,4.4,3,3,2,2.2,2,4)
    ydata <- c(1,4.4,1,3,2,2.2,2,7)
    cov(xdata,ydata)
    cov(xdata,ydata)/(sd(xdata)*sd(ydata))
    cor(xdata,ydata)
    
    #
    plot(quakes$mag,quakes$stations,xlab="Magnitude",ylab="No. of stations")
    cov(quakes$mag,quakes$stations)
    cor(quakes$mag,quakes$stations)
    

    异常值

    在实际中,是否剔除奇异值很难确定,现阶段重要的是了解奇异值对分析产生影响,并且在统计研究之前应检查一下原始数据。
    均值与奇异值高度相关,所有任何依赖均值的统计量如方差或协方差也会受影响,分位数以及相关统计量不会受到奇异值的影响,这种统计性质成为稳健性。

    本章重要代码

    mean:算术平均数
    median:中位数
    table:汇总频数
    min,max,range:最小值,最大值,范围
    round:四舍五入
    quantile:分位数、百分位数
    summary:五位数概况法
    jitter:绘图中的抖动点
    var,sd:方差,标准差
    IQR:四分位差
    cov,cor:协方差,相关系数

    相关文章

      网友评论

          本文标题:R语言之书笔记:初级统计学

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