#sas
Вопрос:
Я вижу, что в sas есть функция logistic (), которая вычисляет обратный логит(x).
logistic(x) = exp(x)/(exp(x) 1)
Существует ли функция, которая вычисляет логит(x)?
logit(x) = log(p/1-p)
Комментарии:
1. Ты имеешь в виду
log(p/(1-p))
?
Ответ №1:
Нет, но proc fcmp
позволяет создавать функции.
options cmplib=work.funcs; proc fcmp outlib=work.funcs.stats; function logit(p); if(0 lt; p lt; 1) then do; result = log(p/(1-p)); return(result); end; else put "ERROR: Invalid argument to logit function."; endsub; run; data _null_; logit = logit(0.2); put logit; run;
Описание того, как сохранять и загружать пользовательские функции:
options cmplib=work.funcs;
Загрузите пользовательские функции из набора work.funcs
данных , если он существует.
proc fcmp outlib=work.funcs.stats;
Вывод и добавление пользовательских функций в именованный набор funcs
данных . 3-уровневый outlib
оператор немного сбивает с толку, поскольку на самом деле он создает иерархический набор данных.
Трехуровневое Имя
one.two.three
one
: Имя выходной библиотеки
two
: Имя набора данных для хранения пользовательских функций
three
: Имя пакета идентификаторов, которое будет добавлено в набор данных. Мы называем это stats
посылкой.
Если вы откроете набор work.funcs
данных , вы увидите stats
пакет в помеченном столбце _Key_
.