Eu alcancei até
Onde é o parâmetro de localização. E é uma função de probabilidade. Eu não estou entendendo como proceder. Por favor ajude.L
Eu alcancei até
Onde é o parâmetro de localização. E é uma função de probabilidade. Eu não estou entendendo como proceder. Por favor ajude.L
Respostas:
Ok, digamos que o pdf para o cauchy seja:
θ aqui é mediana, não média, pois para Cauchy a média é indefinida.
É exatamente isso que você tem, exceto aqui é mediana, não má. Suponho que seja mediano em sua fórmula.u
Próxima etapa, para encontrar mle, precisamos definir
Agora é sua variável e valores conhecidos, você precisa resolver a equaçãox i s ∑ n i = 1 2 ( x i - θ )
ou seja, resolver . Parece resolver esta equação será muito difícil. Portanto, precisamos do método de Newton-Raphson.
Eu acho que muitos livros de cálculo falam sobre o método
A fórmula do método Newton-Raphson pode ser escrita como
θ é o seu palpite inicial de
é a primeira derivada da função de probabilidade de log.
é a segunda derivada da função de probabilidade de log.
De você pode obter depois colocar em depois obter e colocá-lo em para obter ... continue com as iterações até que não haja grandes alterações entre e ^ θ 1 ^ θ 1 (1) ^ θ 2 (1) ^ θ 3 ^ θ n ^ θ n - 1
Os itens a seguir são a função R que escrevi para obter a distribuição Cauchy.
mlecauchy=function(x,toler=.001){ #x is a vector here
startvalue=median(x)
n=length(x);
thetahatcurr=startvalue;
# Compute first deriviative of log likelihood
firstderivll=2*sum((x-thetahatcurr)/(1+(x-thetahatcurr)^2))
# Continue Newton’s method until the first derivative
# of the likelihood is within toler of 0.001
while(abs(firstderivll)>toler){
# Compute second derivative of log likelihood
secondderivll=2*sum(((x-thetahatcurr)^2-1)/(1+(x-thetahatcurr)^2)^2);
# Newton’s method update of estimate of theta
thetahatnew=thetahatcurr-firstderivll/secondderivll;
thetahatcurr=thetahatnew;
# Compute first derivative of log likelihood
firstderivll=2*sum((x-thetahatcurr)/(1+(x-thetahatcurr)^2))
}
list(thetahat=thetahatcurr);
}
Agora, suponha que seus dados sejam
x<-c(-1.94,0.59,-5.98,-0.08,-0.77)
mlecauchy(x,0.0001)
Resultado:
#$thetahat
#[1] -0.5343968
Também podemos usar a função R build para obter mle.
optimize(function(theta) -sum(dcauchy(x, location=theta, log=TRUE)), c(-100,100))
#we use negative sign here
Resultados:
#$minimum
#[1] -0.5343902
O resultado é quase o mesmo que os códigos caseiros.
Ok, conforme necessário, vamos fazer isso manualmente.
Primeiro, obtemos um palpite inicial de que será a mediana dos dados
A mediana é
Em seguida, já sabemos que
e
Agora, conectamos o ou seja, a mediana de e
ou seja, substitua por ou seja, mediana ou seja
Em seguida, conecte a e para obter seguida, você pode obter
Ok, eu tenho que parar por aqui, é muito problemático calcular esses valores manualmente.