Main Content

coefCI

Confidence intervals for coefficient estimates of multinomial regression model

Since R2023a

    Description

    ci = coefCI(mdl) returns 95% confidence intervals for the coefficients in mdl.

    example

    ci = coefCI(mdl,alpha) returns the confidence intervals using the confidence level 100(1 – alpha)%.

    example

    Examples

    collapse all

    Load the carbig data set.

    load carbig

    The variables Horsepower, Weight, and Origin contain data for car horsepower, weight, and country of origin, respectively. The variable MPG contains car mileage data.

    Create a table in which the Origin and MPG variables are categorical.

    Origin = categorical(cellstr(Origin));
    MPG = discretize(MPG,[9 19 29 39 48],"categorical");
    tbl = table(Horsepower,Weight,Origin,MPG);

    Fit a multinomial regression model. Specify Horsepower, Weight, and Origin as predictor variables, and specify MPG as the response variable.

    modelspec = "MPG ~ 1 + Horsepower + Weight + Origin";
    mdl = fitmnr(tbl,modelspec);

    Find the 95% confidence intervals for the coefficients. Display the coefficient names and confidence intervals in a table by using the array2table function.

    ci = coefCI(mdl);
    ciTable = array2table(ci, ...
        RowNames = mdl.Coefficients.Properties.RowNames, ...
        VariableNames = ["LowerLimit","UpperLimit"])
    ciTable=27×2 table
                                   LowerLimit     UpperLimit
                                   ___________    __________
    
        (Intercept_[9, 19))            -89.395       32.927 
        Horsepower_[9, 19)             0.14928      0.27499 
        Weight_[9, 19)               0.0022537    0.0069061 
        Origin_France_[9, 19)          -54.498       69.362 
        Origin_Germany_[9, 19)         -62.237       59.666 
        Origin_Italy_[9, 19)           -73.457        54.35 
        Origin_Japan_[9, 19)           -62.743       59.097 
        Origin_Sweden_[9, 19)          -60.076       63.853 
        Origin_USA_[9, 19)             -59.875       61.926 
        (Intercept_[19, 29))           -78.671       43.544 
        Horsepower_[19, 29)            0.12131      0.24115 
        Weight_[19, 29)            -0.00073846    0.0033281 
        Origin_France_[19, 29)         -49.929       73.841 
        Origin_Germany_[19, 29)        -57.315       64.476 
        Origin_Italy_[19, 29)          -51.881       73.071 
        Origin_Japan_[19, 29)           -58.22       63.559 
          ⋮
    
    

    Each row contains the lower and upper limits for the 95% confidence intervals.

    Load the carbig data set.

    load carbig

    The variables Horsepower, Weight, and Origin contain data for car horsepower, weight, and country of origin. The variable MPG contains car mileage data.

    Create a table in which the Origin and MPG variables are categorical.

    Origin = categorical(cellstr(Origin));
    MPG = discretize(MPG,[9 19 29 39 48],"categorical");
    tbl = table(Horsepower,Weight,Origin,MPG);

    Fit a multinomial regression model. Specify Horsepower, Weight, and Origin as predictor variables, and specify MPG as the response variable.

    modelspec = "MPG ~ 1 + Horsepower + Weight + Origin";
    mdl = fitmnr(tbl,modelspec);

    Find the 95% and 99% confidence intervals for the coefficients. Display the coefficient names and confidence intervals in a table by using the array2table function.

    ci95 = coefCI(mdl);
    ci99 = coefCI(mdl,0.01);
    confIntervals = array2table([ci95 ci99], ...
        RowNames=mdl.Coefficients.Properties.RowNames, ...
        VariableNames=["95LowerLimit","95UpperLimit", ...
        "99LowerLimit","99UpperLimit"])
    confIntervals=27×4 table
                                   95LowerLimit    95UpperLimit    99LowerLimit    99UpperLimit
                                   ____________    ____________    ____________    ____________
    
        (Intercept_[9, 19))            -89.395         32.927         -108.66          52.194  
        Horsepower_[9, 19)             0.14928        0.27499         0.12948         0.29478  
        Weight_[9, 19)               0.0022537      0.0069061       0.0015209       0.0076389  
        Origin_France_[9, 19)          -54.498         69.362         -74.007          88.871  
        Origin_Germany_[9, 19)         -62.237         59.666         -81.438          78.868  
        Origin_Italy_[9, 19)           -73.457          54.35         -93.588          74.481  
        Origin_Japan_[9, 19)           -62.743         59.097         -81.935          78.288  
        Origin_Sweden_[9, 19)          -60.076         63.853         -79.596          83.373  
        Origin_USA_[9, 19)             -59.875         61.926          -79.06          81.111  
        (Intercept_[19, 29))           -78.671         43.544         -97.921          62.794  
        Horsepower_[19, 29)            0.12131        0.24115         0.10243         0.26003  
        Weight_[19, 29)            -0.00073846      0.0033281       -0.001379       0.0039687  
        Origin_France_[19, 29)         -49.929         73.841         -69.424          93.336  
        Origin_Germany_[19, 29)        -57.315         64.476         -76.498          83.659  
        Origin_Italy_[19, 29)          -51.881         73.071         -71.563          92.752  
        Origin_Japan_[19, 29)           -58.22         63.559         -77.401           82.74  
          ⋮
    
    

    Each row contains the lower and upper limits for the 95% and 99% confidence intervals.

    Visualize the confidence intervals by plotting their limits with the coefficient values.

    ci95 = coefCI(mdl);
    ci99 = coefCI(mdl,0.01);
    colors = lines(3);
    hold on
    p = plot(mdl.Coefficients.Value,Color=colors(1,:));
    plot(ci95(:,1),Color=colors(2,:),LineStyle="--")
    plot(ci95(:,2),Color=colors(2,:),LineStyle="--")
    plot(ci99(:,1),Color=colors(3,:),LineStyle="--")
    plot(ci99(:,2),Color=colors(3,:),LineStyle="--")
    hold off
    legend(["Coefficients","95% CI","","99% CI",""], ...
        Location="southeast")

    Figure contains an axes object. The axes object contains 5 objects of type line. These objects represent Coefficients, 95% CI, 99% CI.

    The plot shows that the 99% confidence intervals for the coefficients are wider than the 95% confidence intervals.

    Input Arguments

    collapse all

    Multinomial regression model object, specified as a MultinomialRegression model object created with the fitmnr function.

    Significance level for the confidence interval, specified as a numeric value in the range [0,1]. The confidence level of ci is equal to 100(1 – alpha)%. alpha is the probability that the confidence interval does not contain the true value.

    Example: 0.01

    Data Types: single | double

    Output Arguments

    collapse all

    Confidence intervals, returned as a p-by-2 numeric matrix, where p is the number of coefficients. The jth row of ci is the confidence interval for the jth coefficient of mdl. The name of coefficient j is stored in the CoefficientNames property of mdl.

    More About

    collapse all

    Confidence Intervals

    The coefficient confidence intervals provide a measure of precision for regression coefficient estimates.

    A 100(1 – α)% confidence interval gives the range for the corresponding regression coefficient with 100(1 – α)% confidence, meaning that 100(1 – α)% of the intervals resulting from repeated experimentation will contain the true value of the coefficient.

    The software finds confidence intervals using the Wald method. The 100(1 – α)% confidence intervals for regression coefficients are

    bi±t(1α/2,np)SE(bi),

    where bi is the coefficient estimate, SE(bi) is the standard error of the coefficient estimate, and t(1–α/2,np) is the 100(1 – α/2) percentile of the t-distribution with n – p degrees of freedom. n is the number of observations and p is the number of regression coefficients.

    Version History

    Introduced in R2023a