0
我想最大化關於theta參數的似然函數。似然函數被定義爲:使似然函數最大化
from scipy.optimize import minimize
def prloglik(theta,n,r):
N=theta;k=len(n)
ar1=np.sum(np.log(np.array(range(N))+1))
ar2=np.sum(n)*np.log(np.sum(n)/(k*N))
ar3=(k*N-np.sum(n))*np.log(1-(np.sum(n))/(k*N))
par=np.sum(np.log(np.array(range(N-r))+1))
return(-(ar1+ar2+ar3-par))
我使用:
res=minimize(prloglik,1000,method='BFGS',args=(nn,962))
凡nn
是numpy的陣列。我得到這個錯誤:
TypeError: only integer arrays with one element can be converted to an index
任何人都可以幫我嗎?
嘗試添加一些打印語句?該函數的參數參數作爲數組傳遞,所以theta以[1000]開始。另外,該參數是否必須是一個整數?我相信scipy.optimize.minimize不允許這樣做,因爲它需要浮點參數來獲得衍生物等。 – xioxox
好吧,我是Python的新手我主要使用R,當你說打印語句是什麼意思? – Alex
您可以在函數頂部添加print(theta,n,r)來顯示傳遞給函數的內容。 – xioxox