亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從累積分布函數計算分布中位數

從累積分布函數計算分布中位數

繁花不似錦 2023-03-16 16:14:29
我有一個密度函數定義如下:def f(x):   if 0<=x<=1:      return 0.5   elif 1<x<=3:      return 0.25   else:      return 0.0我向量化了密度函數:f = np.vectorize(f)然后我定義了 X 數組X = np.arange(-10,10,0.001)最后,CDF:def CDF(x):   return quad(f, -np.inf,x)CDF = np.vectorize(CDF)CDF_calculated,err=CDF(X)現在我想計算median = np.round(X[np.where(CDF_calculated==0.5)][0])我在這里寫的正確嗎?
查看完整描述

1 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

如果函數是已知的,我會使用它的解析積分。對于中值計算,我會使用類似二分法的方法(因為函數不平滑)


import numpy as np

from scipy.optimize import bisect


def f(x):

   if 0<=x<=1:

      return 0.5

   elif 1<x<=3:

      return 0.25

   else:

      return 0.0


  

def cdf(x):

    if 0<=x<=1:

        return 0.5*x

    elif 1<x<=3:

        return 0.5 + 0.25*(x-1)

    elif x<0:

        return 0.0

    else:

        return 1



f = np.vectorize(f)

cdf = np.vectorize(cdf)


fbisect = lambda v: cdf(v) - 0.5


median = bisect(fbisect,0,3)

print(median)


查看完整回答
反對 回復 2023-03-16
  • 1 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號