我正在尝试使用熊猫数据框最大化对数似然函数。我有33281个观测值,并且正在使用矩阵X和J(在这里用假矩阵代替)。我在函数中所做的所有事情对我来说似乎都是合法的,但我不断收到2个错误:(1)如果使用正确数量的观察值,它将永不停止计算且不会报告任何结果。 (2)如果减少观察次数并尝试使用最小化,则会出现以下错误ValueError: setting an array element with a sequence.
这是我的代码
X = np.ones((33281,1))
J = np.ones((33281,6))
beta = -0.1
def logit_logl(beta, X, J):
n = X.shape[0]
X = np.array(X, ndmin = 2)
J = np.array(J, ndmin = 2)
Xbeta = X * beta
numerator = np.exp(Xbeta)
denominator = np.zeros((n,1))
for i in range(0, 5):
var = J[:,i]
column = np.exp( var * beta )
denominator = denominator + column
individual_logl = np.log( numerator / denominator )
log_l = - np.sum(individual_logl, axis=0)
return log_l
args = (X, J)
result1 = minimize(logit_logl, beta, args)