Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

transprobprep

Preprocess credit ratings data to estimate transition probabilities

Syntax

[prepData] = transprobprep(data)
[prepData] = transprobprep(data, Name,Value)

Description

[prepData] = transprobprep(data) preprocesses credit ratings historical data (that is, credit migration data) for the subsequent estimation of transition probabilities.

[prepData] = transprobprep(data, Name,Value) preprocesses credit ratings historical data (that is, credit migration data) for the subsequent estimation of transition probabilities with additional options specified by one or more Name,Value pair arguments.

Input Arguments

data

Historical input data for credit ratings. the data input can be one of the following:

  • A MATLAB® table of size nRecords-by-3 containing the credit ratings. Each row contains an ID (column 1), a date (column 2), and a credit rating (column 3). The assigned credit rating corresponds to the associated ID on the associated date. All information corresponding to the same ID must be stored in contiguous rows. Sorting this information by date is not required, but recommended for efficiency.When using a MATLAB table input, the names of the columns are irrelevant, but the ID, date and rating information are assumed to be in the first, second and third columns, respectively. Also, when using a table input, the first and third columns can be categorical arrays, and the second can be a datetime array. Here is an example with all of the information in table format:

     ID            Date             Rating
    __________    _____________    ______
    '00010283'    '10-Nov-1984'    'CCC'
    '00010283'    '12-May-1986'    'B'  
    '00010283'    '29-Jun-1988'    'CCC'
    '00010283'    '12-Dec-1991'    'D'  
    '00013326'    '09-Feb-1985'    'A'  
    '00013326'    '24-Feb-1994'    'AA' 

    The following summarizes the supported data types for table input:

    Data Input TypeID (1st Column)Date (2nd Column)Rating (3rd Column)
    Table
    • Numeric array

    • Cell array of character vectors

    • Categorical array

    • Numeric array

    • Cell array of character vectors

    • Datetime array

    • Numeric array

    • Cell array of character vectors

    • Categorical array

  • A cell array of size nRecords-by-3 containing the credit ratings. Each row contains an ID (column 1), a date (column 2), and a credit rating (column 3). The assigned credit rating corresponds to the associated ID on the associated date. All information corresponding to the same ID must be stored in contiguous rows. Sorting this information by date is not required but is recommended. IDs, dates, and ratings are usually stored in character vector format, but they can also be entered in numeric format. Here is an example with all of the information in character vector format:

     '00010283'    '10-Nov-1984'    'CCC'
     '00010283'    '12-May-1986'    'B'  
     '00010283'    '29-Jun-1988'    'CCC'
     '00010283'    '12-Dec-1991'    'D'  
     '00013326'    '09-Feb-1985'    'A'  
     '00013326'    '24-Feb-1994'    'AA' 

    The following summarizes the supported data types for cell array input:

    Data Input TypeID (1st Column)Date (2nd Column)Rating (3rd Column)
    Cell
    • Numeric elements

    • Character vector elements

    • Numeric elements

    • Character vector elements

    • Numeric elements

    • Character vector elements

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

'labels'

Cell array of size nRatings-by-1, or 1-by-nRatings, containing the credit-rating scale. It must be consistent with type of the ratings in the third column of data. Use a cell array of numbers for numeric ratings, and a cell array for character vector or categorical ratings.

Default: {'AAA','AA','A','BBB','BB','B','CCC','D'}

Output Arguments

prepData

Structure with the following fields:

  • idStart — Array of size (nIDs+1)-by-1, where nIDs is the number of distinct IDs in column 1 of data. This array summarizes where the credit ratings information corresponding to each company starts and ends. The dates and ratings corresponding to company j in data are stored from row idStart(j) to row idStart(j+1)−1 of numericDates and numericRatings.

  • numericDates — Array of size nRecords-by-1, containing the dates in column 2 of data, in numeric format.

  • numericRatings — Array of size nRecords-by-1, containing the ratings in column 3 of data, mapped into numeric format.

  • ratingsLabels — Cell array of size1-by-nRatings, containing the credit rating scale.

Examples

collapse all

Load input data from the file Data_TransProb.mat and display the first ten rows. In this example, the inputs are provided in character vector format.

load Data_TransProb

% Preprocess credit ratings data.
prepData = transprobprep(data)
prepData = 

  struct with fields:

           idStart: [1506×1 double]
      numericDates: [4315×1 double]
    numericRatings: [4315×1 double]
     ratingsLabels: {'AAA'  'AA'  'A'  'BBB'  'BB'  'B'  'CCC'  'D'}

Estimate transition probabilities with the default settings.

transMat = transprob(prepData)
transMat =

  Columns 1 through 7

   93.1170    5.8428    0.8232    0.1763    0.0376    0.0012    0.0001
    1.6166   93.1518    4.3632    0.6602    0.1626    0.0055    0.0004
    0.1237    2.9003   92.2197    4.0756    0.5365    0.0661    0.0028
    0.0236    0.2312    5.0059   90.1846    3.7979    0.4733    0.0642
    0.0216    0.1134    0.6357    5.7960   88.9866    3.4497    0.2919
    0.0010    0.0062    0.1081    0.8697    7.3366   86.7215    2.5169
    0.0002    0.0011    0.0120    0.2582    1.4294    4.2898   81.2927
         0         0         0         0         0         0         0

  Column 8

    0.0017
    0.0396
    0.0753
    0.2193
    0.7050
    2.4399
   12.7167
  100.0000

Estimate transition probabilities with the 'cohort' algorithm.

transMatCoh = transprob(prepData,'algorithm','cohort')
transMatCoh =

  Columns 1 through 7

   93.1345    5.9335    0.7456    0.1553    0.0311         0         0
    1.7359   92.9198    4.5446    0.6046    0.1560         0         0
    0.1268    2.9716   91.9913    4.3124    0.4711    0.0544         0
    0.0210    0.3785    5.0683   89.7792    4.0379    0.4627    0.0421
    0.0221    0.1105    0.6851    6.2320   88.3757    3.6464    0.2873
         0         0    0.0761    0.7230    7.9909   86.1872    2.7397
         0         0         0    0.3094    1.8561    4.5630   80.8971
         0         0         0         0         0         0         0

  Column 8

         0
    0.0390
    0.0725
    0.2103
    0.6409
    2.2831
   12.3743
  100.0000

Related Examples

Introduced in R2011b

Was this topic helpful?