Wie kann ich MLE in Python nicht über die Arch Library implementieren?Python

Python-Programme
Anonymous
 Wie kann ich MLE in Python nicht über die Arch Library implementieren?

Post by Anonymous »

Ich habe versucht, die MLE -Methode zu verwenden, um die Parameter eines versicherungsmathematischen Modells (das Vasicek -Modell) zu schätzen, das dem GARCH -Modell ähnlich ist (ähnlich in der Tatsache, dass es in beiden Modellen 3 Parameter gibt, deren Wert unter Verwendung von MLE mit MLE erraten werden muss. Noch in r. Vielen Dank im Voraus < /p>

Code: Select all

import numpy as np
from numpy import random as rn
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
import scipy.stats as si
from scipy import stats
from scipy.stats import norm
from scipy.optimize import minimize

a = 0.2
b = 0.2
σ = 0.2

def NORMDIST(x , mean , sd):
NORMDIST = si.norm.pdf(x , mean , σ)
return(NORMDIST)

r = np.array([0.0025, 0.0025, 0.001 , 0.001 , 0.001 , 0.001 , 0.001 , 0.001,
0.001 , 0.001 , 0.001 , 0.001 , 0.001 , 0.001 , 0.001 , 0.001 ,
0.001 , 0.001 , 0.001 , 0.001 , 0.001 , 0.001 , 0.001 , 0.001 ,
0.001 , 0.001 , 0.0035, 0.0075, 0.0075, 0.0125, 0.02  , 0.02  ,
0.0275, 0.0325, 0.0325, 0.0375])

r1 = r
index = -1
r1 = np.delete(r1, index)
r1 = np.insert(r1,0,0)

dr = r-r1
index = 0
dr = np.delete(dr, index)

r1 = np.delete(r1, index)

mr = a*(b-r1)

dr_mr = dr - mr

pdf = NORMDIST(dr_mr , 0 , σ)

ln_pdf = np.log(pdf)

data = r1 + dr - mr

def likelihood(params,data):
a, b, σ = params
return norm.logpdf(data,loc=0,scale=params[1]).sum()

def neglikelihood(params,data):
return -1*likelihood(params,data)

result = minimize(neglikelihood,[0.2,0.2,0.2],args=(data))
result

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post