1、什么是描述性统计?

描述性统计,就是从总体数据中提取变量的主要信息(总和、均值等),从而从总体层面上,对数据进行统计性描述。在统计的过程中,通常会配合绘制相关的统计图来进行辅助。2、统计量

描述性统计所提取的含有总体性值的信息,我们称为统计量。

1)常用统计量* 频数与频率

+ 预数

+ 频率

* 集中趋势分析

+ 均值

+ 中位数

+ 众数

+ 分位数

* 离散程度分析

+ 极差

+ 方差

+ 标准差

* 分布形状

+ 偏度

+ 峰度

2)变量的类型* 类别变量

+ 无序类别变量

+ 有序类别变量

* 数值变量

+ 连续变量

+ 离散型变量

3)本文章使用的相关python库import numpy as np

import pandas as pd

import matplotlib as mpl

import matplotlib.pyplot as plt

import seaborn as sns

import warnings

from sklearn.datasets import load_iris

from scipy import stats

sns.set(style='darkgrid')

mpl.rcParams['font.family'] = 'SimHei'

mpl.rcParams['axes.unicode_minus'] = False

warnings.filterwarnings('ignore')3、频率与频数

1)频率与频数的概念数据的频数与频率适用于类别变量。

频数:指一组数据中类别变量的每个不同取值出现的次数。

频率:指每个类别变量的频数与总次数的比值,通常采用百分数表示。

2)代码:计算鸢尾花数据集中每个类别的频数和频率iris = load_iris()

# iris是一个类字典格式的数据,data、target、feature_names、target_names都是键

display(iris.data[:5],iris.target[:5])

# feature_names是每一列数据的特征名。target_names是鸢尾花的属种名

display(iris.feature_names,iris.target_names)

# reshape(-1,1)表示将原始数组变为1列,但是行数这里我写一个-1,表示系统

# 会根据我指定的列数,自动去计算出行数。reshape(1,-1)含义同理

dt = np.concatenate([iris.data,iris.target.reshape(-1,1)],axis=1)

df = pd.DataFrame(dt,columns=iris.feature_names + ['types'])

display(df.sample(5))

# 计算鸢尾花数据集中每个类别出现的频数

frequency = df['types'].value_counts()

display(frequency)

percentage = frequency / len(df)

display(percentage)

frequency.plot(kind='bar')

结果如下:

4、集中趋势

1)均值、中位数、众数概念

均值:即平均值,其为一组数据的总和除以数据的个数。

中位数:将一组数据升序排列,位于该组数据最中间位置的值,就是中位数。如果数据个数为偶数,则取中间两个数值的均值。

众数:一组数据中出现次数对多的值。

2)均值、中位数、众数三者的区别

”数值变量”通常使用均值与中值表示集中趋势。

“类别变量”通常使用众数表示集中趋势。

计算均值的时候,因此容易受到极端值的影响。中位数与众数的计算不受极端值的影响,因此会相对稳定。

众数在一组数据中可能不是唯一的。但是均值和中位数都是唯一的。

在正态分布下,三者是相同的。在偏态分布下,三者会所有不同。

3)不同分布下,均值、中位数、众数三者之间的关系

记忆方法:哪边的尾巴长,就叫做 “X偏”。左边的尾巴长,就叫做“左偏”;右边的尾巴长,就叫做“右偏”。并且均值离着尾巴最近,中位数总是在最中间,众数离着尾巴最远。

4)代码:计算鸢尾花数据集中花萼长度的均值、中位数、众数mean = df['sepal length (cm)'].mean()

display(mean)

median = df['sepal length (cm)'].median()

display(median)

# 由于series中没有专门计算众数的函数,因此需要我们统计频数最大的那些值

s = df['sepal length (cm)'].value_counts()

s = s[s.values == s.values[0]]

s.index.tolist()

t = s.index[0]

t

# scipy的stats模块中,可以计算众数

from scipy import stats

t = stats.mode(df['sepal length (cm)'])

# 注意:t展示的类字典格式的数据类型,mode展示众数,count用于展示众数出现的次数

display(t.mode,t.count)

sns.distplot(df['sepal length (cm)'])

plt.axvline(mean,ls='-',color='r',label='均值')

