Question: import numpy as np from scipy.optimize import minimize from scipy import optimize from scipy import stats np . random.seed ( 4 2 ) sample _

import numpy as np
from scipy.optimize import minimize
from scipy import optimize
from scipy import stats
np.random.seed(42)
sample_size =1000
data = np.random.normal(loc=0, scale=1, size=sample_size)
def log_likelihood(params, data):
mu, sigma_sq = params
n = len(data)
log_likelihood =-(n /2)* np.log(2* np.pi * sigma_sq)-(1/(2* sigma_sq))* np.sum((data - mu)**2)
return -log_likelihood
def estimate_parameters(data):
initial_guess =[np.mean(data), np.var(data)]
result = minimize(log_likelihood, initial_guess, args=(data,), method='L-BFGS-B')
return result.x
def gradient_matrix(params, data):
mu, sigma_sq = params
n = len(data)
grad_mu =(1/ sigma_sq)* np.sum(data - mu)
grad_sigma_sq =-(n /(2* sigma_sq))+(1/(2* sigma_sq **2))* np.sum((data - mu)**2)
return np.array([grad_mu, grad_sigma_sq])
estimated_params = estimate_parameters(data)
mu_estimate, sigma_sq_estimate = estimated_params
print("Estimated mu:", mu_estimate)
print("Estimated sigma^2:", sigma_sq_estimate)
gradient = gradient_matrix(estimated_params, data)
print("Gradient matrix:")
print(gradient)
from scipy import optimize
from scipy import stats
lr_stat =2*(log_likelihood(estimated_params, data)- log_likelihood([0,1], data))
lr_p_value =1- stats.chi2.cdf(lr_stat, df=2)
inv_hessian = minimize(log_likelihood, estimated_params, args=(data,), method='L-BFGS-B', jac=True).hess_inv
wald_stat = np.dot(gradient, np.dot(inv_hessian, gradient))
wald_p_value =1- stats.chi2.cdf(wald_stat, df=2)
lm_stat = np.dot(gradient, gradient)
lm_p_value =1- stats.chi2.cdf(lm_stat, df=2)
print("Likelihood Ratio test p-value:", lr_p_value)
print("Wald test p-value:", wald_p_value)
print("Lagrange Multiplier test p-value:", lm_p_value)
Estimated mu: 0.01933205582232549
Estimated sigma^2: 0.9579049897315173
Gradient matrix:
[1.57625582e-140.00000000e+00]
C:\Users\benoi\AppData\Local\Temp\ipykernel_22148\3282395572.py:15: RuntimeWarning: invalid value encountered in log
log_likelihood =-(n /2)* np.log(2* np.pi * sigma_sq)-(1/(2* sigma_sq))* np.sum((data - mu)**2)
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
Cell In[2], line 45
42 lr_stat =2*(log_likelihood(estimated_params, data)- log_likelihood([0,1], data))
43 lr_p_value =1- stats.chi2.cdf(lr_stat, df=2)
--->45 inv_hessian = minimize(log_likelihood, estimated_params, args=(data,), method='L-BFGS-B', jac=True).hess_inv
46 wald_stat = np.dot(gradient, np.dot(inv_hessian, gradient))
47 wald_p_value =1- stats.chi2.cdf(wald_stat, df=2)
File ~\anaconda3\Lib\site-packages\scipy\optimize\_minimize.py:710, in minimize(fun, x0, args, method, jac, hess, hessp, bounds, constraints, tol, callback, options)
707 res =_minimize_newtoncg(fun, x0, args, jac, hess, hessp, callback,
708**options)
709 elif meth =='l-bfgs-b':
-->710 res =_minimize_lbfgsb(fun, x0, args, jac, bounds,
711 callback=callback, **options)
712 elif meth =='tnc':
713 res =_minimize_tnc(fun, x0, args, jac, bounds, callback=callback,
714**options)
File ~\anaconda3\Lib\site-packages\scipy\optimize\_lbfgsb_py.py:307, in _minimize_lbfgsb(fun, x0, args, jac, bounds, disp, maxcor, ftol, gtol, eps, maxfun, maxiter, iprint, callback, maxls, finite_diff_rel_step, **unknown_options)
304 else:
305 iprint = disp
-->307 sf =_prepare_scalar_function(fun, x0, jac=jac, args=args, epsilon=eps,
308 bounds=new_bounds,
309 finite_diff_rel_step=finite_diff_rel_step)
311 func_and_grad = sf.fun_and_grad
313 fortran_int =_lbfgsb.types.intvar.dtype
File ~\anaconda3\Lib\site-packages\scipy\optimize\_optimize.py:383, in _prepare_scalar_function(fun, x0, jac, args, bounds, epsilon, finite_diff_rel_step, hess)
379 bounds =(-np.inf, np.inf)
381 # ScalarFunction caches. Reuse of fun(x) during grad
382 # calculation reduces overall function evaluati

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!