>source

나는 파이썬에서 간단한 모델 추정을 구현하려고 노력하고 있습니다. 나는 아치 모델을 가지고있다 :

logr_t= u + theta_1 * logr_t + \ epsilon_t

여기서 logr_t는 내 로그 리턴 벡터이고, u 및 theta_1은 추정 할 두 매개 변수이고 \ epsilon_t는 나의 잔차입니다.

MATLAB에서는 error_arch 함수에서 optimiser를 호출하는 다음 줄을 가지고 있습니다. 매개 변수의 초기 추측은 1이고, 낮은 경계는 -10이고 상한은 10입니다.

ARCH.param= lsqnonlin(  @(param) Error_ARCH(param, logR), [1 1], [-10 -10], [10 10]);
[ARCH.Error, ARCH.Residuals]= Error_ARCH( ARCH.param, logR);

오류가 최소화되는 오류가 주어집니다.


function [error, residuals]= Error_ARCH(param, logreturns)
         % Initialisation
         y_hat= zeros(length(logreturns), 1 );
         % Parameters
         u  = param(1);
         theta1= param(2);
         % Define model
         [email protected](z)  u + theta1.*z;
         for i= 2:length(logreturns)
             y_hat(i)= ARCH( logreturns(i-1) );
         end
         error= abs( logreturns -y_hat );
         residuals= logreturns -y_hat;
end

나는 파이썬에서 비슷한 것을 원하지 않지만 scipy에서 최소한의 -Squares 함수에 대한 인수를 어디에서 지정 해야하는지 모르겠다. 지금까지는 다음과 같습니다.

from scipy.optimize import least_squares
def model(param, z):
    """This is the model we try to estimate equation"""
    u= param[0]
    theta1= param[1]
    return u + theta1*z
def residuals_ARCH(param, z):
    return z -model(param, z)

LSQ Optimisizer를 호출하면 오류가 발생합니다. LEDUALS_ARCH () 누락 된 1 필수 위치 인수 : 'Z'

guess= [1, 1]
result= least_squares(residuals_ARCH, x0=guess, verbose=1, bounds=(-10, 10))

모든 도움을 주셔서 감사합니다

  • 답변 # 1

    _squares.방법은 서명과 함수를 기대합니다재미있는 (x, * args, ** kwargs)...에 따라서 MATLAB 기능 핸들과 유사한 람다 표현식을 사용할 수 있습니다.

    # logR= your log-returns vector
    result= least_squares(lambda param: residuals_ARCH(param, logR), x0=guess, verbose=1, bounds=(-10, 10))
    

  • 이전 javascript : 누군가 code 실행 의이 동작을 설명해주십시오. JS.
  • 다음 PFX 인증서를 Azure 키 볼트로 가져옵니다