R语言 CHAR 03

数据的表述统计量

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述


数据的表述统计量

数据水平:反映数值大小
数据差异:反映离散程度
分布形状:反映偏度和峰度

一、描述水平的统计量

1、平均数与加权平均数

#平均数
> mean(table$分数)
[1] 80

请添加图片描述

#加权平均数
> weighted.mean(table$组中值,table$人数)
[1] 81

请添加图片描述

请添加图片描述

2、分位数

中位数

> median(table$分数)
[1] 85

median(x, na.rm = FALSE)

x是数值向量,na.rm是控制是否处理缺失数据的逻辑变量。

四分位数


> quantile(table$分数,probs = c(0.25,0.75),type = 6)
  25%   75% 
69.25 90.25 

请添加图片描述

百分位数

> quantile(table$分数,probs = c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9),type = 6)
 10%  20%  30%  40%  50%  60%  70%  80%  90% 
55.6 66.2 72.9 81.4 85.0 86.0 89.7 91.0 94.7 

3、众数

> library(rootSolve)
> library(DescTools)
> Mode(table$分数)
[1] 86
attr(,"freq")
[1] 3

请添加图片描述

二、描述差异的统计量

1、极差和四分位差

#极差
> range<-max(table$分数)-min(table$分数)
> range
[1] 47 
#四分位差
> IQR(table$分数,type=6) 
[1] 21

2、方差和标准差

#方差
> var(table$分数)
[1] 174.6207

#标准差
> sd(table$分数)
[1] 13.21441

3、变异系数

#变异系数
cv<-sd/mean
> mean<-apply(table,2,mean)
> sd<-apply(table,2,sd)
> cv<-sd/mean
> x<-data.frame("平均环数"=mean,"标准差"=sd,"变异系数"=cv)
> round(x,4)
      平均环数 标准差 变异系数
选手1     9.81 0.6154   0.0627
选手2    10.23 0.4373   0.0427
选手3     9.26 0.7074   0.0764
选手4    10.14 0.5461   0.0539
选手5     9.80 0.6498   0.0663
选手6     9.73 0.7334   0.0754
选手7     9.69 0.3573   0.0369
选手8     9.65 0.4625   0.0479

#箱线图
> boxplot(table,notch=TRUE,col="lightblue",ylab="huanshu",xlab="yundongyuan")

请添加图片描述

apply(X, MARGIN, FUN)
Here:
-x: 一个数组或者矩阵
-MARGIN: 两种数值1或者2决定对哪一个维度进行函数计算
-MARGIN=1: 操作基于行
-MARGIN=2: 操作基于列
-MARGIN=c(1,2): 对行和列都进行操作
-FUN: 使用哪种操作,内置的函数有mean(平均值)、medium(中位数)、sum(求和)、min(最小值)、max(最大值),

4、标准分数与离群点

离群点:三个标准差外的数字

> as.vector(round(scale(table$分数),4))
 [1]  0.3784 -1.8919  0.8324 -1.0594 -0.0757  1.2865  0.9081 -1.8919  0.5297  0.7567
[11]  0.2270 -0.7567  1.2108 -0.6054  0.7567 -1.4378  0.4540  0.4540  0.9081  0.3784
[21] -0.9838  0.0757  0.6811 -2.2702  1.1351  0.4540 -0.3784  0.8324  0.1513 -1.0594

请添加图片描述

三、描述分布形状的统计量

1、偏度系数

请添加图片描述请添加图片描述

> library(e1071)
> skewness(table$分数,type=3)
[1] -0.7500727

2、峰度系数

小于零:比标准正态分布的峰值低
大于零:比标准正态分布的峰值高

> kurtosis(table$分数,type=3)
[1] -0.6537093

四、数据的综合描述

1、几个常用的R函数

一次输入多个描述统计量

> library(pastecs)
> round(stat.desc(table),4)
               选手1    选手2   选手3    选手4   选手5   选手6   选手7   选手8
nbr.val      10.0000  10.0000 10.0000  10.0000 10.0000 10.0000 10.0000 10.0000
nbr.null      0.0000   0.0000  0.0000   0.0000  0.0000  0.0000  0.0000  0.0000
nbr.na        0.0000   0.0000  0.0000   0.0000  0.0000  0.0000  0.0000  0.0000
min           8.5000   9.4000  8.3000   9.1000  8.6000  8.1000  9.1000  8.7000
max          10.6000  10.8000 10.7000  10.8000 10.5000 10.7000 10.2000 10.3000
range         2.1000   1.4000  2.4000   1.7000  1.9000  2.6000  1.1000  1.6000
sum          98.1000 102.3000 92.6000 101.4000 98.0000 97.3000 96.9000 96.5000
median        9.9000  10.3500  9.2000  10.2500  9.9500  9.8500  9.8000  9.7500
mean          9.8100  10.2300  9.2600  10.1400  9.8000  9.7300  9.6900  9.6500
SE.mean       0.1946   0.1383  0.2237   0.1727  0.2055  0.2319  0.1130  0.1462
CI.mean.0.95  0.4403   0.3128  0.5061   0.3907  0.4648  0.5246  0.2556  0.3308
var           0.3788   0.1912  0.5004   0.2982  0.4222  0.5379  0.1277  0.2139
std.dev       0.6154   0.4373  0.7074   0.5461  0.6498  0.7334  0.3573  0.4625
coef.var      0.0627   0.0427  0.0764   0.0539  0.0663  0.0754  0.0369  0.0479
library(psych)

