creditscorecard

Создайте creditscorecard объект создать модель протокола результатов кредита

Описание

Создайте модель протокола результатов кредита путем создания creditscorecard возразите и задайте входные данные в формате таблицы.

После создания creditscorecard объект, можно использовать связанные объектные функции для интервала данные и выполнить анализ логистической регрессии, чтобы разработать модель протокола результатов кредита, чтобы вести решения кредита. Этот рабочий процесс показывает, как разработать модель протокола результатов кредита.

  1. Используйте screenpredictors от Risk Management Toolbox™, чтобы срезать потенциально большой набор предикторов к подмножеству, которое является самым прогнозирующим из переменной отклика карты кредитного рейтинга. Используйте это подмножество предикторов при создании creditscorecard объект.

  2. Создайте creditscorecard объект (см., Создает creditscorecard и Свойства).

  3. Интервал данные с помощью autobinning.

  4. Подбирайте модель логистической регрессии использование fitmodel или fitConstrainedModel.

  5. Рассмотрите и отформатируйте точки протокола результатов кредита с помощью displaypoints и formatpoints. В этой точке в рабочем процессе, если у вас есть лицензия на Risk Management Toolbox, у вас есть опция, чтобы создать compactCreditScorecard объект (csc) использование compact функция. Можно затем использовать следующие функции displaypoints, score, и probdefault от Risk Management Toolbox с csc объект.

  6. Выиграйте данные с помощью score.

  7. Вычислите вероятности значения по умолчанию для данных с помощью probdefault.

  8. Подтвердите качество модели протокола результатов кредита использование validatemodel.

Для более подробной информации об этом рабочем процессе см., что Протокол результатов Кредита Моделирует Рабочий процесс.

Создание

Описание

пример

sc = creditscorecard(data) создает creditscorecard объект путем определения data. Модель протокола результатов кредита, возвращенная как creditscorecard возразите, содержит карты раскладывания или правила (точки разделения или группировки категории) для одного или нескольких предикторов.

пример

sc = creditscorecard(___,Name,Value) Свойства наборов с помощью пар "имя-значение" и любого из аргументов в предыдущем синтаксисе. Например, sc = creditscorecard(data,'GoodLabel',0,'IDVar','CustID','ResponseVar','status','PredictorVars',{'CustAge','CustIncome'},'WeightsVar','RowWeights','BinMissingData',true). Можно задать несколько пар "имя-значение".

Примечание

Использовать наблюдение (выборка) веса в рабочем процессе протокола результатов кредита, при создании creditscorecard объект, необходимо использовать дополнительную пару "имя-значение" WeightsVar задавать который столбец в data содержит веса.

Входные параметры

развернуть все

Данные для creditscorecard объект в виде таблицы MATLAB®, где каждый столбец данных может быть любым из следующих типов данных:

  • Числовой

  • Логический

  • Массив ячеек из символьных векторов

  • Массив символов

  • Категориальный

  • Строка

Кроме того, таблица должна содержать бинарную переменную отклика. Прежде, чем создать creditscorecard возразите, выполните задачу подготовки данных соответственно структурировать data как введено к creditscorecard объект. data введите устанавливает Свойство данных.

Типы данных: table

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: sc = creditscorecard(data,'GoodLabel',0,'IDVar','CustAge','ResponseVar','status','PredictorVars',{'CustID','CustIncome'},'WeightsVar','RowWeights','BinMissingData',true)

Индикатор, для которого из двух возможных значений в переменной отклика соответствуют “Хорошим” наблюдениям в виде разделенной запятой пары, состоящей из 'GoodLabel' и числовой скаляр, логический, или вектор символов. GoodLabel аргумент пары "имя-значение" устанавливает свойство GoodLabel.

При определении GoodLabel, следуйте этим инструкциям.

Если Переменная отклика...GoodLabel Должен быть...
числовойчисловой
логическийлогический или числовой
массив ячеек из символьных векторовсимвольный вектор
массив символовсимвольный вектор
категориальныйсимвольный вектор

Если не заданный, GoodLabel установлен в значение ответа с самым высоким количеством. Однако, если дополнительный WeightsVar аргумент обеспечивается при создании creditscorecard объект, затем рассчитывает, заменяются взвешенными частотами. Для получения дополнительной информации см., что Протокол результатов Кредита Моделирует Используя Веса Наблюдения.

