В этом SAStips'е рассказывает про нюансы выбора начального значения для генератора случайных чисел.

На прошлой неделе мне задали простой вопрос: "Как выбрать начальное значение для функций генерации случайных чисел в SAS?" Ответ может вас удивить: используйте любое начальное значение, которое вам нравится. Для хорошо спроектированного генератора случайных чисел каждое значение, вероятно, порождает поток случайных чисел, и различные потоки можно рассматривать как статистически эквивалентные.

Случайное означает случайное

Поясню: я говорю об использовании начального значения для инициализации современного высококачественного генератора псевдослучайных чисел (RNG). Например, в SAS можно использовать STREAMINIT для инициализации алгоритма вихря Мерсенна, который используется функцией RAND. Если вы все еще пользуетесь старыми функциями RANUNI или RANNOR, ознакомьтесь со статьей "Шесть причин отказаться от функции RANUNI для генерации случайных чисел."

Начальное значение задает конкретный поток из набора возможных случайных числовых потоков. При указании начального значения SAS генерирует одинаковый набор псевдослучайных чисел при каждом запуске программы. Однако нет никаких оснований предпочитать один поток другому. Поток для начального значения 12345 так же случаен, как поток для девятизначного простого числа 937162211.

Некоторые видят число 937162211 и считают, что оно выглядит "более случайным", чем 12345. Затем они предполагают, что поток случайных чисел, полученный в результате вызова CALL STREAMINIT (937162211), является "более случайным", чем поток, полученный в результате вызова CALL STREAMINIT (12345). Нет, случайное значит случайное. В современных генераторах псевдослучайных чисел потоки для разных начальных значений должны иметь сходные статистические свойства. Кроме того, многие генераторы используют начальное число в двоичной системе, и число (12345)10 = (11000000111001)2 выглядит довольно случайным! На самом деле, если не брать числа, являющиеся степенью двойки, то двоичные представления большинства десятичных чисел "выглядят случайными".

 

Настройка доменной аутентификации в Oracle Application Express

Шаг 1.

ВАЖНО. Для выполнения первых трех шагов потребуются права sys.

Все нижеперечисленные скрипты необходимо выполнять в любом удобном вам редакторе (sql developer, sql navigator, toad, да хоть в sqlplus для самых смелых).

 

Для начала создаем принципала (по сути ораклового пользователя)

CREATE USER apex_ldap_auth IDENTIFIED BY <password>;

И сразу его лочим, ибо нефиг :)

ALTER USER apex_ldap_auth ACCOUNT LOCK;

 

Шаг 2.

Создаем ACL и подписываем его.

Я понимаю, что регулярные выражения могут быть очень сложными (да, на эту тему написано множество книг), но основные выражения для проверки шаблонов, таких как почтовые индексы или номера телефонов, не так уж трудны. Кроме того, регулярные выражения можно использовать при поиске в Google.

Я добавил в свою новую книгу (третье издание Методы очистки данных с использованием SAS) главу с описанием этой темы. В качестве примера рассмотрим программу, которую можно использовать для проверки канадских почтовых индексов с помощью регулярных выражений. Этот почтовый индекс имеет следующий вид:

LDLDLD или LDL DLD,

где 'L' — буква, 'D' — цифра. Существуют некоторые правила о том, какие буквы можно использовать в первой, третьей и пятой позиции, но пока мы будем игнорировать их.

Лекция по python, прочитанная Владиславом Бояджи 13.06.17

Тема: индексы (Indexing, selection, and filtering), джойн датафреймов (Combining and merging data sets)

Новая рубрика. Перевод небольших учебных пособий SAS Tips, публикующихся экспертами SAS в официальных блогах на английском. Есть интересные и полезные уроки

Начнем с туториала по функциям INTCK и INTNX. Урок построен на примере президентов США, ну так и писал американский эксперт Rick Wicklin :)

INTCK и INTNX: Две важные функции для вычисления интервалов между датами в SAS

На прошлой неделе я продемонстрировал временную шкалу для здравствующих президентов США. Число здравствующих президентов постоянно в течение временного интервала между датами инаугурации и датами смерти президентов. Данные были взяты из таблицы в Википедии (приведена ниже), в которой показано количество лет и дней между событиями. В этой статье описано, как использовать функции INTCK и INTNX в SAS для вычисления времени между событиями в этом формате. В частности, я использую два малоизвестных варианта этих функций, которые облегчают эту задачу

Интервалы между датами

