Main Content

nlparci

비선형 회귀 모수 신뢰구간

    설명

    ci = nlparci(beta,r,"Covar",CovB)는 비선형 최소제곱 모수 추정값 beta에 대한 95% 신뢰구간 ci를 반환합니다. nlparci를 호출하기 전에, nlinfit 함수를 사용하여 비선형 회귀 모델을 피팅함으로써 추정된 계수 beta, 잔차 r, 추정된 공분산 행렬 CovB를 구합니다.

    nlinfit에 로버스트 옵션을 사용하는 경우에는 nlparci에 이 구문을 사용해야 합니다. 로버스트 피팅에는 공분산 행렬 CovB가 필요합니다.

    ci = nlparci(beta,r,"Jacobian",J)는 비선형 최소제곱 모수 추정값 beta에 대한 95% 신뢰구간 ci를 반환합니다. nlparci를 호출하기 전에, nlinfit 함수를 사용하여 비선형 회귀 모델을 피팅함으로써 추정된 계수 beta, 잔차 r, 야코비 행렬 J를 구합니다.

    예제

    ci = nlparci(___,"Alpha",alpha)는 위에 열거된 구문에 나와 있는 입력 인수를 조합하여 100(1 — alpha)% 신뢰구간을 반환합니다.

    예제

    모두 축소

    다음 형식의 지수 감쇠 모델을 피팅합니다.

    yi=β1+β2exp(-β3xi)+ϵi,

    여기서 βj는 추정하려는 모수, xi는 데이터 점, yi는 응답 변수, εi는 잡음 항입니다.

    모델을 나타내는 함수 핸들을 작성합니다.

    mdl = @(beta,x)(beta(1) + beta(2)*exp(-beta(3)*x));

    실제 모수 값이 beta = [1;3;2]인 합성 데이터, 모수가 2인 지수 분포를 갖는 x 데이터 점, 평균이 0이고 표준편차가 0.1인 정규분포 잡음을 생성합니다.

    rng(9845,'twister') % For reproducibility
    beta = [1;3;2];
    x = exprnd(2,100,1);
    epsn = normrnd(0,0.1,100,1);
    y = mdl(beta,x) + epsn;

    임의 값 beta0 = [2;2;2]에서 시작하여 데이터에 모델을 피팅합니다.

    beta0 = [2;2;2];
    [betahat,r,J,CovB,mse] = nlinfit(x,y,mdl,beta0);
    betahat
    betahat = 3×1
    
        1.0153
        3.0229
        2.1070
    
    

    공분산 행렬을 사용하여 95% 신뢰구간을 확인합니다. 실제 모수 값 [1;3;2]가 모두 세 개의 구간 내에 있음을 확인할 수 있습니다.

    ci = nlparci(betahat,r,"Covar",CovB)
    ci = 3×2
    
        0.9869    1.0438
        2.9401    3.1058
        1.9963    2.2177
    
    

    야코비 행렬을 사용해서도 동일한 결과를 얻을 수 있습니다.

    ci = nlparci(betahat,r,"Jacobian",J)
    ci = 3×2
    
        0.9869    1.0438
        2.9401    3.1058
        1.9963    2.2177
    
    

    실제 모수 값 [1;3;2]가 더 좁은 90% 신뢰구간 내에 있는지 확인합니다. β1β2는 해당 구간 내에 있지만 β3은 그렇지 않습니다.

    ci = nlparci(betahat,r,"Covar",CovB,"Alpha",0.1)
    ci = 3×2
    
        0.9915    1.0392
        2.9536    3.0923
        2.0144    2.1996
    
    

    추정된 회귀 계수를 90% 신뢰구간으로 플로팅합니다.

    lowerBars = betahat - ci(:,1);
    upperBars = ci(:,2) - betahat;
    errorbar(1:3,betahat,lowerBars,upperBars,'*'), grid
    title('Estimated Regression Coefficients with 90% Confidence Intervals')
    ylabel('Coefficient Value')
    xlabel('Estimated Regression Coefficient \beta_j, j = 1,2,3')
    xticks([1 2 3])
    xlim([.8 3.2])

    Figure contains an axes object. The axes object with title Estimated Regression Coefficients with 90% Confidence Intervals, xlabel Estimated Regression Coefficient beta indexOf j baseline , blank j blank = 1,2,3, ylabel Coefficient Value contains an object of type errorbar.

    입력 인수

    모두 축소

    추정된 회귀 계수로, nlinfit 함수에서 반환되는 숫자형 벡터로 지정됩니다.

    데이터형: single | double

    잔차로, nlinfit 함수에서 반환되는 숫자형 벡터로 지정됩니다.

    데이터형: single | double

    피팅된 계수 beta에 대한 추정된 공분산 행렬로, nlinfit 함수에서 반환되는 숫자형 행렬로 지정됩니다.

    데이터형: single | double

    추정된 야코비 행렬로, nlinfit 함수에서 반환되는 숫자형 행렬로 지정됩니다.

    데이터형: single | double

    신뢰구간에 대한 유의수준으로, 범위 (0,1) 내의 스칼라 값으로 지정됩니다. 신뢰수준은 100(1 — alpha)%입니다. 여기서 alpha는 신뢰구간에 실제 값이 포함되지 않을 확률입니다.

    디폴트 신뢰수준은 95%(alpha = 0.05)입니다.

    예: "Alpha",0.1

    데이터형: single | double

    출력 인수

    모두 축소

    추정된 회귀 계수에 대한 신뢰구간으로, N×2 숫자형 행렬로 반환되며, 여기서 N은 beta의 행 개수입니다. ci의 첫 번째 열은 신뢰구간의 하한을 나타내고 두 번째 열은 상한을 나타냅니다.

    데이터형: single | double

    알고리즘

    • nlparci는 잔차 r 또는 야코비 행렬 J에 있는 NaN 값을 누락값으로 처리하고 대응되는 관측값을 무시합니다.

    • 신뢰구간 계산은 잔차 r의 길이가 계수 beta의 길이를 초과하고 야코비 행렬 J가 완전 열 랭크를 갖는 시스템에 유효합니다. J의 조건이 나쁠 경우 신뢰구간이 부정확할 수 있습니다.

    대체 기능

    nlinfit 대신에 fitnlm 함수를 사용하고 nlparci 대신에 coefCI 함수를 사용하여 신뢰구간을 구할 수 있습니다.

    버전 내역

    R2006a 이전에 개발됨

    참고 항목

    |