Matlab - Символьное исчисление оценки по максимальному правдоподобию с экспоненциальной функцией плотности вероятности - PullRequest
0 голосов
/ 08 ноября 2018
% Goal : find the right expression of estimator with exponential pdf
syms PDF k n Ai lambda fLikelihood negLog eqNegLog sol; 
n = 10; 
Ai = sym('t', [1 n]) 
%for i=1:n

Я пытаюсь найти символическое выражение оценки, данное методом максимального правдоподобия:

Для этого я начну с определения экспоненциального pdf:

PDF(t) = 1/lambda*exp(-t/lambda)

После, для построения функции правдоподобия:

L=\Pi_{i=1}^{n} PDF(t_i)

, где "\ Pi" представляет символьное произведение, повторяющееся по индексу i.

Тогда, как только эта вероятность будет четко определена, я мог бы использовать соотношение:

\partial log(L) / \partial lambda = 0

Это приводит к выражению оценки:

\hat{\lambda} = 1/n * \sum_{i=1}^{n} t_i

, так что на самом деле среднее значение t_i measures.

Теперь я хотел бы сделать то же самое исчисление с функцией символьного Matlab:

Я пытался:

PDF(1:n) = lambda*exp(-Ai(1:n)/lambda)
% First solution
fLikelihood=symprod(PDF(k),k,1,n);
% Other try
%fLikelihood=symprod(lambda*exp(-Ai(k)/lambda),k,1,n);
% Other try
%fLikelihood=product(PDF(k),k,1,n);

negLog = log(fLikelihood)
eqNegLog = diff(negLog,lambda)
% Final estimator for lambda
sol = solve(eqNegLog == 0,lambda)

Но я получаю следующую ошибку при выполнении:

  Error using sym/subsindex (line 769)
Invalid indexing or function definition. When defining a function, ensure that the arguments are symbolic variables and the body of the function is a SYM expression. When
indexing, the input must be numeric, logical, or ':'.

Error in sym/subsref (line 814)
            R_tilde = builtin('subsref',L_tilde,Idx);

Error in exp_symbolic (line 9)
fLikelihood=symprod(PDF(k),k,1,n);

а я не знаю как это исправить?

Кто-нибудь мог понять, что не так? Привет

...