> describe(table)
      vars  n  mean   sd median trimmed  mad min  max range  skew kurtosis   se
选手1    1 10  9.81 0.62   9.90    9.88 0.52 8.5 10.6   2.1 -0.65    -0.45 0.19
选手2    2 10 10.23 0.44  10.35   10.26 0.44 9.4 10.8   1.4 -0.50    -1.04 0.14
选手3    3 10  9.26 0.71   9.20    9.20 0.59 8.3 10.7   2.4  0.54    -0.65 0.22
选手4    4 10 10.14 0.55  10.25   10.19 0.59 9.1 10.8   1.7 -0.52    -1.10 0.17
选手5    5 10  9.80 0.65   9.95    9.86 0.82 8.6 10.5   1.9 -0.42    -1.35 0.21
选手6    6 10  9.73 0.73   9.85    9.81 0.67 8.1 10.7   2.6 -0.79    -0.12 0.23
选手7    7 10  9.69 0.36   9.80    9.70 0.30 9.1 10.2   1.1 -0.29    -1.46 0.11
选手8    8 10  9.65 0.46   9.75    9.69 0.30 8.7 10.3   1.6 -0.65    -0.66 0.15

请添加图片描述

2、一个综合描述的例子

从图表和统计量两个方面进行描述

> par(fig=c(0,0.8,0,0.8))
> hist(table$月生活费支出,xlab="yueshenghuofeizhichu",ylab="p",prob=TRUE,col="lightblue",main="") #条形图
> rug(jitter(table$月生活费支出)) #核密度图
> lines(density(table$月生活费支出),col="red") #曲线
> par(fig=c(0,0.8,0.35,1),new=TRUE)
> boxplot(table$月生活费支出,horizontal = TRUE,axes=FALSE)

请添加图片描述

> boxplot(table$月生活费支出~table$家庭所在地*table$性别,col=(2:3),ylab="zhichu")

请添加图片描述
请添加图片描述

> library(ggplot2)
> mytheme<-theme(plot.title = element_text(size=10),axis.title = element_text(size=9),axis.text = element_text(size=8),legend.position = "none")
> ggplot(table)+
+ geom_density(aes(x=table$月生活费支出,group=table$性别,color=table$性别,fill=table$家庭所在地),alpha=0.5)+
+ facet_grid(table$性别~table$家庭所在地)+
+ mytheme+
+ ggtitle(" ")

请添加图片描述

请添加图片描述

> summary(table)
     性别            家庭所在地         月生活费支出 
 Length:60          Length:60          Min.   :1100  
 Class :character   Class :character   1st Qu.:1550  
 Mode  :character   Mode  :character   Median :1850  
                                       Mean   :1812  
                                       3rd Qu.:2000  
                                       Max.   :2800  
> my_summary<-function(x){
+ with(x,data.frame(
+ n=length(table$月生活费支出),
+ "mean"=mean(table$月生活费支出),
+ "median"=median(table$月生活费支出),
+ "sd"=sd(table$月生活费支出),
+ "quanju"=max(table$月生活费支出)-min(table$月生活费支出),
+ "bianyixishu"=sd(table$月生活费支出)/mean(table$月生活费支出),
+ "pianduxishu"=e1071::skewness(table$月生活费支出)))}
> library(plyr)
> ddply(table,.(性别),my_summary)
  性别  n     mean median       sd quanju bianyixishu pianduxishu
160 1812.333   1850 320.9962   1700   0.1771176   0.3002957
260 1812.333   1850 320.9962   1700   0.1771176   0.3002957

> ddply(table,.(家庭所在地),my_summary)
  家庭所在地  n     mean median       sd quanju bianyixishu pianduxishu
1   大型城市 60 1812.333   1850 320.9962   1700   0.1771176   0.3002957
2   乡镇地区 60 1812.333   1850 320.9962   1700   0.1771176   0.3002957
3   中小城市 60 1812.333   1850 320.9962   1700   0.1771176   0.3002957

ddply(数据,分组的列,对列进行某种操作的函数)

> myfun<-function(x){
+ c(n=length(x),mean=mean(x),median=median(x),
+ sd=sd(x),CV=sd(x)/mean(x),R=(max(x)-min(x)),SK=e1071::skewness(x))}
> library(doBy)
> summaryBy(月生活费支出~性别+家庭所在地,data=table,FUN=myfun)
  性别 家庭所在地 月生活费支出.n 月生活费支出.mean 月生活费支出.median
1   男   大型城市             15          1714.667                1780
2   男   乡镇地区              4          1712.500                1700
3   男   中小城市              6          1660.000                1725
4   女   大型城市             11          2031.818                2000
5   女   乡镇地区              6          1786.667                1860
6   女   中小城市             18          1841.111                1825
  月生活费支出.sd 月生活费支出.CV 月生活费支出.R 月生活费支出.SK
1        293.4004       0.1711122            900     -0.61763658
2        246.2214       0.1437789            450      0.01334604
3        290.1724       0.1748026            700     -0.15348401
4        383.5836       0.1887883           1300      0.38347423
5        247.5210       0.1385379            700     -1.13491460
6        308.9430       0.1678025            960      0.29018033
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值