2016-06-07 61 views
0

我想建立使用基於該視頻數據和模型pymc3一個模型的Emax .. (約40分鐘中)在pymc3創建的Emax模型

https://www.youtube.com/watch?v=U9Nf-ZYHRQA&feature=youtu.be&list=PLvLDbH2lpyXNGV8mpBdF7EFK9LQJzGL-Y

這裏是顯示屏幕截圖模型... enter image description here

我的代碼是在這裏...

pkpd_model = Model() 

with pkpd_model: 

# Hyperparameter Priors 
mu_e0 = Normal('mu_e0', mu=0, tau =1000) 
tau_e0 = Uniform('tau_e0', lower=0, upper =100) 

mu_emax = Normal('mu_emax', mu=0, tau =1000) 
tau_emax = Uniform('tau_emax', lower=0, upper =100) 

e0 = Lognormal('e0', mu = mu_e0, tau=tau_e0, shape =n_studies) 
emax= Lognormal('emax', mu = mu_emax, tau =tau_emax, shape =n_studies) 
ed50 = Lognormal('ed50', mu=1, tau = 1000) 

# Normalise sigma for sample size 
sigma = np.sqrt(np.square(Uniform('sigma', lower = 0, upper = 1000))/n) 


# Expected value of outcome 
resp_median = e0[study] + (emax[study]*dose)/(ed50+dose) 


# Likelihood (sampling distribution) of observations 
resp = Lognormal('resp', mu=resp_median, tau =sigma, observed =mean_response) 
resp_pred = Lognormal('resp_pred', mu=resp_median, tau =sigma, shape =len(dose)) 

的型號R沒有問題,也沒有問題,只是模型參數的後驗估計並不接近我的預期。例如我的emax估計大約是2,但是你可以從數據中清楚地看到它應該在10左右。所以我只能假設我在構建模型時犯了一個錯誤,但是我不能爲我的生活看到它是什麼是。

你能幫忙嗎?

感謝

馬克

回答

0

重新審視模型的規格後,我看到了resp_median實際上是表達的日誌。所以...

esp_median = np.log(e0[study] + (emax[study]*dose)/(ed50+dose)) 

改善了事情。不過,我仍然不確定我是否正確指定了發行版。任何指針任何人?