建网站张掖哪家强?,网站建设功能覆盖范围,c2c电商平台网站,淘宝网站开发实训报告数理统计#xff1a;数理统计是以概率论为基础#xff0c;研究社会和自然界中大量随机现象数量变化基本规律的一种方法。分为#xff1a;描述统计(描述统计的任务是搜集资料#xff0c;进行整理、分组#xff0c;编制次数分配表#xff0c;绘制次数分配曲线#xff0c;计… 数理统计数理统计是以概率论为基础研究社会和自然界中大量随机现象数量变化基本规律的一种方法。分为描述统计(描述统计的任务是搜集资料进行整理、分组编制次数分配表绘制次数分配曲线计算各种特征指标以描述资料分布的集中趋势、离中趋势和次数分布的偏斜度等。)推断统计(推断统计是在描述统计的基础上根据样本资料归纳出的规律性对总体进行推断和预测。)概念描述性统计就是从总体数据中提取变量的主要信息(总和、均值等)从而从总体层面上对数据进行统计性描述。在统计的过程中通常会配合绘制相关的统计图来进行辅助。描述性统计所提取统计的信息称为统计量。统计量频数与频率(数据的频数与频率统计适用于类别变量)频数(数据中类别变量每个不同取值出现的次数)频率(每个类别变量的频数与总次数的比值通常采用百分数表示)e.g. 在n个变量中类别变量a出现了m次(频数)频率为m/n集中趋势分析均值(即平均值其为一组数据的总和除以数据的个数)中位数(将一组数据升序排列位于该组数据最中间位置的值。如果数据个数为偶数则取中间两个数值的均值)众数(一组数据中出现次数最多的值)分位数(通过n-1个分位将数据划分为n个区间使得每个区间的数值个数相等或近似相等。其中n为分位数的数量。常用的分位数有四分位数与百分位数)以四分位数为例通过3个分位将数据划分为4个区间第1个分位称为1/4分位(下四分位)。数据中1/4的数据小于该分位值第2个分位称为2/4分位(中四分位)。数据中2/4的数据小于该分位值第3个分位称为3/4分位(上四分位)。数据中3/4的数据小于该分位值四分位值的计算1.首先计算四分位的位置(其中位置index从0开始n为数组中元素的个数)2.根据位置计算四分位值⊙如果index为整数(小数点后为0)四分位的值就是数组中索引为index的元素⊙如果index不为整数则四分位位置介于ceil(index)[向上取整]与floor(index)[向下取整]之间根据这两个位置的元素确定四分位值离散程度分析极差(一组数据中最大值与最小值之差)方差(一组数据中每个元素与均值偏离的大小)数组中的每个元素数组中所有元素的均值数组元素的个数标准差(方差的开方)分布形状偏度(是统计数据分布偏斜方向和程度的度量是统计数据分布非对称程度的数字特征)如果数据对称分布(例如正态分布) ⇒ 偏度为0如果数据左偏分布 ⇒ 偏度小于0如果数据右偏分布 ⇒ 则偏度大于0峰度(是描述总体中所有取值分布形态陡缓程度的统计量可理解为数据分布的高矮程度峰度的比较是相对于标准正态分布的)对于标准正态分布峰度为0如果峰度大于0则密度图高于标准正态分布数据在分布上比标准正态分布密集方差(标准差)较小如果峰度小于0则密度图低于标准正态分布数据在分布上比标准正态分布分散方差(标准差)较大变量类别变量(变量是一种分类e.g. 颜色性别职位...)无序类别变量(无大小顺序等级之分又称名义变量)有序类别变量(可按大小顺序等级区分又称等级变量)数值变量(变量是一个具体的值e.g. 1, 0.1...)连续变量(在一定区间内可以任意取值)离散变量(按一定顺序一一列举通常以整数位取值的变量)QA:当数据中用0和1表示性别(或其他类别变量)时此时0和1在实际意义上不做数值计算应映射为类别变量。均值、中位数与众数数值变量通常使用均值与中值表示集中趋势类别变量通常使用众数表示集中趋势在正态分布下三者是相同的。在偏态分布下三者会有所不同均值使用所有的数据进行计算因此容易受到极端值的影响中位数与众数不受极端值的影响因此会相对稳定众数在一组数据中可能不是唯一的三者的数量关系如下极差、方差与标准差极差的计算非常简单但是极差没有充分的利用数据信息方差(标准差)可以体现数据的分散性。方差(标准差)越大数据越分散方差(标准差)越小数据越集中方差(标准差)也可以体现数据的波动性(稳定性)。方差(标准差)越大数据波动性越大方差(标准差)越小数据波动性越小当数据较大时也可以使用n代替n-1代码实现import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsfrom sklearn.datasets import load_irisimport warnings# 设置seaborn绘图的样式sns.set(style darkgrid)plt.rcParams[font.family] SimHei # 正常显示中文标签plt.rcParams[axes.unicode_minus] False # 正常显示负号# 忽略警告信息warnings.filterwarnings(ignore)# 加载鸢尾花数据集iris load_iris() # dict[花萼的长度花萼的宽度花瓣的长度花瓣的宽度]# iris.data鸢尾花数据集# iris.target每朵鸢尾花对应的类别(三种类别取值为0,1,2)print(iris.data[0:10],iris.target[:10]) # 取前10条数据# iris.feature_names特征列的名称# iris.target_names鸢尾花类别的名称print(iris.feature_names,iris.target_names)输出结果# 将鸢尾花数据与对应的类型合并组合成完整的记录data np.concatenate([iris.data, iris.target.reshape(-1,1)], axis1) # 横向拼接data pd.DataFrame(data, columns[sepal_length,sepal_width,petal_length,petal_width,type])data.sample(10) # 任意取出10条数据输出结果iris.target.reshape( -1,1) 表示将一维数组转为二维数组1频数与频率# 计算鸢尾花数据中每个类别出现的频数frequency data[type].value_counts()print(frequency)# 计算每个类别出现的频率通常使用百分比表示percentage frequency * 100 / len(data)print(percentage)# 绘制条状图frequency.plot(kindbar)输出结果2均值、中位数以及众数# 计算花萼长度的均值mean data[sepal_length].mean()# 计算花萼长度的中位数median data[sepal_length].median()# 方法一计算花萼长度的众数s data[sepal_length].mode()print(s)# 注意mode方法返回的是Series类型mode s.iloc[0]print(mean, median, mode)# 方法二使用scipy中的stats模块获取花萼长度的众数from scipy import statsstats.mode(data[sepal_length]).mode# 绘制数据的分布(直方图密度图)sns.distplot(data[sepal_length])# 绘制垂直线plt.axvline(mean, ls-, colorr, label均值)plt.axvline(median, ls-, colorg, label中位数)plt.axvline(mode, ls-, colorindigo, label众数)plt.legend()输出结果3分位数# index为整数的情况x np.arange(10,19)n len(x)# 计算四分位的索引(index)q1_index (n-1) * 0.25q2_index (n-1) * 0.5q3_index (n-1) * 0.75print(q1_index, q2_index, q3_index)# 将index转换成整数类型index np.array([q1_index, q2_index, q3_index]).astype(np.int32)print(x[index])plt.figure(figsize(15,4))plt.xticks(x)plt.plot(x, np.zeros(len(x)), ls, markerD, ms15, label元素值)plt.plot(x[index], np.zeros(len(index)), ls, markerX, ms15, label四分位置)plt.legend()输出结果# index不为整数的情况x np.arange(10,20)n len(x)q1_index (n-1) * 0.25q2_index (n-1) * 0.5q3_index (n-1) * 0.75print(q1_index, q2_index, q3_index)# 使用该值临近的两个整数来计算四分位置index np.array([q1_index, q2_index, q3_index])# 计算index左边的整数值left np.floor(index).astype(np.int32)# 计算index右边的整数值right np.ceil(index).astype(np.int32)# 获取index的小数部分与整数部分(整数部分不使用变量名用下划线) weight, _ np.modf(index)# 根据左右两边的整数加权计算四分位数的值。权重与距离成反比q x[left] * (1-weight) x[right] * weightprint(q)plt.figure(figsize(15,4))plt.xticks(x)plt.plot(x, np.zeros(len(x)), ls, markerD, ms15, label元素值)plt.plot(q, np.zeros(len(q)), ls, markerX, ms15, label四分位置)for v in q: plt.text(v, 0.01, sv, fontsize15)plt.legend()输出结果# Numpy中计算分位数 np.quantile(x, q)/np.percentile(x, q)x [1, 3, 10, 15, 18, 20, 23, 40]print(np.quantile(x, q[0.25, 0.5, 0.75]))print(np.percentile(x, q[25, 50, 75]))输出结果quantile与percentile都可以计算分位数quantile方法中 q(要计算的分位数)的取值范围为[0,1]percentile方法中 q 的取值范围为[0,100]# Pandas中计算分位数 s.describe(percentiles)x [1, 3, 10, 15, 18, 20, 21, 23, 40]s pd.Series(x)print(s.describe())输出结果获取四分之一分位的值的方法A. s.describe()[4]B. s.describe()[25%]C. s.describe().iloc[4] (推荐使用)D. s.describe().loc[25%](推荐使用)E. s.describe().ix[4]F. s.describe().ix[25%]4极差、方差以及标准差# 计算极差sub1 data[sepal_length].max() - data[sepal_length].min()sub2 np.ptp(data[sepal_length]) # pandas 新版本中无法使用ptp()旧版本的可以使用如下# sub2 data[sepal_length].ptp()# 计算方差var data[sepal_length].var()# 计算标准差std data[sepal_length].std()print(sub1, sub2, var, std)输出结果5偏度以及峰度# 构造左偏分布数据t1 np.random.randint(1, 11, size100)t2 np.random.randint(11, 21, size500)t3 np.concatenate([t1, t2])left_skew pd.Series(t3)# 构造右偏分布数据t1 np.random.randint(1, 11, size500)t2 np.random.randint(11, 21, size100)t3 np.concatenate([t1, t2])right_skew pd.Series(t3)# 计算偏度print(left_skew.skew(), right_skew.skew())# 绘制核密度图sns.kdeplot(left_skew, shadeTrue, label左偏)sns.kdeplot(right_skew, shadeTrue, label右偏)plt.legend()输出结果# 标准正态分布standard_normal pd.Series(np.random.normal(0, 1, size10000))print(标准正态分布峰度, standard_normal.kurt(), 标准差, standard_normal.std())print(花萼宽度峰度, data[sepal_width].kurt(), 标准差, data[sepal_width].std())print(花瓣长度峰度, data[petal_length].kurt(), 标准差, data[petal_length].std())sns.kdeplot(standard_normal, label标准正态分布)sns.kdeplot(data[sepal_width], label花萼宽度峰度)sns.kdeplot(data[petal_length], label花瓣长度峰度)输出结果学习课程开课吧-大数据分析全栈课程