数据分析|R-描述性统计
时间:2022-07-22
本文章向大家介绍数据分析|R-描述性统计,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前文介绍了脏数据中缺失值数据分析|R-缺失值处理和异常值数据分析|R-异常值处理的常规处理方法,之后就可以对数据进行简单的描述性统计,方便我们对数据有一个整体的认识。
常见描述性统计可以通过最小值、下四分位数、中位数、上四分位数和最大值,均值、众数、标准差、极差等查看数据的分布和离散程度;通过偏度(数据分布形态呈现左偏或右偏)和峰度(分布形态呈现尖瘦或矮胖)等查看数据的正态与否。
下面简单的介绍如何使用R实现数值型变量的上述统计量。
1 基础包中summary()函数
可得到数值型变量的最小值、下四分位数、中位数、上四分位数和最大值。
#使用自带的mtcars数据集,选择mpg,disp和hp三个数值型变量进行分析。
head(mtcars)
data <- mtcars[c("mpg","disp","hp")]
summary(data)
mpg disp hp
Min. :10.40 Min. : 71.1 Min. : 52.0
1st Qu.:15.43 1st Qu.:120.8 1st Qu.: 96.5
Median :19.20 Median :196.3 Median :123.0
Mean :20.09 Mean :230.7 Mean :146.7
3rd Qu.:22.80 3rd Qu.:326.0 3rd Qu.:180.0
Max. :33.90 Max. :472.0 Max. :335.0
2 psych包中describe()函数
可得到非缺失值的个数、均值、标准差、中位数、截尾平均数、绝对中位差、最小值、最大值、极差、偏度、丰度和平均值的标准误
#install.packages("psych")
library(psych)
describe(data)
vars n mean sd median trimmed mad min max range skew kurtosis se
mpg 1 32 20.1 6.03 19.2 19.7 5.41 10.4 33.9 23.5 0.61 -0.37 1.07
disp 2 32 230.7 123.94 196.3 222.5 140.48 71.1 472.0 400.9 0.38 -1.21 21.91
hp 3 32 146.7 68.56 123.0 141.2 77.10 52.0 335.0 283.0 0.73 -0.14 12.12
3 pastecs包中stat.desc()函数
当设置norm=TRUE(非默认)时,可以返回偏度和丰度(统计显著程度)和Shapiro-Wilk正态检验的结果。
其中p=0.05表示计算平均数的置信区间默认置信度为0.95.
#install.packages("pastecs")
library(pastecs)
options(digits=3) #设定三位小数
stat.desc(data,norm = TRUE)
mpg disp hp
nbr.val 32.000 3.20e+01 32.0000
nbr.null 0.000 0.00e+00 0.0000
nbr.na 0.000 0.00e+00 0.0000
min 10.400 7.11e+01 52.0000
max 33.900 4.72e+02 335.0000
range 23.500 4.01e+02 283.0000
sum 642.900 7.38e+03 4694.0000
median 19.200 1.96e+02 123.0000
mean 20.091 2.31e+02 146.6875
SE.mean 1.065 2.19e+01 12.1203
CI.mean.0.95 2.173 4.47e+01 24.7196
var 36.324 1.54e+04 4700.8669
std.dev 6.027 1.24e+02 68.5629
coef.var 0.300 5.37e-01 0.4674
skewness 0.611 3.82e-01 0.7260
skew.2SE 0.737 4.60e-01 0.8759
kurtosis -0.373 -1.21e+00 -0.1356
kurt.2SE -0.230 -7.46e-01 -0.0837
normtest.W 0.948 9.20e-01 0.9334
normtest.p 0.123 2.08e-02 0.0488
4 自定义函数
除了上述函数包外,还可以自定义函数可以只返回需要的值。
my_describe <- function(x){
options(digits = 3)
N = length(x);
Nmiss = sum(is.na(x));
Min = min(x, na.rm = TRUE);
Q1 = quantile(x, probs = 0.25, na.rm = TRUE);
Median = median(x, na.rm = TRUE);
Q3 = quantile(x, probs = 0.75, na.rm = TRUE);
Max = max(x, na.rm = TRUE);
Mean = mean(x, na.rm = TRUE);
Sd = sd(x, na.rm = TRUE);
Range = abs(diff(range(x)));
skew <- sum((x-Mean)^3/Sd^3)/N
kurt <- sum((x-Mean)^4/Sd^4)/N-3
#返回结果
return(data.frame(N = N, Nmiss = Nmiss, Min = Min, Q1 = Q1, Median = Median, Q3 = Q3, Max = Max, Mean = Mean, Sd = Sd, Range = Range, Skewness = skew, Kurtosis = kurt))
}
sapply(data, my_describe)
mpg disp hp
N 32 32 32
Nmiss 0 0 0
Min 10.4 71.1 52
Q1 15.4 121 96.5
Median 19.2 196 123
Q3 22.8 326 180
Max 33.9 472 335
Mean 20.1 231 147
Sd 6.03 124 68.6
Range 23.5 401 283
Skewness 0.611 0.382 0.726
Kurtosis -0.373 -1.21 -0.136
可以看出自定义函数的结果与上述R包的结果一致,而且可以根据自己的需求选择返回值。
- [接口测试 - http.client篇] 15 常用API说明及基本的示例
- [接口测试 - http.client篇] 14 源码初探及其工作机制分析
- 【专知-关关的刷题日记19】Leetcode 118. Pascal's Triangle
- 每周学点大数据 | No.3算法设计与分析理论
- HDU 1874 畅通工程续【Floyd算法实现】
- 接口测试 | 21 基于flask弄个restful API服务出来
- 数论部分第二节:埃拉托斯特尼筛法 埃拉托斯特尼筛法
- [接口测试 -基础篇] 20 用flask写一个简单server用于接口测试
- 接口测试 | urllib篇 19 urllib基本示例
- 接口测试 | urllib篇 18 urllib介绍
- 【专知-Deeplearning4j深度学习教程01】分布式Java开源深度学习框架DL4j安装使用: 图文+代码
- .Net Core Runtime安装说明
- 【专知-Deeplearning4j深度学习教程02】用ND4J自己动手实现RBM: 图文+代码
- 【专知-Deeplearning4j深度学习教程03】使用多层神经网络分类MNIST数据集:图文+代码
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法