plt.axvline(median,ls='-',color='g',label='中值')

plt.axvline(t,ls='-',color='indigo',label='众数')

plt.legend(loc='best')

结果如下:

5、集中趋势:分位数

1)分位数的概念

分位数:将数据从小到大排列,通过n-1个分位数将数据分为n个区间,使得每个区间的数值的个数相等(近似相等)。

以四分位数为例,通过3个分位数,将数据划分为4个区间。(十分位数含义相同)

第一个分位数成为1/4分位数(下四分位数),数据中有1/4的数据小于该分位数。

第二个分位数成为2/4分位数(中四分位数,也叫中位数),数据中有2/4的数据小于该分位数。

第三个分位数成为3/4分位数(下四分位数),数据中有3/4的数据小于该分位数。

2)怎么求分位数

给定一组数据(存放在数组中),我们要如何计算其四分位值呢?首先要明确一点,四分位值未必一定等同于数组中的某个元素。

在Python中,四分位值的计算方式如下:

① 首先计算四分位的位置。

q1_index=1+(n-1)*0.25

q2_index=1+(n-1)*0.5

q3_index=1+(n-l)*0.75

其中,位置index从1开始,n为数组中元素的个数。

② 根据位置计算四分位值。

如果index为整数(小数点后为0),四分位的值就是数组中索引为index的元素(注意位置索引从1开始)。

如果index不是整数,则四分位位置介于ceil(index)与floor(index)之间,根据这两个位置的元素确定四分位值。

3)分位数是数组中的元素的情况x = np.arange(10,19)

n = len(x)

# 计算每个分位数的位置,这个位置是从1开始的。但是数组元素索引从0开始的

q1_index=1+(n-1)*0.25

q2_index=1+(n-1)*0.5

q3_index=1+(n-1)*0.75

# 这里计算出来的数字是浮点类型,需要转化为小数,才能当作索引

q1_index,q2_index,q3_index

# 计算分位数

index = np.array([q1_index,q2_index,q3_index]).astype(np.int32)

index -= 1

q = x[index]

q

结果如下:

绘制图形:plt.figure(figsize=(15,4))

plt.xticks(x)

plt.plot(x,np.zeros(len(x)),ls='',marker='D',ms=15,label='元素值')

plt.plot(x[index],np.zeros(len(index)),ls='',marker='X',ms=15,label='四分位值')

plt.legend()

结果如下:

4)分位数不是数组中的元素的情况x = np.arange(10,20)

n = len(x)

# 计算每个分位数的位置,这个位置是从1开始的。但是数组元素索引从0开始的

q1_index=1+(n-1)*0.25

q2_index=1+(n-1)*0.5

q3_index=1+(n-1)*0.75

q1_index,q2_index,q3_index

# 计算分位数

index = np.array([q1_index,q2_index,q3_index])

index

left = np.floor(index).astype(np.int32)

left

right = np.ceil(index).astype(np.int32)

right

weight = np.modf(index)[0]

weight

q = x[left] + (x[right] - x[left]) *weight

q

结果如下:

绘制图形:plt.figure(figsize=(15,4))

plt.xticks(x)

plt.plot(x,np.zeros(len(x)),ls='',marker='D',ms=15,label='元素值')

plt.plot(q,np.zeros(len(q)),ls='',marker='X',ms=15,label='四分位值')

plt.legend()

for v in q:

plt.text(v,0.01,v,fontsize=15)

plt.legend()

结果如下:

5)numpy中计算分位数的函数:quantile()x = np.arange(10,19)

np.quantile(x,[0.25,0.5,0.75])

x = np.arange(10,20)

np.quantile(x,[0.25,0.5,0.75])

结果如下:

从结果中可以看到:上述我们自己计算的分位数结果,和使用该函数计算的分位数的结果,是一样的。

6)pandas中计算分位数的函数:describe()x = pd.Series(np.arange(10,19))

x.describe()

x = pd.Series(np.arange(10,20))

x.describe()

结果如下:

注意:describe()中可以传入percentiles参数,获取指定分位数的值。x = pd.Series(np.arange(10,19))

x.describe(percentiles=[0.25,0.5,0.75,0.9])

