В далёком 1974 году конгресс США утвердил любопытный закон "О равных кредитных возможностях" (Equal Credit Opportunity Act), который запрещает дискриминацию потенциальных заемщиков по полу, семейному положению, расе, цвету кожи, религии, стране происхождения, источнику дохода и возрасту.

Семейный статус можно спрашивать, если кредит предполагает что супруг будет со-заемщиком (в ипотечном кредите, например). Если кредит индивидуальный, то спрашивать нельзя.

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

Кредитор не может отказать соискателю по доходу, если доход фигурирует в государственном реестре пособий и выплат. Даже если потенциальный заёмщик живет только на пособие по безработице или алименты.

Пол не может запрашиваться и использоваться ни в каком виде, нельзя даже в скормоделях.

Полный перечень случаев, считающихся или не считающихся дискриминацией можно посмотреть здесь (eng).

Штрафы за несоблюдения закона составляют до $10,000 при единичном нарушении и до $500,000 при систематических дискриминациях.

Этот закон сильно расходится с современной банковской практикой в России, где пол, возраст и доход являются составляющими скоринговых моделей и напрямую влияют на оценку кредитоспособности потенциальных заёмщиков.



Статья на wiki (eng).

Если вы что-то делаете, то рано или поздно совершите ошибку:) Не совершает ошибок только тот, кто ничего не делает. Ошибки – это нормально. Тут бы можно было и расслабиться, однако, как говорил один умный человек «У вас есть право совершить ошибку и обязанность её исправить». С ошибками нужно работать, анализировать причины их возникновения, повышать скорость реакции, механизмы оценки, разрабатывать способы избежания или хотя бы минимизации урона. В разных областях свои есть свои нюансы, но я постараюсь не углубляться в абстрактные процессы и в этой статье опишу основные, с моей точки зрения, нюансы контроля качества доработок в риск-технологиях.

Верхнеуровневый процесс работы с задачей от момента постановки до момента установки на PROD выглядит так:

Опустим тонкости постановки, анализа и разработки задач. Начнем сразу с тестирования.

Тестирование в риск-технологиях делится на smoke, unit, regress, sit, uat, babysitting и load test.

Самый «длинный» средний срок ипотечного кредита зафиксирован в сегменте заемщиков до 30 лет – 16,0 лет, а самая высокая динамика роста данного показателя – в возрастном сегменте от 40 до 49 лет (+4,9%)

По данным 4 100 кредиторов, передающих сведения в Национальное бюро кредитных историй (НБКИ), средний срок ипотечного кредита в стране в 3 квартале 2017 года составил 14,9 лет, увеличившись на 4,3% (или 0,6 года) по сравнению с аналогичным периодом прошлого года (в 3 кв. 2016г. - 14,3 лет) (Таблица 1).

Таблица 1. Динамика среднего срока ипотечного кредита в 2016-2017гг., в гг.

Возраст заемщиков

Средний срок ипотечного кредита, в гг.

Динамика, в %

3 кв. 2016 г.

3 кв. 2017 г.

По всем возрастам

14,3

14,9

4,3%

в том числе:

 

 

 

до 25 лет

15,4

16,0

4,2%

от 25 до 29 лет

15,4

16,0

3,8%

от 30 до 39 лет

15,1

15,9

4,8%

от 40 до 49 лет

13,7

14,4

4,9%

от 50 до 59 лет

10,4

10,8

4,5%

от 60 до 65 лет

7,7

8,1

4,7%

старше 65 лет

9,4

8,6

-9,2%

 

Пакет SASPy позволяет выполнять анализ в SAS 9.4 с использованием объектно-ориентированных методов и объектов языка Python, а также «волшебных» методов языка Python. Перед выполнением кода SASPy преобразует объекты и методы, добавленные в код SAS. Для использования SASPy вам потребуется SAS 9.4 и Python версии 3.x или выше.

SASPy — это проект с открытым исходным кодом, и вы можете принять в нем участие.

После установки и настройки SASPy вы можете импортировать пакет SASPy, как показано ниже:

Для запуска примеров из этой статьи я использовал Jupyter Notebook.

1. Импортируйте пакет SASPy:

2. Запустите новый сеанс. Объект sas создается с помощью локально установленной версии SAS в Microsoft Windows при запуске сеанса SAS. После создания сеанса появляется следующая заметка:

Добавление данных

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

Здесь мы свели данные в два вида графиков "Чистая прибыль" и "Выручка" и построили их в разрезе крупнейших кредитных бюро, основных игроков рынка консалтинга-автоматизации и компаний, предоставляющих online сервисы чтобы вам удобнее было сравнивать. Сводить вместе данные поставщиков банковского программного обеспечения не стали, так как масштаб глобальных корпораций и локальных игроков сильно различается. Показатели по каждому конкретному поставщику ПО, детально можно посмотреть на его странице.

