做基金哪个网站好,企业网站服务器多少钱,wordpress 投票 评分 插件,wordpress 443端口scipy.stats.norm.ppf用于计算正态分布的累积分布函数CDF的逆函数#xff0c;也称为百分位点函数。它的作用是根据给定的概率值#xff0c;计算对应的随机变量值。scipy.stats.norm.interval#xff1a;用于计算正态分布的置信区间#xff0c;可指定均值和标准差。scipy.st…scipy.stats.norm.ppf用于计算正态分布的累积分布函数CDF的逆函数也称为百分位点函数。它的作用是根据给定的概率值计算对应的随机变量值。scipy.stats.norm.interval用于计算正态分布的置信区间可指定均值和标准差。scipy.stats.t.interval用于计算t分布的置信区间可选择使用不同的置信水平和自由度。 利用norm.ppfnorm.interval分别计算正态置信区间:
import scipy.stats as stats
import numpy as np
# 指定概率值例如95% 置信水平对应的概率
alpha 0.05# 指定样本数据和样本大小
# data [32, 34, 36, 35, 33, 31, 32, 33, 30, 34]
data [34,56,39,71,84,92,44,67,98,49,55,73,50,62,75,44,88,53,61,25,36,66,77,35]
sample_size len(data)# 执行DAgostinos K-squared检验
stat, p_value stats.normaltest(data)
# 输出结果
print(-------------------)
print(K-squared正态检验统计量:, stat)
print(K-squared正态检验P-value:, p_value)
# 判断是否符合正态分布的零假设
alpha 0.05 # 显著性水平
if p_value alpha:print(拒绝零假设数据不符合正态分布。)
else:print(p_value0.05无法拒绝零假设数据符合正态分布。)
print(-------------------)# 计算样本均值和标准误差标准差除以样本大小的平方根
sample_mean sum(data) / sample_size
sample_std (sum([(x - sample_mean) ** 2 for x in data]) / (sample_size - 1)) ** 0.5
standard_error sample_std / (sample_size ** 0.5)# 使用百分位点函数计算置信区间的上下限
confidence_interval_lower stats.norm.ppf(alpha / 2, locsample_mean, scalestandard_error)
confidence_interval_upper stats.norm.ppf(1 - alpha / 2, locsample_mean, scalestandard_error)# 输出置信区间的上下限
print(置信区间的下限, confidence_interval_lower)
print(置信区间的上限, confidence_interval_upper)print(-------------------)
# 计算正态分布的置信区间
confidence_interval stats.norm.interval(1 - alpha, locsample_mean, scalesample_std / np.sqrt(sample_size))
# 输出计算结果
print(norm.interval正态分布的置信区间, confidence_interval)print(--------t分布结果是不是与上面的很接近?-----------)
# 计算t分布的置信区间
t_confidence_interval stats.t.interval(1 - alpha, dfsample_size - 1, locsample_mean, scalesample_std / np.sqrt(sample_size))
# 输出计算结果
print(t分布的置信区间, t_confidence_interval)# -------------------
# K-squared正态检验统计量: 1.12645322945576
# K-squared正态检验P-value: 0.5693689625161796
# p_value0.05无法拒绝零假设数据符合正态分布。
# -------------------
# 置信区间的下限 51.79799091398577
# 置信区间的上限 67.70200908601423
# -------------------
# norm.interval正态分布的置信区间 (51.79799091398577, 67.70200908601423)
# -------------------
# t分布的置信区间 (51.356996738889045, 68.14300326111095)
# [Finished in 5.5s]
附录多种方式正态检验
import numpy as np
import pandas as pd
import scipy.stats as stats
import matplotlib.pyplot as plt# data np.random.normal(loc12, scale2.5, size340)
data [34,56,39,71,84,92,44,67,98,49,55,73,50,62,75,44,88,53,61,25,36,66,77,35]
df pd.DataFrame({Data: data})# 描述性统计分析
mean df[Data].mean()
std_dev df[Data].std()
skewness df[Data].skew()
kurtosis df[Data].kurtosis()print(均值:, mean)
print(标准差:, std_dev)
print(偏度:, skewness)
print(峰度:, kurtosis)# 创建一个2x1的子图布局
fig, (ax1, ax2) plt.subplots(2, 1, figsize(6, 6))
# 可视化 - 正态概率图(Q-Q图)
stats.probplot(data, plotax1, distnorm, fitTrue, rvalueTrue) #ax1作为绘图的位置
ax1.set_title(Q-Q Plot)# 可视化 - 直方图
ax2.hist(data, bins6, rwidth0.8, densityTrue) # bins个柱状图,宽度是rwidth(0~1),1没有缝隙
ax2.set_title(Histogram with Kernel Density Estimate)# 调整子图之间的间距
plt.tight_layout()
# 显示图形
plt.show()# 正态性检验 - Shapiro-Wilk检验
stat, p stats.shapiro(data)
print(Shapiro-Wilk检验统计量:, stat)
print(Shapiro-Wilk检验p值:, p)# Anderson-Darling检验
result stats.anderson(df[Data], distnorm)
print(Anderson-Darling检验统计量:, result.statistic)
print(Anderson-Darling检验临界值:, result.critical_values)# 执行单样本K-S检验假设数据服从正态分布
statistic, p_value stats.kstest(data, norm)
print(K-S检验统计量:, statistic)
print(K-S检验p值:, p_value)# 执行正态分布检验
k2, p_value stats.normaltest(data)
print(fnormaltest正态分布检验的统计量 (K^2): {k2})
print(fnormaltest检验p值: {p_value})