结果如下:

6、离散程度

1)极差、方差、标准差的概念

2)极差、方差、标准差的作用

极差的计算非常简单,但是极差没有充分的利用数据信息。

方差(标准差)可以体现数据的“分散性”,方差(标准差)越大,数据越分散,方差(标准差)越小,数据越集中。

方差(标准差)也可以体现数据的“波动性”(稳定性)。方差(标准差)越大,数据波动性越大。

方差(标准差)越小,数据波动性越小。

当数据较大时,也可以使用n代替n-1。

3)代码:计算鸢尾花数据集中花萼长度的极差、方差、标准差iris = load_iris()

dt = np.concatenate([iris.data,iris.target.reshape(-1,1)],axis=1)

df = pd.DataFrame(dt,columns=iris.feature_names + ['types'])

display(df.sample(5))

sub = df['sepal length (cm)'].max() - df['sepal length (cm)'].min()

sub

var = df['sepal length (cm)'].var()

var

std = df['sepal length (cm)'].std()

std

var == std ** 2

结果如下:

绘制图形:plt.figure(figsize=(15,4))

plt.ylim(-0.5,1.5)

plt.plot(df['sepal length (cm)'],np.zeros(len(df)),ls='',marker='o',ms=10,color='g',label='花瓣长度')

plt.plot(df['sepal width (cm)'],np.ones(len(df)),ls='',marker='o',ms=10,color='b',label='花瓣宽度')

plt.axvline(df['sepal length (cm)'].mean(),ls='--',color='g',label='花瓣长度均值')

plt.axvline(df['sepal width (cm)'].mean(),ls='-',color='b',label='花瓣宽度均值')

plt.legend()

结果如下:

7、分布形状:偏度和峰度

1)偏度① 概念偏度是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。

如果数据对称分布(例如正态分布),则偏度为0。

如果数据左偏分布,则偏度小于0,如果数据右偏分布,则偏度大于0。

② 代码如下t1 = np.random.randint(1,11,100)

t2 = np.random.randint(11,21,500)

t3 = np.concatenate([t1,t2])

left_skew = pd.Series(t3)

t1 = np.random.randint(1,11,500)

t2 = np.random.randint(11,21,100)

t3 = np.concatenate([t1,t2])

right_skew = pd.Series(t3)

display(left_skew.skew(),right_skew.skew())

sns.kdeplot(left_skew,shade=True,label='左偏')

sns.kdeplot(right_skew,shade=True,label='右偏')

plt.legend()

结果如下:

2)峰度

① 概念

峰度是描述总体中所有取值分布形态陡缓程度的统计量,可以讲峰度理解为数据分布的高矮程度,峰度的比较是相对于标准正态分布的。

对于标准正态分布,峰度为0。

如果峰度大于0,说明数据在分布上比标准正态分布密集,方差(标准差)较小。

如果峰度小于0,说明数据在分布上比标准正态分布分散,方差(标准差)较大。

② 代码如下standard_normal = pd.Series(np.random.normal(0,1,10000))

display('标准正态分布峰度',standard_normal.kurt(),'标准差:',standard_normal.std())

display('花萼长度峰度',df['sepal length (cm)'].kurt(),'标准差:',df['sepal length (cm)'].std())

display('花萼宽度峰度',df['sepal width (cm)'].kurt(),'标准差:',df['sepal width (cm)'].std())

sns.kdeplot(standard_normal,label='标准正态分布')

sns.kdeplot(df['sepal length (cm)'],label='花萼长度')

sns.kdeplot(df['sepal width (cm)'],label='花萼宽度')

结果如下:

山东掌趣网络科技