GoodLabel может только быть установлен при создании creditscorecard объект. Этот параметр не может быть установлен с помощью записи через точку.

Типы данных: char | double

Имя переменной используется в качестве ID или тега для наблюдений в виде разделенной запятой пары, состоящей из 'IDVar' и вектор символов. IDVar данные могли быть порядковым числом (например, 1,2,3...), Номер социального страхования. Это обеспечивается как удобство удалить этот столбец из переменных предикторов. IDVar является чувствительным к регистру. IDVar аргумент пары "имя-значение" устанавливает свойство IDVar.

Можно установить этот дополнительный параметр с помощью creditscorecard функционируйте или при помощи записи через точку в командной строке, можно следующим образом.

Пример: sc.IDVar = 'CustID'

Типы данных: char

Имя переменной отклика для индикатора “Good” или “Bad” в виде разделенной запятой пары, состоящей из 'ResponseVar' и вектор символов. Данные о переменной отклика должны быть двоичным файлом. ResponseVar аргумент пары "имя-значение" устанавливает свойство ResponseVar.

Если не заданный, ResponseVar установлен в последний столбец ввода данных. ResponseVar может только быть установлен при создании creditscorecard объект с помощью creditscorecard функция. ResponseVar является чувствительным к регистру.

Типы данных: char

Имя переменной весов в виде разделенной запятой пары, состоящей из 'WeightsVar' и вектор символов, чтобы указать, который имя столбца в data таблица содержит веса строки. WeightsVar является чувствительным к регистру. WeightsVar аргумент пары "имя-значение" устанавливает свойство WeightsVar, и это свойство может только быть установлено при создании creditscorecard объект. Если аргумент пары "имя-значение" WeightsVar не задан при создании creditscorecard объект, затем веса наблюдения установлены в модульные веса по умолчанию.

WeightsVar значения используются в рабочем процессе протокола результатов кредита autobinning, bininfo, fitmodel, и validatemodel. Для получения дополнительной информации см., что Протокол результатов Кредита Моделирует Используя Веса Наблюдения.

Типы данных: char

Указывает, удалены ли недостающие данные или отображены в отдельном интервале в виде разделенной запятой пары, состоящей из 'BinMissingdata' и логический скаляр со значением true или false. Если BinMissingData true, недостающие данные для предиктора отображены в отдельном интервале, пометил <missing>.

Типы данных: логический

Свойства

развернуть все

Данные раньше создавали creditscorecard объект в виде таблицы при создании creditscorecard объект. В Data свойство, категориальные предикторы хранятся как категориальные массивы.

Пример: sc.Data(1:10,:)

Типы данных: table

Имя переменной используется в качестве ID или тега для наблюдений в виде вектора символов. Это свойство может быть установлено как дополнительный параметр при создании creditscorecard возразите или при помощи записи через точку в командной строке. IDVar является чувствительным к регистру.

Пример: sc.IDVar = 'CustID'

Типы данных: char

Это свойство доступно только для чтения.

VarNames массив ячеек из символьных векторов, содержащий имена всех переменных в данных. VarNames приезжайте непосредственно от ввода данных до creditscorecard объект. VarNames является чувствительным к регистру.

Типы данных: cell

Имя переменной отклика, индикатора “Good” или “Bad” в виде вектора символов. Данные о переменной отклика должны быть двоичным файлом. Если не заданный, ResponseVar установлен в последний столбец ввода данных. Это свойство может только быть установлено дополнительным параметром при создании creditscorecard объект. ResponseVar является чувствительным к регистру.

Типы данных: char

Имя переменной раньше в качестве ID или тега указывает который имя столбца в data таблица содержит веса строки в виде вектора символов. Это свойство может быть установлено как дополнительный параметр (WeightsVar) при создании creditscorecard объект. WeightsVar является чувствительным к регистру.

Типы данных: char

Индикатор, для которого из двух возможных значений в переменной отклика соответствуют “Хорошим” наблюдениям. При определении GoodLabel, следуйте этим инструкциям:

Если Переменная отклика...GoodLabel должен быть:
числовойчисловой
логическийлогический или числовой
массив ячеек из символьных векторовсимвольный вектор
массив символовсимвольный вектор
категориальныйсимвольный вектор