У автоматизаторов с лидирует Glowbyte, получивший за 2016 год 25,5 млн. чистой прибыли, которая, однако, снизилась по сравнению с 2015 г. почти на 20 млн.

График сравнения прибыли автоматизаторов:

По выручке у автоматизаторов так же лидирует Glowbyte, получивший за 2016 1,1 млрд. и это больше на 1 млрд. чем у ближайшего конкурента DoubleData :) На самом деле в рейтинге автоматизаторов не хватает данных по AT Consulting, которые мы сознательно исключили из выборки по причине того, что AT помимо консалта так же занимается разработкой собственного программного обеспечения, а это уже совсем другие объемы выручки и прибыли.

Графики сравнения выручки автоматизаторов:

По кредитным бюро за 2016 год нет информации от ОКБ, зато появилась от Equifax, которой не было за все предыдущие годы. С этими ограничениями мы, однако, можем все же с большой вероятностью предположить что самым прибыльным является Equifax с 550 млн. чистой прибыли за 2016 год.

По выручке все бюро находятся приблизительно на одном уровне в 1 млрд:

Для того, чтобы научить telegram бота отправлять сообщения о событиях из google calendar (добавлять новые, редактировать старые, следить за обновлениями и т.д.) необходимо связать его с календарём, который мы хотим отслеживать.

В одной из прошлых статей мы создали бота на python с использованием библиотеки telepot, теперь научим его общаться с Google Calendar Api.

Подготовка:

На официальном сайте google находим раздел с описанием условий, необходимых для установки python библиотеки google-api-python-client. Кстати, там же можно найти мануал для других языков программирования. Так как документация постоянно обновляется, вполне вероятно, что у вас будет уже модифицированная версия описания, но на момент написания статьи условия такие: 

  • Python2.6 и выше
  • Установленный pip для python
  • Доступ в интернет и любой веб-браузер
  • Аккаунт в google

Подключение Google API:

В этой статье мы разберемся, как перенести APEX приложение с одной среды на другую.

  1. Экспорт приложения с dev среды

Для примера на DEV среде мы создали приложение с названием SUPER PROJECT.

Все, кто получает данные от веб-сервисов в автоматическом режиме, пользуется тонкими клиентами, работает с web-приложениями (сайтами), наверняка не раз сталкивались с проблемой недоступности сервиса. Причины могут быть разные, здесь мы не будем их рассматривать, но если сервис играет важную роль в сложном процессе, хорошо бы иметь возможность регулярного мониторинга его доступности.

Можно периодически смотреть вручную что сервис доступен, но гораздо продуктивнее автоматизировать этот процесс. Рассмотрим один из вариантов автоматизации проверки доступности веб-сервиса при помощи cUrl.

Для начала нам потребуется установленный cUrl. Если с этим разобрались, нужно понять, что именно будет являться показателем доступности веб-сервиса. Для этого идеально подойдут коды HTTP статусов, находящиеся в заголовке ответа от сервиса/сайта. Что это такое, можно подробно прочитать на википедии.

  • Если пришел код 200 (или любой из 2xx) – сервис доступен и готов к работе
  • Если 3хх – сработало перенаправление. Это значит что мы попали на зеркало сервиса. То есть сайт работает, но перенаправляет запросы на другой адрес. Такое бывает, например, при переезде сайта на другой домен.
  • Остальные коды будут означать для нас – что с сервисом что-то не так и требуется ручное вмешательство.

Краткий обзор

Мы живем в мире данных — небольших данных, больших данных и данных других всевозможных объемов между небольшими и большими данными. В современном мире мы постоянно сталкиваемся с данными. Мы постоянно говорим о данных, создаем данные, считываем данные, передаем данные, получаем данные и сохраняем данные. И нам все равно хочется и требуется еще больше данных. Поэтому мы получаем еще больше данных на работе, на совещаниях, дома, с помощью смартфонов, по электронной почте, в голосовых сообщениях, в финансовых отчетах, во время анализа прибыли и убытков, при просмотре потоковых видео, в компьютерных играх, при сравнении спортивных команд и любимых игроков и многими другими способами. Мы собираем все больше данных с поразительной скоростью в надежде лучше понять мир вокруг нас. Нам как профессионалам SAS® мир данных предлагает много новых и интересных возможностей. Но в то же время мы понимаем, что источники данных могут создавать множество проблем с целостностью данных, которые сначала нужно решить. В этой презентации описаны доступные методы удаления повторяющихся наблюдений (строк) из наборов данных (таблиц) на основе значений строки и/или ключа с использованием SAS®.

