python 服从正态分布下概率密度函数

python 服从正态分布下概率密度函数

服从正太分布下,概率密度函数公式

在这里插入图片描述
公式解释:
f(x): 是某样本(样本以数值形式表现)为某数值时发生的概率
0<f(x)<1

x: 是随机抽样的数值,取值范围从负无穷大到正正无穷大
e: 是自然数
σ: 是样本的标准差
μ:是样本的算术平均值(也叫均值)

对服从正太分布下,概率密度函数的理解:
(1) 当自变量x=μ时,f(x)取的最大值, 最大值=f(x=μ)
即:当自变量取值为均值时,发生的概率最大(或者说:发生概率最大的数是均值)

(2) 概率密度函数的图像(曲线图像)关于x=μ对称

(3) 标准差σ越大, 则图像峰值(峰值也就是概率最大值,即:峰值=f(x=μ))越小

(4) 概率最小值趋近于0

应用python绘制图像

"""
绘制正太分布函数曲线图

"""
import matplotlib.pyplot as plt
import math
import numpy as np
import matplotlib

matplotlib.rcParams['axes.unicode_minus']=False#解决保存图像时负号'-'显示为方块的问题
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体

x = np.linspace(-10,30,num=1000)  # x轴的取值范围
std1 = 1 # 定义标准差, 并输入标准差
mean1 = 10  # 定义均值,并输入均值
fx1 = 1 / (std1 * pow(2 * math.pi, 0.5)) * np.exp(-((x - mean1) ** 2) / (2 * std1 ** 2))  # 概率密度函数公式

std2 = 2
mean2 = 10
fx2 = 1 / (std2 * pow(2 * math.pi, 0.5)) * np.exp(-((x - mean2) ** 2) / (2 * std2 ** 2))  # 概率密度函数公式

std3 = 4
mean3= 10
fx3 = 1 / (std3 * pow(2 * math.pi, 0.5)) * np.exp(-((x - mean3) ** 2) / (2 * std3 ** 2))  # 概率密度函数公式

std4 = 8
mean4 = 10
fx4 = 1 / (std4 * pow(2 * math.pi, 0.5)) * np.exp(-((x - mean4) ** 2) / (2 * std4 ** 2))  # 概率密度函数公式

# 多条曲线在同一张图上进行对比
plt.plot(x, fx1,label = 'std1 = 1')  # 绘制概率密度函数图像
plt.plot(x,fx2,label = 'std2 = 2')
plt.plot(x,fx3,label = 'std3 = 4')
plt.plot(x,fx4,label = 'std4 = 8')
plt.legend() # 显示标签 label
plt.xlabel("数值")
plt.ylabel('数值的概率')
plt.title('服从正太分布的概率密度图')
plt.show()  # 显示图像

显示图像
在这里插入图片描述
由图像可知道: 标准差std 越大, 则峰值越小.(代码设置了均值相同)

稍微修改均值和标准差后,重新绘图, 如下:

import matplotlib.pyplot as plt
import math
import numpy as np
import matplotlib

matplotlib.rcParams['axes.unicode_minus']=False#解决保存图像时负号'-'显示为方块的问题
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体

x = np.linspace(-10,30,num=1000)  # x轴的取值范围
std1 = 3 # 定义标准差, 并输入标准差
mean1 = 6  # 定义均值,并输入均值
fx1 = 1 / (std1 * pow(2 * math.pi, 0.5)) * np.exp(-((x - mean1) ** 2) / (2 * std1 ** 2))  # 概率密度函数公式

std2 = 3
mean2 = 10
fx2 = 1 / (std2 * pow(2 * math.pi, 0.5)) * np.exp(-((x - mean2) ** 2) / (2 * std2 ** 2))  # 概率密度函数公式

std3 = 3
mean3= 12
fx3 = 1 / (std3 * pow(2 * math.pi, 0.5)) * np.exp(-((x - mean3) ** 2) / (2 * std3 ** 2))  # 概率密度函数公式