Если не заданный, GoodLabel установлен в значение ответа с самым высоким количеством. Это свойство может только быть установлено дополнительным параметром при создании creditscorecard объект. Это свойство не может быть установлено с помощью записи через точку.

Типы данных: char | double

Имена переменного предиктора, заданное использование массива ячеек из символьных векторов, содержащего имена. По умолчанию, когда вы создаете creditscorecard объект, все переменные являются предикторами за исключением IDVar и ResponseVar. Это свойство может быть изменено с помощью аргумента пары "имя-значение" для fitmodel функционируйте или при помощи записи через точку. PredictorVars является чувствительным к регистру, и имя переменного предиктора не может совпасть с IDVar или ResponseVar.

Пример: sc.PredictorVars = {'CustID','CustIncome'}

Типы данных: cell

Имя числовых предикторов в виде вектора символов. Это свойство не может быть установлено при помощи записи через точку в командной строке. Это может только быть изменено с помощью modifypredictor функция.

Типы данных: char

Имя категориальных предикторов в виде вектора символов. Это свойство не может быть установлено при помощи записи через точку в командной строке. Это может только быть изменено с помощью modifypredictor функция.

Типы данных: char

Указывает, удалены ли недостающие данные или отображены в отдельном интервале в виде разделенной запятой пары, состоящей из 'BinMissingdata' и логический скаляр со значением true или false. Если BinMissingData true, недостающие данные для предиктора отображены в отдельном интервале, пометил <missing>. Для получения дополнительной информации о работе с недостающими данными смотрите, Приписывают Моделированию Протокола результатов Отсутствующие значения.

Типы данных: логический