Введение

Проблема, с которой мы сталкиваемся в некоторых наборах данных — наличие повторяющихся наблюдений и/или повторяющихся ключей. При обнаружении любых повторяющихся наблюдений и/или повторяющихся ключей их можно удалить с помощью SAS.

Представляю вашему вниманию первую, драфтовую версию карты скиллов, которыми должны или могут обладать сотрудники, работающие в сфере банковских рисков.

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

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

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

Например, для всех рисковиков обязателен навык написания SQL запросов. Для автоматизаторов уже не только SQL, но так же знание git и понимание принципов smoke тестирования. Для web/BI автоматизаторов к этому набору добавляется так же обязательное знание HTML, CSS и xml/xsd/wsdl. И так далее.

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

Карта доступна на постоянной основе в разделе "Обучение"

Сама карта:

Mock-объекты (объекты-заглушки) представляют собой фиктивную реализацию части программы или ее окружения, например, вызов стороннего сервиса. Mock-объекты, в частности mock-сервисы активно используются при модульном тестировании, когда нужно имитировать часть окружения тестируемого модуля.

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

Сервис-заглушка может нести внутри себя какую угодно логику. Наш будет очень простым – сервис будет отдавать в ответе содержимое определенного файла (нашего ответа по умолчанию), лежащего на диске. Соответственно, управлять ответом можно будет через изменение содержимого данного файла.

Реализация

Было принято решение реализовать mock-сервис на на языке Python 3.5 с использованием фреймворка flask. Flask был выбран из-за простоты написания и деплоя сервисов.

Устанавливается flask так же, как и все сторонние модули python. В командной строке нужно ввести: $ pip install flask

Теперь можно импортировать модуль и написать простое приложение.

Создадим файл mock.py

import flask
from flask import request

app = flask.Flask(__name__)

if __name__ == '__main__':
    app.debug = True 
    app.run()​

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

С ботом можно начать диалог как и с обычным человеком, или добавить его в группу. Разница в том, что бот понимает только ограниченный набор заранее заданных команд, которые передаются в программу. В зависимости от логики программы, бот может отвечать в чат или выполнять любые другие действия, доступные языку программирования на котором написан код. То есть можно, например, получить данные из базы данных, найти нужный файл, сохранить изображение и еще много чего.

Схематично это взаимодействие выглядит примерно так:

Папа ботов

ЕСИАНа прошлой неделе мы собирали вопросы для Алексея, а на этой уже получили ответ. Спасибо за оперативность! Читаем и просвещаемся.

rtportal: В каких сферах удалённая идентификация наиболее востребована?

АБ: Речь идет в первую очередь про снижение барьеров предоставления финансовых сервисов. В самом начале пилота это переводы, вклады, открытие счетов и кредитование.

Далее по мере развития пилота будут добавляться новые финансовые сервисы. Например страхование.

 

rtportal: Какие параметры будут базовыми (обязательными) для удаленной идентификации?

Подключение схем баз данных к библиотекам в метаданных SAS — очень важный этап в настройке функциональной и удобной среды для бизнес-пользователей. Эта задача может быть довольно сложной для неподготовленного администратора. В этой статье рассматриваются ключевые параметры, которые часто остаются незамеченными, но могут иметь большое значение. Использование неправильных параметров может привести к снижению производительности базы данных или даже к полной блокировке базы данных, в зависимости от количества подключений.

Введение

Когда я начал управлять своей первой средой SAS с помощью SAS management console, я быстро понял, что подключение внешних баз данных может быть сложной задачей. Настройка сервера довольно проста, но настройка библиотек — совершенно другое дело. Мастер создания библиотеки не сложен, но на вкладке с расширенными параметрами отображаются несколько параметров, которые изменяются от одной СУБД к другой. Игнорирование этих параметров и использование параметров по умолчанию приведет к проблемам с производительностью.

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

То, что вы найдете в этой статье — результат многолетней работы с подключениями к внешним базам данных. Это мой скромный вклад в создание рекомендаций для подключения СУБД в SAS management console. Мы не будем рассматривать настройку параметров для серверной части в SAS management console, так как она не представляет сложностей. Начнем с того, что, когда это возможно, следует использовать собственные коннекторы, а не коннекторы ODBC. Использование собственных коннекторов, как правило, позволяет SAS выполнять больший набор действий с СУБД.

Эта статья поможет понять, как SAS обрабатывает запросы к внешним базам данных, и оптимизировать свой код.