2017-01-27 31 views
1

我正在看一個在pymc3中實現了CMPoisson模型的人的要點。不幸的是,有兩個步驟我不確定。在模型的主要建築物。帶有令人困惑的數據參數的pymc3中的Conway-Maxwell泊松模型

(GIST可以在這裏找到:https://gist.github.com/dadaromeo/33e581d9e3bcbad83531b4a91a87509f

  1. 在測試數據的建設,他用兩個步驟來計算的數據:

    n,d = 1000, 4 
    X = np.abs(np.random.randn(n,d)) 
    y = np.round(X.sum(axis=1)).astype(int) 
    

我m試圖找出爲什麼使用兩步過程?它是否創建與泊松類似的數據,但具有CMPoisson分佈的特徵?

  • 在pymc3模型中,參數是用X數組計算:

    with cmp_model: 
        alpha = pm.Normal("alpha", mu=1) 
        beta = pm.Normal("beta", mu=1, shape=d) 
        lam = alpha + tt.dot(X,beta) 
        nu = pm.HalfNormal("nu", sd=10) 
    
        like = CMPoisson("like", lamda=lam, nu=nu, observed=y) 
    
  • 爲什麼呢?由於我使用真實數據(看起來像y),我不確定我的相應X值來自哪裏?

    任何幫助非常感謝!

    回答

    0

    你是對的第一步。他只是爲他的問題生成綜合數據。關於第二步,他正在進行CMPoisson迴歸,即像「常規」線性迴歸,但可能性不是高斯分佈。

    我想你沒有任何X.如果是這樣的話,那麼你的模型應該是這樣的:

    with cmp_model: 
        lam = pm.HalfNormal("lam", sd=10) 
        nu = pm.HalfNormal("nu", sd=10) 
    
        like = CMPoisson("like", lamda=lam, nu=nu, observed=y) 
    

    我不熟悉的康威 - 麥克斯韋分佈,但現在看來,這是用來模型過度分散的數據不能很好地修復泊松分佈。如果您發現它很有用,PyMC3具有負二項分佈,它也用於模擬過分散計數數據。