Defina una semilla para el generador de números aleatorios

library(pacman)
p_load(data.table, fixest, lattice, magrittr, ggplot2, kableExtra,dplyr)
library(SMR)
set.seed(33)

N = 1 # Tamaño de la muestra simulada
s = 20 # valor arbitrario.
datos <- data.table(rSMR(N, s)) #Externally studentized midrange distribution

Implemente y grafique la función log(L(θ)).

#Función de verosimilitud
funcion_ver = function(N, s, n){
  func_ver = -n*s - sum(log(factorial(N))) + log(s)*sum(N)
  return(-func_ver) #Valor negativo de la función para la función optim
}

#Graficar la función de verosimilitud
palo <- seq(5, 10, len=100)
Funcion = funcion_ver(s=palo, N = datos, n = N)
df <- data.frame(palo, Funcion)
ggplot(data = df, aes(x = palo, y=Funcion)) + geom_point() + xlab("Valores") + ylab("Función de verosimilitud")

Utilice la función optim() de R para minimizar log(L(θ)).

MLE_estimates <- optim(fn=funcion_ver,                
                       par=c(1,1),                    
                       lower = c(-Inf, -Inf),         
                       upper = c(Inf, Inf),           
                       hessian=TRUE,                  
                       method = "L-BFGS-B",
                       # Entradas personalizadas
                       s = datos$V1,
                       n = s)

# Examinar estimaciones
MLE_par <- MLE_estimates$par
MLE_SE <- sqrt(diag(solve(MLE_estimates$hessian)))
MLE <- data.table(param = "s",
                  estimates = MLE_par,
                  sd = MLE_SE)

knitr::kable(MLE)

Compare los parámetros estimados ˆθ con los parámetros con los que generó la muestra θ0 y concluya.

Respuesta: Debido a que no se pudo realizar la función optim, no sé puede realizar una comparativa entre los parametros obtenidos.