creditscorecard

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

Описание

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

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

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

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

  3. Интервал данные.

  4. Соответствуйте модели логистической регрессии.

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

  6. Выиграйте данные.

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

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

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

Создание

Синтаксис

sc = creditscorecard(data)
sc = creditscorecard(___,Name,Value)

Описание

пример

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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Установите свойства предикторов протокола результатов кредита
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 array
  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 array
  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 array
  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 array
  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