Я не могу запустить ваш код, так как для этого требуются некоторые наборы инструментов, которых у меня нет.Тем не менее, следующая строка:
tau_hat(ii) = max(Lkeh);
даст вам значение максимума вероятности.Это не то, что вы действительно ищете, то есть tay_hat , при котором достигается ваше максимальное правдоподобие.
Вам нужна функция tay, которая отображает tay_hat в правдоподобие для данного значенияиз tay_hat.Предположим, это то, что вы делаете здесь, я не уверен, где зависимость от tay_hat.Предположим, что Lkeh - это то, что я только что описал, тогда
[maxLikelihoodValue, maxLikelihoodIndex] = max(Lkeh);
, используя оба выхода функции max, вы получите максимальное значение правдоподобия и, прежде всего, индекс, при котором этот максимум достигается.Если вы явно определили вектор tay, tay_hat будет дано просто как
tay_hat = tay (maxLikelihoodIndex);
, поэтому в основном это значение tay, для которого вы получаете максимальную вероятность, а несамо максимальное правдоподобие.
Чтобы дать вам игрушечный пример, предположим, что ваша функция правдоподобия L (x) = -x ^ 2 - 2 * x,
предположим, что она дискретна, так что
x = linspace(-2,2,30);
, тогда дискретная версия L будет
L_x = -x.^2 -2*x;
, тогда максимальное значение правдоподобия будет просто дано как
max(L_x);
, что составляет 0.9988 (на самом деле близко к точному значению)
, но вы получаете the value of x at which this maximum occurs
.
Поэтому вы сначала извлекаете индекс в той последовательности, в которой вы получаете максимум, через:
[maximumLikelihood, maxLikIndex ] = max(L_x) ;
, а затем найдите оценку x по этому самому индексу, просто запрашивая значение x по этому индексу с:
x (maxLikIndex)
, что составляет около -1,0, как и ожидалось.В вашем примере вы хотите оценить наиболее вероятное значение tau_hat, которое (в структуре для часто используемых) определяется значением, которое максимизирует вашу функцию (которая не является максимумом самой функции).