使用numpy.trapz()计算pdf
我有一些polar使用numpy.trapz()计算pdf,numpy,probability-density,Numpy,Probability Density,我有一些polar[R,theta]数据,我想将其表示为pdf格式 据我所知,我只是规范化了数据,所以它的积分是1 我正在使用numpy.trapz()方法,但对语法有点不确定 下面的代码显示了我尝试过的内容,我希望输出在(0,1>范围内,但它们似乎有点高 我是否正确使用了.trapz()方法? .trapz()是否适用于循环数据 theta = np.linspace( -np.pi, np.pi, 50 ) r = np.array([ 1.23445554e-02, 3.03
[R,theta]
数据,我想将其表示为pdf格式
据我所知,我只是规范化了数据,所以它的积分是1
我正在使用numpy.trapz()
方法,但对语法有点不确定
下面的代码显示了我尝试过的内容,我希望输出在(0,1>
范围内,但它们似乎有点高
我是否正确使用了.trapz()
方法?.trapz()
是否适用于循环数据
theta = np.linspace( -np.pi, np.pi, 50 )
r = np.array([ 1.23445554e-02, 3.03557798e-02, 7.02699393e-02,
1.51352457e-01, 3.00238850e-01, 5.43818199e-01,
8.93133849e-01, 1.32293971e+00, 1.76077447e+00,
2.10102936e+00, 2.24555703e+00, 2.15016660e+00,
1.84666100e+00, 1.42543142e+00, 9.91689535e-01,
6.24126941e-01, 3.56994042e-01, 1.86663166e-01,
8.98562553e-02, 4.01629846e-02, 1.68354083e-02,
6.69424846e-03, 2.55748908e-03, 9.52021934e-04,
3.50547486e-04, 1.29726513e-04, 4.90546282e-05,
1.92776373e-05, 8.00850696e-06, 3.57673721e-06,
1.74551297e-06, 9.45084654e-07, 5.75501932e-07,
3.98658528e-07, 3.16843272e-07, 2.90421340e-07,
3.07486145e-07, 3.75264328e-07, 5.25073662e-07,
8.35385632e-07, 1.49531795e-06, 2.97409444e-06,
6.48232116e-06, 1.52539070e-05, 3.81503341e-05,
9.97843762e-05, 2.68504223e-04, 7.31213584e-04,
1.98302971e-03, 5.27234229e-03
]
)
r_pdf = r / np.trapz( r, x = theta )
print r_pdf.max()
fig = plt.figure()
ax = fig.add_subplot( 111, polar = True )
ax.plot( theta, r, lw = 3 )
ax.plot( theta, r_pdf, lw = 3 )
我希望输出在0-1范围内,但它们似乎有点高。请注意,这是一个常见的误解:事件aP(a)
的概率不能大于1
。概率密度不是这样。一个很好的例子是考虑[0,0.5]范围内的均匀分布
。由于pdf
是赋范的,所以0
和0.5
之间的密度的积分必须是1
。如果你计算积分,你会发现密度实际上是2
:)我不这么认为,1/(b-a)在0,0.5之间的积分是1。你认为到底错了什么?当然积分是1,这是因为均匀分布是一个适当的概率分布。但这不是重点。问题是,p(1/(b-a))
=p(1/0.5)
=2
1
。我明白你的意思了。这只是语义,你的意思是,当计算分布时,它可以大于1,对我来说,计算积分意味着进行积分:)但还是非常有用的。