在统计学中参数的含义是指_统计学中基础概念说明相关推荐

  1. 在统计学中参数的含义是指_期刊论文中科研统计学缺陷分析及解决路径

    中华医学科研管理杂志, 2018,31(5)  张策, 陈淑良, 王晓桐, 等 摘要目的 从期刊论文统计方法缺陷方面进行分析,并提出解决方案. 方法 资料采用中国知网文献数据库中的"基础科学 ...

  2. 在统计学中参数的含义是指_《统计学》名词解释及公式

    章节 主要内容 学习要点 1.1 统计及其 应用领域 什么是统计学  概念:统计学,描述统计,推断统计. 统计的应用领域  统计在工商管理中的应用.  统计的其他应用领域. 1.2 数据的类 型 ...

  3. 在统计学中参数的含义是指_第一篇 理解统计学中的基本概念

    统计学(stastics)是收集.分析和解释数据的科学. 描述统计(descriptive statistics)是研究数据还搜集.整理和描述的统计分支.描述统计的内容包括取得所需要的数据.用图表形式 ...

  4. log4j格局具体格式ConversionPattern中参数的含义

    log4j布局具体格式ConversionPattern中参数的含义 如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下: <!-- %m 输 ...

  5. java中如何限制输入非空_项目中的参数限制、非空、以及集合中的验证,你真的会做吗(Java)...

    背景: 在项目管理中,我们通常要对一个个参数做验证, 前端校验,后端加校验,这里为了保证校验的一致性,我们需要将我们的校验写的比较高效率一点,不至于满篇都是is null的进行参数验证,为了成为一个成 ...

  6. java中字符 的含义 有什么作用_Java中字符串常见题之String相关讲解

    今天给大家带来的是在面试中经常被问到的一道题: 无论在Java还是Android中,String是一个很常见的类,但是大家真的很了解吗,我这里有几个题: 1. String str1 = " ...

  7. 从文件中读取并进行树的存储_数据库中的面试题你能接几招

    (附答案,不带答案的面试题都是耍流氓) 1. 事务的特性 ACID: 原子性, 一致性, 隔离性, 持久性 2. innodb如何结果幻读 在不可重复读的隔离级别下使用间隙锁 3. 什么是间隙锁 In ...

  8. 地壳中元素含量排名记忆口诀_地壳中含量最多的元素是什么?地壳中元素含量排名口诀...

    地壳,乃地质术语,是指由岩石组成的固体地壳,是地球固体圈的最外层,也是岩石圈的重要组成部分.那么地壳中含量最多的元素是什么呢?以及地壳中元素含量排名口诀又是什么呢? 地壳中含量最多的元素 从地震波的研 ...

  9. 中软国际python机试题_【中软国际员工笔试试题及答案】 - 面试网

    中软国际员工笔试试题及答案: 一.选择题 1.IP地址126.168.0.1属于哪一类IP地址( ) A.D类 B.C类型 C.B类 D.A类 2.以下哪一个设置不是上互联网所必须的( ) A.IP地 ...

最新文章

  1. __proto__(隐式原型)与prototype(显式原型)
  2. Eclipse开发环境设置
  3. 日积月累-从细节做起
  4. C语言程序设计二期末考试,9第二学期期末考试《C语言程序设计》A
  5. 利用spring注解创建bean
  6. 设计模式学习(五):行为型模式
  7. PAT 数字分类(20)
  8. 【解决】WPS 2019 Windows版如何更换序列号
  9. B.DongDong认亲戚
  10. 万能的json格式化
  11. angular *ngFor
  12. 赵越,一个优秀的科研工作者
  13. win10安装TensorFlow2.8.0
  14. B2C之淘宝商城,图穷匕见
  15. 新概念炒冷饭——操作符进阶详解
  16. 主流互联网开发平台一览
  17. java word模板poi生成文件_利用poi读取word模板文件生成新的word文档
  18. 从零开始编写自己的C#框架(8)——后台管理系统功能设计
  19. Vid2Vid:Video-to-Video Synthesis
  20. Pybind11 的 CMakeList 说明

热门文章

  1. Linux防火墙安装与配置
  2. 根据经纬度计算地球两点之间的距离
  3. java学生管理系统界面录入_[两个例题教学中的学生插话] java学生管理系统界面...
  4. java key锁 实现对某个key(字符串)加同步锁 带详细注释
  5. PFR0.S08.00.F00比例流量控制插装阀
  6. Delphi 注册表操作
  7. .net批量下载文件
  8. 统计学考研和计算机考研真题,20考研北大数院统计/叉院数据科学(统计学)备考经验...
  9. @f_webp 图片转 jpeg, png
  10. IDC:2020年中国云计算市场十大预测