Я пытаюсь построить матрицу переходов из наблюдений за данными панели, чтобы получить оценки ML взвешенной матрицы переходов. Ключевым шагом является получение индивидуальной функции правдоподобия для отдельных лиц. Скажем, у вас есть следующий фрейм данных:
ID Feature1 Feature2 Transition
120421006 10000 1 ab
120421006 12000 0 ba
120421006 10000 1 ab
123884392 3000 1 ab
123884392 2000 0 ba
908747738 1000 1 ab
Идея состоит в том, чтобы вернуть для каждого агента логарифмическую вероятность его пути. Например, для агента 120421006 это сводится к (игнорируя начальный термин)
LL = log(exp(Yab)/1 + exp(Yab)) + log(exp(Yba)/(1 + exp(Yba))) + log(exp(Yab)/1 + exp(Yab))
i.e,
журнал (exp (Y_transition)/(1 + exp (Y_transition)))
где Y_transition = xFeature1 + yFeature2 для этого перехода, а x и y неизвестны.
Например, для индивидуума 120421006 это сведется к выражению с тремя элементами, так как он делает переход трижды, и функция вернет
LL = log(exp(10000x + 1y)/ 1 + exp(10000x + 1y)) +
log(exp(12000x + 0y)/ 1 + exp(12000x + 0y)) +
log(exp(10000x + 1y)/ 1 + exp(10000x + 1y))
И вот загвоздка: мне нужно, чтобы x и y возвращались как неизвестные, поскольку цель состоит в том, чтобы получить сумму вероятностей всех людей, чтобы передать ее оценщику ML. Как бы вы автоматизировали функцию, которая возвращает этот вывод для всех идентификаторов?
Спасибо заранее