creditscorecard СвойствоУстановите/Измените Свойство из Командной строки Используя creditscorecard ФункцияИзмените свойство Используя запись через точкуСвойство, не пользовательское и значение, задано внутренне
DataНетНетДа, копия data входной параметр
IDVarДаДаНет, но пользователь задает это
VarNamesНетНетДа
ResponseVarДаНетЕсли не заданный, набор, чтобы продлиться столбец data входной параметр
WeightsVarНетНетДа
GoodLabelДаНетЕсли не заданный, набор к значению ответа с самым высоким количеством
PredictorVarsДа (также модифицируемое использование fitmodel функцияДаДа, но пользователь может изменить это
NumericPredictorsНет (может только быть изменен с помощью modifypredictor функцияНетДа, но пользователь может изменить это
CategoricalPredictorsНет (может только быть изменен с помощью modifypredictor функцияНетДа, но пользователь может изменить это
BinMissingDataДаНетЛожь по умолчанию, но пользователь может изменить это

Функции объекта

autobinningВыполните автоматическое раскладывание данных предикторов
bininfoВозвратите информацию об интервале предиктора
predictorinfoСводные данные свойств предиктора протокола результатов кредита
modifypredictorУстановите свойства предикторов протокола результатов кредита
fillmissingЗамените отсутствующие значения для предикторов протокола результатов кредита
modifybinsИзмените интервалы предиктора
bindataСгруппированные переменные предикторы
plotbinsГистограмма графика значит переменные предикторы
fitmodelПодбирайте модель логистической регрессии к данным о Весе доказательства (WOE)
fitConstrainedModelПодбирайте модель логистической регрессии к субъекту данных Веса доказательства (WOE) к ограничениям на коэффициенты модели
setmodelУстановите предикторы модели и коэффициенты
displaypointsВозвратите точки на предиктор на интервал
formatpointsТочки протокола результатов формата и масштабирование
scoreВычислите кредитные рейтинги для определенных данных
probdefaultВероятность значения по умолчанию для определенных данных установлена
validatemodelПодтвердите качество модели протокола результатов кредита
compactСоздайте компактный протокол результатов кредита

Примеры

свернуть все

Создайте creditscorecard объект с помощью CreditCardData.mat файл, чтобы загрузить data (использование набора данных от Refaat 2011).

load CreditCardData 
sc = creditscorecard(data)
sc = 
  creditscorecard with properties:

                GoodLabel: 0
              ResponseVar: 'status'
               WeightsVar: ''
                 VarNames: {1x11 cell}
        NumericPredictors: {1x7 cell}
    CategoricalPredictors: {'ResStatus'  'EmpStatus'  'OtherCC'}
           BinMissingData: 0
                    IDVar: ''
            PredictorVars: {1x10 cell}
                     Data: [1200x11 table]

Используйте CreditCardData.mat файл, чтобы загрузить данные (dataWeights) это содержит столбец (RowWeights) для весов (использующий набор данных от Refaat 2011).

load CreditCardData

Создайте creditscorecard объект с помощью дополнительного аргумента пары "имя-значение" для 'WeightsVar'.

sc = creditscorecard(dataWeights,'WeightsVar','RowWeights')
sc = 
  creditscorecard with properties:

                GoodLabel: 0
              ResponseVar: 'status'
               WeightsVar: 'RowWeights'
                 VarNames: {1x12 cell}
        NumericPredictors: {1x7 cell}
    CategoricalPredictors: {'ResStatus'  'EmpStatus'  'OtherCC'}
           BinMissingData: 0
                    IDVar: ''
            PredictorVars: {1x10 cell}
                     Data: [1200x12 table]

Создайте creditscorecard объект с помощью CreditCardData.mat файл, чтобы загрузить data (использование набора данных от Refaat 2011).

load CreditCardData 
sc = creditscorecard(data)
sc = 
  creditscorecard with properties:

                GoodLabel: 0
              ResponseVar: 'status'
               WeightsVar: ''
                 VarNames: {1x11 cell}
        NumericPredictors: {1x7 cell}
    CategoricalPredictors: {'ResStatus'  'EmpStatus'  'OtherCC'}
           BinMissingData: 0
                    IDVar: ''
            PredictorVars: {1x10 cell}
                     Data: [1200x11 table]

Отобразить creditscorecard свойства объектов, используйте запись через точку.

sc.PredictorVars
ans = 1x10 cell
  Columns 1 through 4

    {'CustID'}    {'CustAge'}    {'TmAtAddress'}    {'ResStatus'}

  Columns 5 through 8

    {'EmpStatus'}    {'CustIncome'}    {'TmWBank'}    {'OtherCC'}

  Columns 9 through 10

    {'AMBalance'}    {'UtilRate'}

sc.VarNames
ans = 1x11 cell
  Columns 1 through 4

    {'CustID'}    {'CustAge'}    {'TmAtAddress'}    {'ResStatus'}

  Columns 5 through 8

    {'EmpStatus'}    {'CustIncome'}    {'TmWBank'}    {'OtherCC'}

  Columns 9 through 11

    {'AMBalance'}    {'UtilRate'}    {'status'}

Создайте creditscorecard объект с помощью CreditCardData.mat файл, чтобы загрузить data (использование набора данных от Refaat 2011).

load CreditCardData 
sc = creditscorecard(data)
sc = 
  creditscorecard with properties:

                GoodLabel: 0
              ResponseVar: 'status'
               WeightsVar: ''
                 VarNames: {1x11 cell}
        NumericPredictors: {1x7 cell}
    CategoricalPredictors: {'ResStatus'  'EmpStatus'  'OtherCC'}
           BinMissingData: 0
                    IDVar: ''
            PredictorVars: {1x10 cell}
                     Data: [1200x11 table]

Начиная с IDVar свойство имеет открытый доступ, можно изменить его значение в командной строке.

sc.IDVar = 'CustID'
sc = 
  creditscorecard with properties:

                GoodLabel: 0
              ResponseVar: 'status'
               WeightsVar: ''
                 VarNames: {1x11 cell}
        NumericPredictors: {1x6 cell}
    CategoricalPredictors: {'ResStatus'  'EmpStatus'  'OtherCC'}
           BinMissingData: 0
                    IDVar: 'CustID'
            PredictorVars: {1x9 cell}
                     Data: [1200x11 table]

Создайте creditscorecard объект с помощью CreditCardData.mat файл, чтобы загрузить data (использование набора данных от Refaat 2011).

load CreditCardData 
sc = creditscorecard(data)
sc = 
  creditscorecard with properties:

                GoodLabel: 0
              ResponseVar: 'status'
               WeightsVar: ''
                 VarNames: {1x11 cell}
        NumericPredictors: {1x7 cell}
    CategoricalPredictors: {'ResStatus'  'EmpStatus'  'OtherCC'}
           BinMissingData: 0
                    IDVar: ''
            PredictorVars: {1x10 cell}
                     Data: [1200x11 table]

В этом примере, значениях по умолчанию для свойств ResponseVar, PredictorVars и GoodLabel присвоены, когда этот объект создается. По умолчанию, свойство ResponseVar установлен в имя переменной, которое находится в последнем столбце входных данных ('status' в этом примере). Свойство PredictorVars содержит имена всех переменных, которые находятся в VarNames, но исключает IDVar и ResponseVar. Кроме того, по умолчанию в предыдущем примере, GoodLabel установлен в 0, поскольку это - значение в переменной отклика (ResponseVar) с самым высоким количеством.

Отобразите creditscorecard свойства объектов с помощью записи через точку.

sc.PredictorVars
ans = 1x10 cell
  Columns 1 through 4

    {'CustID'}    {'CustAge'}    {'TmAtAddress'}    {'ResStatus'}

  Columns 5 through 8

    {'EmpStatus'}    {'CustIncome'}    {'TmWBank'}    {'OtherCC'}

  Columns 9 through 10

    {'AMBalance'}    {'UtilRate'}

sc.VarNames
ans = 1x11 cell
  Columns 1 through 4

    {'CustID'}    {'CustAge'}    {'TmAtAddress'}    {'ResStatus'}

  Columns 5 through 8

    {'EmpStatus'}    {'CustIncome'}    {'TmWBank'}    {'OtherCC'}

  Columns 9 through 11

    {'AMBalance'}    {'UtilRate'}    {'status'}

Начиная с IDVar и PredictorVars имейте открытый доступ, можно изменить их значения в командной строке.

sc.IDVar = 'CustID'
sc = 
  creditscorecard with properties:

                GoodLabel: 0
              ResponseVar: 'status'
               WeightsVar: ''
                 VarNames: {1x11 cell}
        NumericPredictors: {1x6 cell}
    CategoricalPredictors: {'ResStatus'  'EmpStatus'  'OtherCC'}
           BinMissingData: 0
                    IDVar: 'CustID'
            PredictorVars: {1x9 cell}
                     Data: [1200x11 table]

sc.PredictorVars = {'CustIncome','ResStatus','AMBalance'}
sc = 
  creditscorecard with properties:

                GoodLabel: 0
              ResponseVar: 'status'
               WeightsVar: ''
                 VarNames: {1x11 cell}
        NumericPredictors: {'CustIncome'  'AMBalance'}
    CategoricalPredictors: {'ResStatus'}
           BinMissingData: 0
                    IDVar: 'CustID'
            PredictorVars: {'ResStatus'  'CustIncome'  'AMBalance'}
                     Data: [1200x11 table]

disp(sc)
  creditscorecard with properties:

                GoodLabel: 0
              ResponseVar: 'status'
               WeightsVar: ''
                 VarNames: {1x11 cell}
        NumericPredictors: {'CustIncome'  'AMBalance'}
    CategoricalPredictors: {'ResStatus'}
           BinMissingData: 0
                    IDVar: 'CustID'
            PredictorVars: {'ResStatus'  'CustIncome'  'AMBalance'}
                     Data: [1200x11 table]

Создайте creditscorecard объект с помощью CreditCardData.mat файл, чтобы загрузить data (использование набора данных от Refaat 2011). Затем используйте аргументы пары "имя-значение" для creditscorecard задавать GoodLabel и ResponseVar.

load CreditCardData 
sc = creditscorecard(data,'IDVar','CustID','GoodLabel',0,'ResponseVar','status')
sc = 
  creditscorecard with properties:

                GoodLabel: 0
              ResponseVar: 'status'
               WeightsVar: ''
                 VarNames: {1x11 cell}
        NumericPredictors: {1x6 cell}
    CategoricalPredictors: {'ResStatus'  'EmpStatus'  'OtherCC'}
           BinMissingData: 0
                    IDVar: 'CustID'
            PredictorVars: {1x9 cell}
                     Data: [1200x11 table]

GoodLabel и ResponseVar может только быть установлен (осуществленный) при создании creditscorecard объект с помощью creditscorecard.

Создайте creditscorecard объект с помощью CreditCardData.mat файл, чтобы загрузить dataMissing с отсутствующими значениями.

load CreditCardData 
head(dataMissing,5)
ans=5×11 table
    CustID    CustAge    TmAtAddress     ResStatus     EmpStatus    CustIncome    TmWBank    OtherCC    AMBalance    UtilRate    status
    ______    _______    ___________    ___________    _________    __________    _______    _______    _________    ________    ______

      1          53          62         <undefined>    Unknown        50000         55         Yes       1055.9        0.22        0   
      2          61          22         Home Owner     Employed       52000         25         Yes       1161.6        0.24        0   
      3          47          30         Tenant         Employed       37000         61         No        877.23        0.29        0   
      4         NaN          75         Home Owner     Employed       53000         20         Yes       157.37        0.08        0   
      5          68          56         Home Owner     Employed       53000         14         Yes       561.84        0.11        0   

fprintf('Number of rows: %d\n',height(dataMissing))
Number of rows: 1200
fprintf('Number of missing values CustAge: %d\n',sum(ismissing(dataMissing.CustAge)))
Number of missing values CustAge: 30
fprintf('Number of missing values ResStatus: %d\n',sum(ismissing(dataMissing.ResStatus)))
Number of missing values ResStatus: 40

Используйте creditscorecard с аргументом 'BinMissingData' значения имени установите на true к интервалу недостающие данные в отдельном интервале.

sc = creditscorecard(dataMissing,'IDVar','CustID','BinMissingData',true);
sc = autobinning(sc);
disp(sc)
  creditscorecard with properties:

                GoodLabel: 0
              ResponseVar: 'status'
               WeightsVar: ''
                 VarNames: {1x11 cell}
        NumericPredictors: {1x6 cell}
    CategoricalPredictors: {'ResStatus'  'EmpStatus'  'OtherCC'}
           BinMissingData: 1
                    IDVar: 'CustID'
            PredictorVars: {1x9 cell}
                     Data: [1200x11 table]

Отобразите информацию об интервале для числовых данных для 'CustAge' это включает недостающие данные в отдельный интервал, пометил <missing>.

bi = bininfo(sc,'CustAge');
disp(bi)
         Bin         Good    Bad     Odds       WOE       InfoValue 
    _____________    ____    ___    ______    ________    __________

    {'[-Inf,33)'}     69      52    1.3269    -0.42156      0.018993
    {'[33,37)'  }     63      45       1.4    -0.36795      0.012839
    {'[37,40)'  }     72      47    1.5319     -0.2779     0.0079824
    {'[40,46)'  }    172      89    1.9326    -0.04556     0.0004549
    {'[46,48)'  }     59      25      2.36     0.15424     0.0016199
    {'[48,51)'  }     99      41    2.4146     0.17713     0.0035449
    {'[51,58)'  }    157      62    2.5323     0.22469     0.0088407
    {'[58,Inf]' }     93      25      3.72     0.60931      0.032198
    {'<missing>'}     19      11    1.7273    -0.15787    0.00063885
    {'Totals'   }    803     397    2.0227         NaN      0.087112
plotbins(sc,'CustAge')

Отобразите информацию об интервале для категориальных данных для 'ResStatus' это включает недостающие данные в отдельный интервал, пометил <missing>.

bi = bininfo(sc,'ResStatus');
disp(bi)
         Bin          Good    Bad     Odds        WOE       InfoValue 
    ______________    ____    ___    ______    _________    __________

    {'Tenant'    }    296     161    1.8385    -0.095463     0.0035249
    {'Home Owner'}    352     171    2.0585     0.017549    0.00013382
    {'Other'     }    128      52    2.4615      0.19637     0.0055808
    {'<missing>' }     27      13    2.0769     0.026469    2.3248e-05
    {'Totals'    }    803     397    2.0227          NaN     0.0092627
plotbins(sc,'ResStatus')

Ссылки

[1] Андерсон, R. Инструментарий рейтинга кредитоспособности. Издательство Оксфордского университета, 2007.

[2] Refaat, M. Подготовка данных для анализа данных Используя SAS. Морган Кофманн, 2006.

[3] Refaat, M. Протоколы результатов кредитного риска: разработка и реализация Используя SAS. lulu.com, 2011.

Смотрите также

Функции

Приложения

Введенный в R2014b