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

概念

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

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

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

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

  • 均值: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语言之书笔记:初级统计学)