Если вы вычисляете интервал между двумя датами (датой начала и датой окончания), есть две функции SAS, о которых вы обязательно должны знать.

  • Функция INTCK возвращает количество единиц времени между двумя датами. В качестве единицы времени можно выбрать годы, месяцы, недели, дни и многое другое. Например, в своей предыдущей статье я использовал функцию INTCK для определения количества дней между двумя датами.
  • Функция INTNX возвращает дату SAS, которая отстоит от указанной даты на указанное количество единиц времени. Например, функцию INTNX можно использовать для вычисления даты, которая находится на 308 дней позже указанной даты.

RS-connect - инструмент, позволяющий наладить взаимодействие с госорганами от компании R-style softlab

Видеопрезентация, проведенная для rtportal 26.05.17:

Стандартный опросник rtportal.ru

Основной функционал:

Лекция по python, прочитанная Владиславом Бояджи 30.05.17
Тема: визуализация средствами Python

Много графиков, гистограмм, методов и прочей магии. Есть даже js

Создание приложения в Oracle Apex

  • В данной статье мы рассмотрим основные аспекты разработки приложения в Oracle Apex. Перед началом работы нам необходимо создать приложение в Oracle Apex. Для этого заходим в основной интерфейс разработки и нажимаем «Create» на главной странице.

  • Далее выбираем тип приложения. В нашем случае это будет «Desktop» версия приложения.

Лекция по jupyter notebook, прочитанная Владиславом Бояджи 24.05.17
Тема: обзор основного функционала jupyter + небольшая часть по введению в python

Лекция по python, прочитанная Владиславом Бояджи 23.05.17
Тема: введение в библиотеку pandas

Когда система работает не так, как ожидается, или не работает вообще, главный способ понять, что происходит – это проанализировать логи. Логи так же полезны для определения показателей работы системы. В этой статье описан один из вариантов анализа и организации системы логирования, используемой в системе принятия кредитного решения на базе SAS RTDM.

При работе с ПО SAS RTDM используются несколько видов логов – часть из них системные, часть определяется самостоятельно в зависимости от задачи.

 1. Системные логи

Формируются службами SAS RTDM в виде текстовых файлов и по умолчанию складируются в папки в \Config\Lev1

Чаще всего используются системные логи (в скобках указаны пути к логам по умолчанию):

  • Engine Server (C:\SAS\Config\Lev1\Web\Logs)
  • Stored Process Server (C:\SAS\Config\Lev1\SASApp\StoredProcessServer\Logs)
  • Object Spawner (C:\SAS\Config\Lev1\ObjectSpawner\Logs)

Этих видов логов обычно хватает чтобы определить причины ошибок, возникающих при работе сервисов задеплоенных на Engine Server и на StoredProcessServer .

Степенью детализации логов можно управлять через их конфиги. Стоит заметить, что выбор уровня детализации – это всегда компромисс между объемом записываемой  них информации и негативными эффектами расширения логирования, такими как быстрое заполнение дискового пространства и замедление работы системы (из-за увеличения количества записываемых на жесткий диск данных). Обычно используется уровень TRACE, который логирует только ошибки и предупреждения (warnings). В некоторых случаях иногда временно поднимает его до INFO, например, когда система начинает работать нестандартно, а на уровне TRACE не очевидно, почему так происходит.

Лекция по python, прочитанная Владиславом Бояджи 16.05.17
Тема: функции, лямбда функции, генераторы

Fis Collection System - система сбора просроченной задолженности от компании FIS

Видеопрезентация, проведенная для rtportal 03.05.17:

Промо текст от FIS:

  Задача построения эффективной и плодотворной работы с просроченной задолженностью в настоящее время очень актуальна для российских банков. Для ее решения требуется не только оптимизация соответствующих базовых бизнес-процессов, но и внедрение промышленного программного обеспечения, поддерживающего все этапы взыскания задолженности.

  Программный продукт FIS Collection System является удобным инструментом для работы на всех этапах коллекторской деятельности и дает гарантию максимальной эффективности полного комплекса работ по возврату просроченной задолженности как с физических, так и с юридических лиц.

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

Ниже я опишу один из вариантов решения проблемы на примере подготовки паспорта качества работы кредитной стратегии. 

Сразу скажу, что бизнес составляющая процесса в данном случае рассматриваться не будет. То есть плох или хорош, например, уровень Approval Rate 70%, оставим для дискуссий. Сейчас перед нами другая задача - показать что процесс работает стабильно, качественно и без аномалий. В нашем примере это значит, что нам важно что распределение Approval Rate вообще существует и не принимает экстремальных значений 0% и 100% (разумеется, вы можете считать экстремальными и другие цифры). Если же показатель превысил порог, то это повод для ручного анализа проблемы, в результате которого должно появиться как минимум объяснение ситуации, а в худшем случае исправление ошибки.