std4 = 3
mean4 = 18
fx4 = 1 / (std4 * pow(2 * math.pi, 0.5)) * np.exp(-((x - mean4) ** 2) / (2 * std4 ** 2))  # 概率密度函数公式

# 多条曲线在同一张图上进行对比
plt.plot(x, fx1,label = '均值 = 6')  # 绘制概率密度函数图像
plt.plot(x,fx2,label = '均值 = 10')
plt.plot(x,fx3,label = '均值 = 12')
plt.plot(x,fx4,label = '均值 = 18')
plt.legend() # 显示标签 label
plt.xlabel("数值")
plt.ylabel('数值的概率')
plt.title('服从正太分布的概率密度图')
plt.show()  # 显示图像

图像显示:
在这里插入图片描述
由图像看出, 当标准差相同时(代码设置标准差相同), 峰值相同, 均值不同时, 对称轴位置不同

再次修改代码对标准差和均值重新赋值(可跳过不用看代码, 直接看图像)

import matplotlib.pyplot as plt
import math
import numpy as np
import matplotlib

matplotlib.rcParams['axes.unicode_minus']=False#解决保存图像时负号'-'显示为方块的问题
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体

x = np.linspace(-10,30,num=1000)  # x轴的取值范围
std1 = 3 # 定义标准差, 并输入标准差
mean1 = 6  # 定义均值,并输入均值
fx1 = 1 / (std1 * pow(2 * math.pi, 0.5)) * np.exp(-((x - mean1) ** 2) / (2 * std1 ** 2))  # 概率密度函数公式

std2 = 5
mean2 = 10
fx2 = 1 / (std2 * pow(2 * math.pi, 0.5)) * np.exp(-((x - mean2) ** 2) / (2 * std2 ** 2))  # 概率密度函数公式

std3 = 6
mean3= 12
fx3 = 1 / (std3 * pow(2 * math.pi, 0.5)) * np.exp(-((x - mean3) ** 2) / (2 * std3 ** 2))  # 概率密度函数公式

std4 = 2
mean4 = 18
fx4 = 1 / (std4 * pow(2 * math.pi, 0.5)) * np.exp(-((x - mean4) ** 2) / (2 * std4 ** 2))  # 概率密度函数公式

# 多条曲线在同一张图上进行对比
plt.plot(x, fx1,label = '均值 = 6, 标准差=3')  # 绘制概率密度函数图像
plt.plot(x,fx2,label = '均值 = 10, 标准差=5')
plt.plot(x,fx3,label = '均值 = 12, 标准差=6')
plt.plot(x,fx4,label = '均值 = 18, 标准差=2')
plt.legend() # 显示标签 label
plt.xlabel("数值")
plt.ylabel('数值的概率')
plt.title('服从正太分布的概率密度图')
plt.show()  # 显示图像

图像显示:

在这里插入图片描述
通过图像可以观查出均值和标准差对概率的影响, 验证了上述的结论

最后: 本人又另写一篇关于服从正太分布概率 离散情况下 概率密度函数和累积密度函数的文章. 有疑惑的可以查看一下

  • 8
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,可以使用SciPy库的stats模块来计算正态分布概率密度函数。具体代码如下: ```python import numpy as np import matplotlib.pyplot as plt from scipy.stats import norm x = np.linspace(-5, 5, 100) # 生成一组x值 y = norm.pdf(x, 0, 1) # 计算正态分布概率密度函数值 plt.plot(x, y) plt.xlabel('x') plt.ylabel('Probability Density') plt.title('Normal Distribution PDF') plt.show() ``` 其中,norm.pdf函数用于计算正态分布概率密度函数值,参数依次为x值、均值和标准差。以上代码将生成一个从-5到5的x坐标范围内的正态分布概率密度函数图形。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python 服从正态分布概率密度函数](https://blog.csdn.net/with_still_water/article/details/102493308)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.268^v1^control"}}] [.reference_item style="max-width: 50%"] - *2* *3* [给定概率密度,生成随机数 python实现](https://blog.csdn.net/normol/article/details/98968528)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.268^v1^control"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值