【python】描述性统计计算偏斜度和峭度

文章目录

1.编写计算偏斜度和峭度的函数。并用自己编写的函数计算课本23页的习题1.5数据的偏斜度和峭度。


方法一:(套公式)

python 复制代码
import random
import numpy as np
import pandas as pd
data = pd.read_excel("E:\习题1.5数据.xlsx")
data = np.array(data)
data_var = np.var(data) # 计算方差
data_mean = np.mean(data) # 计算均值
data_skewness = np.mean((data-data_mean)**3) # 计算偏斜度
data_kurtosis = np.mean((data-data_mean)**4)/pow(data_var,2) - 3 # 计算峭度
print('偏斜度和峭度:')
print(data_skewness,data_kurtosis,sep='\n')

方式二:(直接函数调用)

python 复制代码
import scipy.stats as stats
data_skewness = stats.skew(data)
data_kurtosis = stats.kurtosis(data)
print('偏斜度和峭度:')
print(data_skewness,data_kurtosis,sep='\n')

2.从1.5数据中随机抽取2个容量为20的样本,分别计算它们的平均数和标准差

python 复制代码
import random
import numpy as np
import pandas as pd
data = pd.read_excel("E:\习题1.5数据.xlsx")
data = np.array(data)
# 随机抽取2个容量为20的样本
data = list(data) # 将数组转为列表
sample1 = random.sample(data,20) # 样本1
sample2 = random.sample(data,20) # 样本2
sample1_mean = np.mean(sample1) # 计算样本1的均值
sample1_std = np.std(sample1) # 计算样本1的标准差
print('样本1的均值和标准差:')
print(sample1_mean,sample1_std,sep='\n')
sample2_mean = np.mean(sample2) # 计算样本1的均值
sample2_std = np.std(sample2) # 计算样本1的标准差
print('样本2的均值和标准差:')
print(sample2_mean,sample2_std,sep='\n')

3.请绘制给定数据的频率分布直方图,计算数据的均值、标准差、偏斜度和峭度。

python 复制代码
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = 'Simhei'
plt.rcParams['axes.unicode_minus'] = False

data = pd.read_excel("E:\data.xlsx")
data = np.array(data)
# 计算数据的频率分布
counts,bins = np.histogram(data)
# 绘制直方图
plt.hist(data,bins = bins,align='left',rwidth=0.9)
plt.title('鱼类体长数据的频率分布直方图')
plt.xlabel('鱼的体长')
plt.ylabel('频率')
# 显示图形
plt.show()

data_mean = np.mean(data) # 计算均值
data_var = np.var(data) # 计算方差
data_std = np.std(data) # 计算标准差
data_skewness = np.mean((data-data_mean)**3) # 计算偏斜度
data_kurtosis = np.mean((data-data_mean)**4)/pow(data_var,2) - 3 # 计算峭度
print('均值、标准差、偏斜度、峭度分别为:')
print(data_mean,data_std,data_skewness,data_kurtosis,sep='\n')

4.仿照所给图像,生成p=0.1、0.3、0.5、0.7和0.9的二项分布曲线,作在同一张图上。

python 复制代码
import matplotlib.pyplot as plt
from scipy.stats import binom
import numpy as np
plt.rcParams["font.sans-serif"] = 'Simhei'
plt.rcParams['axes.unicode_minus'] = False

# 指定试验次数n
n = 10
# 指定p值列表
p_values = [0.1, 0.3, 0.5, 0.7, 0.9]
# 绘图
plt.figure()
for i, p in enumerate(p_values):
    # 计算二项分布的概率
    y = binom.pmf(np.arange(n + 1), n, p)
    # 绘制曲线
    plt.plot(np.arange(n + 1), y, label=f'p={p}')

# 设置图表标题和轴标签
plt.title('二项分布曲线')
plt.xlabel('x')
plt.ylabel('概率')
plt.legend()
# 显示图表
plt.show()
相关推荐
apocelipes11 小时前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
用户83562907805112 小时前
使用 Python 在 PDF 中创建与管理书签
后端·python
MeixianAgent17 小时前
Python 回测数据入口怎么验?历史 K 线入库前先做 5 个检查
后端·python
咕白m62520 小时前
用 Python 实现一键批量查找与替换 Excel 数据
后端·python
SelectDB2 天前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
荣码2 天前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
金銀銅鐵2 天前
[Python] 基于欧几里得算法,实现分数约分计算器
python·数学
Lyn_Li2 天前
Kaggle Top 5 | 198只股票、200条数据的金融预测——BattleFin高分方案从零复现
python·kaggle·比赛复盘·金融预测
小九九的爸爸3 天前
前端想要入门Agent开发,要具备哪些Python基础?
python·agent·ai编程
阿耶同学3 天前
手把手教你用 LangGraph 搭建三层嵌套 Agent 架构
python·程序员