กำหนด pdf ที่ต่อเนื่องและไม่วิเคราะห์ใน python

Oct 30 2020

ฉันกำลังวางแผนที่จะทำพีชคณิตพื้นฐานเกี่ยวกับตัวแปรสุ่มแบบต่อเนื่องและไม่วิเคราะห์ ฉันต้องการกำหนดฟังก์ชันความหนาแน่นของความน่าจะเป็นเป็นอาร์เรย์ x และ f (x)

แต่ฉันรู้สึกประหลาดใจที่พบว่าดูเหมือนจะไม่มีแพ็คเกจใดที่ดำเนินการขั้นพื้นฐานเช่นการคำนวณผลรวมหรือการแจกแจงผลิตภัณฑ์ของไฟล์ PDF สองไฟล์ (โปรดแก้ไขฉันหากฉันผิด) ในการดำเนินการเหล่านั้นด้วยตัวเองฉันจึงวางแผนที่จะสร้างคลาสย่อยของ scipy.stats rv_continuous ตามหัวข้อนี้ :

import scipy as sp
import numpy as np

class my_pdf(sp.stats.rv_continuous):
    def __init__(self,x,p):
        self.x = x
        self.p = p
    
    def _pdf(self,x):
        return sp.interpolate.interp1d(self.x,self.p)(x)

x = np.linspace(0,1,101)
f = 3*x**2
my_cv = my_pdf(x,f)
my_cv.pdf(0)

อย่างไรก็ตามการเขียนทับเมธอดinitอาจไม่ใช่วิธีที่จะไป มีวิธีเพิ่มพารามิเตอร์เพิ่มเติมให้กับ rv_continuous หรือวิธีอื่นในการแก้ไขปัญหานอกเหนือจากการสร้างทุกอย่างตั้งแต่เริ่มต้นหรือไม่?

คำตอบ

Yann Nov 05 2020 at 21:16

ดังนั้นหากใครสะดุดอีกครั้งมีคำตอบที่นี่ :

import scipy as sp
import scipy.stats
import numpy as np

class my_pdf(sp.stats.rv_continuous):
    def __init__(self,x,p):
        super().__init__(a=x.min(), b=x.max())
        self.x = x
        self.p = p

    def _pdf(self,x):
        return sp.interpolate.interp1d(self.x,self.p)(x)

x = np.linspace(0,1,101)
f = 3*x**2
my_cv = my_pdf(x,f)
my_cv.pdf(0)
my_cv.cdf(0.5)

ยังฉันรู้สึกว่าควรมีแพ็คเกจสำหรับการดำเนินการกับตัวแปรสุ่มประเภทนี้หรือไม่?