logo
Loading...

D6 - CDF 和 ECDF 的差別 - Cupoy

請問 CDF 和 ECDF 的差別,以及他們兩個所代表的意義 ?另外,發現有兩種畫法,圖形類似差在平...

m100-2,m100-2-d06

D6 - CDF 和 ECDF 的差別

2019/05/18 上午 01:54
機器學習共學討論版
Yen Ming
觀看數:169
回答數:2
收藏數:0
m100-2
m100-2-d06

請問 CDF 和 ECDF 的差別,以及他們兩個所代表的意義 ?

另外,發現有兩種畫法,圖形類似差在平滑程度,這兩張圖片代表 CDF 和 ECDF 嗎 ?

# CDF vs ECDF

plt.figure(figsize=(16, 6))

cdf = np.cumsum(app_train['REGION_POPULATION_RELATIVE'].value_counts().sort_index())
x, y = list(cdf.index), cdf / cdf.max()

plt.subplot(1, 2, 1)
plt.plot(x, y)
plt.title('CDF')

= np.sort(app_train['REGION_POPULATION_RELATIVE'])
= np.arange(1, len(x)+1) / len(x)

plt.subplot(1, 2, 2)
plt.plot(x, y)
plt.title('ECDF')

plt.show()

回答列表

  • 2019/05/20 下午 08:29
    Seanyu.TW
    贊同數:0
    不贊同數:0
    留言數:0

    Hi,

    CDF 是從理論函數來的,ECDF 則是由觀察值所得到的,所以你的兩張圖中,左邊是 ECDF,右邊則是...兩者皆非 (它只是一個排序 index / total_index)。

    所謂 CDF 從理論函數而來的意思是,你可以從一些統計函式中 (比如 np.random.randn),隨機生成 n 個樣本,用這 n 個樣本依序累加並除以總數就是 CDF;而 ECDF 則是根據你的觀察資料而來,你的觀察資料在觀察點越多、某些條件符合下,會非常接近於常態分佈,於是你所得到的 ECDF 會與從 normal_dist 隨機抽樣出來所得到的 CDF 十分相似,但假若你所關注的資料背後並不符合常態,而是來自其他分布,則你看到的 ECDF 就會與以常態得來的 CDF 有些不同。

    希望這有解決你的問題。

  • 2019/05/21 下午 02:28
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:0

    嗨,可以參考這一張圖:




    其實這兩張圖的概念是一樣的,都是累積的數值。CDF 是概念理論上的,所以看起來是平滑的,但 ECDF 是實際算出來的,所以會有一些曲折。


    Reference: https://stats.stackexchange.com/questions/239937/empirical-cdf-vs-cdf