Похоже, проблема с кодом - мои ограничения.Я ищу модель занятости на уровне штата и сектора.Поэтому я хочу убедиться, что общая смоделированная занятость для каждого штата равна общей зарегистрированной занятости для каждого штата.
Для моего ограничения я присоединяю смоделированный кадр данных (1D) к исходной таблице (сцепление) и выполняю команду суммирования (группирование по коду состояния).
def Constraint_STBalance(x):
TableRebuild = ST_2d_total #<-outside table, orginal data.
TableRebuild['Table_EMP_MOD'] = x
TableRebuild['EMPNEW'] = TableRebuild['Table_EMP_MOD'] + TableRebuild['EMP_ADJ']
sumby2d = TableRebuild.groupby(['FIPSTATE'], as_index=False)['EMP_NEW'].sum()
return sumby2d['EMP_NEW'] - ST_total['EMP'] #<-outside table, reference data.
scipy.optimize.minimize с методом SLSQP возвращает код ошибки 6, который ссылается на проблему с «матрицей LSQ», которая, как я могу определить, связана с матрицами якобиана и гессиана.
Я думаю, что использование sumby меняет размеры якобианской и гессианской матриц, но я, по общему признанию, новичок в оптимизации.Кто-нибудь знает, что «sumby» можно использовать таким образом, или, возможно, есть какой-то обходной путь, который я пропускаю?