Maximum Likelihood Estimation for Poisson Distribution in R

# Data Visualization of Log Likelihood function for Poisson Distribution, estimating lambda

#Generates random data from Poisson distribution
x <- rpois(50, lambda = 3)

#Creates Histogram 
hist(x)

Returns sum 
loglikelihood.fn <- function(lambda){
  return(sum(dpois(x, lambda, log = TRUE)))
}

# creates a sequence where seq(first_value, last_value, step_size)
l.grid <- seq(0, 13, 0.2)

loglikelihood.v <- sapply(l.grid, loglikelihood.fn)

# Creates line plot
# For plot function, type 'l' means line plot 
plot(l.grid, loglikelihood.v, type = 'l',
     main = 'MLE for Poisson distribution',
     xlab = 'parameter lambda', ylab = 'log-likelihood function')

# mean(x) is the estimation of lambda
abline(v = mean(x), col = 'red')