Анализ моделей оценки вероятности банкротства кредитных организаций
Выбор публичных показателей для построения, обучения и тестирования модели нейронной сети, которая будет использована в основе информационной системы прогнозирования банкротства банков. Обзор моделей прогнозирования банкротства кредитных организаций.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 30.06.2017 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
</p>
<p class="lead"><em>Н9.1</em></p>
<p>
Н9.1 регулирует (ограничивает) кредитный риск банка в отношении участников (акционеров) банка и определяет максимальное отношение размера кредитов, банковских гарантий и поручительств, предоставленных банком своим участникам (акционерам) к собственным средствам (капиталу) банка.
</p>
<p class="text-info">
Максимальное значение 50%
</p>
<p class="lead"><em>Н10.1</em></p>
<p>
Н10.1 регулирует (ограничивает) совокупный кредитный риск банка в отношении всех физических лиц, способных воздействовать на принятие решения о выдаче кредита банком.
</p>
<p class="text-info">
Максимальное значение 3%
</p>
<p class="lead"><em>Н12</em></p>
<p>
Н12 регулирует (ограничивает) совокупный риск вложений банка в акции (доли) других юридических лиц и определяет максимальное отношение сумм, инвестируемых банком на приобретение акций (долей) других юридических лиц, к собственным средствам (капиталу) банка.
</p>
<p class="text-info">
Максимальное значение 25%
</p>
<p class="lead"><em>Н18</em></p>
<p>
Н18 регулирует (ограничивает) минимальное соотношение размера ипотечного покрытия и объема эмиссии облигаций с ипотечным покрытием.
</p>
<p class="text-info">
Минимальное значение 100%
</p>
</div>
Представление Macros/Index
@model PagedList. IPagedList<Bankruptcy11. Models. macro>
@using PagedList. Mvc;
@{
ViewBag. Title = "Index";
Layout = "~/Views/Shared/_Layout. cshtml";
}
<h2>Макроэкономические показатели</h2>
<table class="table">
<tr>
<th>
Год
</th>
<th>
Месяц
</th>
<th>
Гос. бюджет
</th>
<th>
Агрегат М2
</th>
<th>
Резерв ЦБ
</th>
<th>
Валютный резерв ЦБ
</th>
<th>
Курс доллара ММВБ
</th>
<th>
Индекс РТС
</th>
<th>
Кредиторская задолженность
</th>
<th>
Дебиторская задолженность
</th>
<th>
Инфляция
</th>
<th>
ВВП
</th>
<th>
Средняя зарплата
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html. DisplayFor (modelItem => item. months. year)
</td>
<td>
@Html. DisplayFor (modelItem => item. months. month)
</td>
<td>
@Html. DisplayFor (modelItem => item. DefProf)
</td>
<td>
@Html. DisplayFor (modelItem => item. M2)
</td>
<td>
@Html. DisplayFor (modelItem => item. MrezCB)
</td>
<td>
@Html. DisplayFor (modelItem => item. VrezCB)
</td>
<td>
@Html. DisplayFor (modelItem => item. MMVB)
</td>
<td>
@Html. DisplayFor (modelItem => item. RTSI)
</td>
<td>
@Html. DisplayFor (modelItem => item. KredZad)
</td>
<td>
@Html. DisplayFor (modelItem => item. DebZad)
</td>
<td>
@Html. DisplayFor (modelItem => item. Infl)
</td>
<td>
@Html. DisplayFor (modelItem => item. VVP)
</td>
<td>
@Html. DisplayFor (modelItem => item. Zarp)
</td>
</tr>
}
</table>
<br />
Страница @ (Model. PageCount < Model. PageNumber? 0: Model. PageNumber) из @Model. PageCount
@Html. PagedListPager (Model, page => Url. Action ("Index", new { page }))
Представление Search/Index
@model Bankruptcy11. ViewNodels. DetailsViewModel
@{
ViewBag. Title = "Details";
Layout = "~/Views/Shared/_Layout. cshtml";
}
@if (Model. listpage == 0)
{
<hr/>
<p>Банк с таким регистрационным номером или названием отсутствует</p>
}
else
{
<h2>Информация о банке @Model. bankdetails. Name</h2>
<div>
<h4></h4>
<hr />
<dl class="dl-horizontal">
<dt>
Регистрационный номер
</dt>
<dd>
@Html. DisplayFor (model => model. bankdetails. Id)
</dd>
<dt>
Банкротство
</dt>
<dd>
@Html. DisplayFor (model => model. bankdetails. Bankrupt)
</dd>
@if (Model. bankdetails. Bankrupt)
{
<dt>
Лишён лицензии
</dt>
<dd>
@Html. DisplayFor (model => model. bankdetails. month) /@Html. DisplayFor (model => model. bankdetails. year)
</dd>
}
else
{
<dt>
Отклонение
</dt>
<dd>
@Html. DisplayFor (model => model. bankdetails. otkl)
</dd>
<dt>
Риск
</dt>
<dd>
@Html. DisplayFor (model => model. bankdetails. risk) %
</dd>
}
</dl>
</div>
<p>
@Html. ActionLink ("Посмотреть ликвидность", "ShowLiquidity", "Banks", new { id = Model. bankdetails. Id, pagenumber = 1 }, new Dictionary<string, object> ())
</p>
}
Представление Shared/_Layout
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=". navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
@Html. ActionLink ("На главную", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
</div>
<form id="searchForm" method="get" action="~/Search/Index" class="navbar-form navbar-left" role="search">
<div class="form-group">
<input id="search" name="search" type="text" class="form-control" placeholder="Найти банк">
</div>
<button value="Search" type="submit" class="btn btn-default">Поиск</button>
</form>
<div class="navbar-right">
<ul class="nav navbar-nav">
<li>@Html. ActionLink ("Макроэкономические показатели", "Index", "Macros") </li>
<li>@Html. ActionLink ("Список банков", "Index", "Banks") </li>
</ul>
</div>
</div>
</div>
<div class="container body-content">
@RenderBody ()
<hr />
<footer>
<p>© Никита Гребнев - @DateTime. Now. Year</p>
</footer>
</div>
</body>
</html>
Класс Parser
public class Parser
{
public static DataTable GetLiquid (string nfile)
{
DataTable initialtable = new DataTable ();
DataTable returntable = new DataTable ();
WDBF wd40 = new WDBF ();
initialtable = wd40. GetAll (nfile);
DataRow [] drs = initialtable. Select (null, null, DataViewRowState. CurrentRows);
returntable. Columns. Add ("РЕГН");
returntable. Columns. Add ("Н1.0");
returntable. Columns. Add ("Н1.1");
returntable. Columns. Add ("Н1.2");
returntable. Columns. Add ("Н2");
returntable. Columns. Add ("Н3");
returntable. Columns. Add ("Н4");
returntable. Columns. Add ("Н7");
returntable. Columns. Add ("Н10.1");
int lontghh = 0;
int lastrow = Convert. ToInt32 (drs [0] [0]);
int height = 0;
DataRow workrow = null;
for (int i = 0; i < drs. Length; i++)
{
if (Convert. ToInt32 (drs [i] [0])! = lastrow)
{
lontghh++;
workrow = returntable. NewRow ();
workrow [0] = lastrow;
for (int j = 0; j < height; j++)
{
if (Convert. ToString (drs [i - height + j] [1]) == "Н1.0") workrow [1] = Convert. ToDouble (drs [i - height + j] [2]);
if (Convert. ToString (drs [i - height + j] [1]) == "Н1.1") workrow [2] = Convert. ToDouble (drs [i - height + j] [2]);
if (Convert. ToString (drs [i - height + j] [1]) == "Н1.2") workrow [3] = Convert. ToDouble (drs [i - height + j] [2]);
if (Convert. ToString (drs [i - height + j] [1]) == "Н2") workrow [4] = Convert. ToDouble (drs [i - height + j] [2]);
if (Convert. ToString (drs [i - height + j] [1]) == "Н3") workrow [5] = Convert. ToDouble (drs [i - height + j] [2]);
if (Convert. ToString (drs [i - height + j] [1]) == "Н4") workrow [6] = Convert. ToDouble (drs [i - height + j] [2]);
if (Convert. ToString (drs [i - height + j] [1]) == "Н7") workrow [7] = Convert. ToDouble (drs [i - height + j] [2]);
if (Convert. ToString (drs [i - height + j] [1]) == "Н10.1") workrow [8] = Convert. ToDouble (drs [i - height + j] [2]);
}
returntable. Rows. Add (workrow);
height = 0;
lastrow = Convert. ToInt32 (drs [i] [0]);
}
else height++;
}
drs = returntable. Select (null, null, DataViewRowState. CurrentRows);
return returntable; }
public static string [,] GetMacros ()
{
double infbase = 46.96;
string [,] gov_m = ParserSophist (new int [] { 6, 6, 6, 6 }, "http://sophist. hse.ru/exes/tables/GOV_M. htm");
string [,] m_m = ParserSophist (new int [] { 6, 7, 5, 5 }, "http://sophist. hse.ru/exes/tables/M_M. htm");
string [,] finmar_m = ParserSophist (new int [] { 5, 5, 7, 1, 1, 1, 1 }, "http://sophist. hse.ru/exes/tables/FINMAR_M. htm");
string [,] finent_m = ParserSophist (new int [] { 7, 6, 6, 4, 7, 6, 6 }, "http://sophist. hse.ru/exes/tables/FINENT_M. htm");
string [] inflation = ParserInflation ("https: // www.statbureau.org/ru/russia/inflation-tables/inflation. monthly. csv");
string [,] wag_m = ParserSophist (new int [] { 5, 5, 7 }, "http://sophist. hse.ru/exes/tables/WAG_M. htm");
int findlowest = 12;
if (gov_m. GetLength (0) < findlowest) findlowest = gov_m. GetLength (0);
if (m_m. GetLength (0) < findlowest) findlowest = m_m. GetLength (0);
if (finmar_m. GetLength (0) < findlowest) findlowest = finmar_m. GetLength (0);
if (finent_m. GetLength (0) < findlowest) findlowest = finent_m. GetLength (0);
if (wag_m. GetLength (0) < findlowest) findlowest = wag_m. GetLength (0);
string [,] macros = new string [findlowest, 8];
for (int i = 0; i < macros. GetLength (0); i++)
{
infbase += Convert. ToDouble (inflation [i]);
macros [i, 0] = (Convert. ToDouble (gov_m [i, 0]) - Convert. ToDouble (gov_m [i, 1])). ToString ();
macros [i, 1] = m_m [i, 2];
macros [i, 2] = m_m [i, 3];
macros [i, 3] = finmar_m [i, 2];
macros [i, 4] = (Convert. ToDouble (finent_m [i, 0]) / (infbase)). ToString ();
macros [i, 5] = (Convert. ToDouble (finent_m [i, 4]) / (infbase)). ToString ();
macros [i, 6] = inflation [i];
macros [i, 7] = (Convert. ToDouble (wag_m [i, 2]) / (infbase)). ToString ();
}
return macros;
}
static string [,] ParserSophist (int [] b, string path)
{
HttpWebRequest req = (HttpWebRequest) WebRequest. Create (path);
HttpWebResponse resp = (HttpWebResponse) req. GetResponse ();
StreamReader sr = new StreamReader (resp. GetResponseStream (), Encoding. GetEncoding ("windows-1251"));
string cn = sr. ReadToEnd ();
sr. Close ();
resp. Close ();
cn = cn. Substring (cn. IndexOf ("2017 1"));
cn = cn. Replace ("<TD ALIGN='right'><FONT size=+0 face=\"Tahoma\">", "");
cn = cn. Replace ("</FONT></TD>", "");
cn = cn. Substring (0, cn. Length - cn. Substring (cn. IndexOf ("<TR bgColor")). Length);
cn = cn. Replace ("</TR>", "");
cn = cn. Replace ("<TR ALIGN='center' VALIGN='bottom'>", "");
cn = cn. Replace (Environment. NewLine, " ");
cn = cn. Trim ();
cn = cn. Remove (0,5);
cn = cn. Replace ("", "");
string [,] boxen = new string [cn. Length / (b. Sum () + 1), b. Length];
int tmpread = 0;
string tmpstr = "";
for (int i = 0; i < boxen. GetLength (0); i++)
{
tmpstr = cn. Substring (i * (b. Sum () + 1), (b. Sum () + 1));
for (int j = 0; j < b. Length; j++)
{
boxen [i, j] = tmpstr. Substring (1 + tmpread, b [j]);
tmpread += b [j];
}
tmpread = 0;
}
return boxen;
}
static string [] ParserInflation (string path)
{
HttpWebRequest req = (HttpWebRequest) WebRequest. Create (path);
HttpWebResponse resp = (HttpWebResponse) req. GetResponse ();
StreamReader sr = new StreamReader (resp. GetResponseStream ());
string cn = sr. ReadToEnd ();
sr. Close ();
resp. Close ();
cn = cn. Substring (cn. IndexOf ("2017"));
cn = cn. Remove (0,5);
string [] splitted = cn. Split (',');
string [] bordersplitted;
int border = 0;
int iteration = 0;
while ( (border == 0) && (iteration < splitted. Length))
{
if (splitted [iteration] == "") border = iteration;
iteration++;
}
if (border > 0)
{
bordersplitted = new string [border];
for (int i = 0; i < bordersplitted. Length; i++) bordersplitted [i] = splitted [i]. Replace ('. ', ',');
splitted = bordersplitted;
}
else
{
bordersplitted = new string [12];
for (int i = 0; i < bordersplitted. Length; i++) bordersplitted [i] = splitted [i]. Replace ('. ', ',');
splitted = bordersplitted;
}
return splitted;
} }
Класс Compute
public class Compute
{
public double [] Start (double [] m, double [] l, int n)
{
double [] res = Calculate (m, l, n);
return res;
}
public static double [] Calculate (double [] macro, double [] liquid, int quantity)
{
double [] result = new double [2];
double err = 0.2507;
double X1 = macro [0];
double X2 = macro [1];
double X3 = macro [2];
double X4 = macro [3];
double X5 = macro [4];
double X6 = macro [5];
double X7 = macro [6];
double X8 = macro [7];
double Y1 =
(Math. Tanh
(
(-0.410535745432846) *
Math. Tanh
(
(-0.753993827125983) * (0.001118443127167 * X1 - (-0.367520411587071)) +
5.57541248142059 * (0.010582010582011 * X2 - 4.76719576719577) -
4.98898600391785 * (0.010598834128246 * X3 - 4.26126126126126) -
1.72881473557489 * (0.001543865066193 * X4 - 2.0698984908719) -
4.09940750926392 * (0.000318636844051 * X5 - 6.41051737758997) -
2.2909705769552 * (0.00037568831641 * X6 - 7.32799205482326) +
13.7684024383798 * (0.488997555012225 * X7 - 0.882640586797066) +
13.108523380234 * (0.000145399722886 * X8 - 3.69140092371281) + 11.4316011842742
) +
0.459556838003578 *
Math. Tanh
(
(-6.61634385048516) * (0.001118443127167 * X1 - (-0.367520411587071)) -
3.97753541147134 * (0.010582010582011 * X2 - 4.76719576719577) +
2.99222041051853 * (0.010598834128246 * X3 - 4.26126126126126) -
4.84728824744538 * (0.001543865066193 * X4 - 2.0698984908719) +
12.6169773855694 * (0.000318636844051 * X5 - 6.41051737758997) -
5.18922315612881 * (0.00037568831641 * X6 - 7.32799205482326) +
2.29776077527238 * (0.488997555012225 * X7 - 0.882640586797066) -
0.793282335318324 * (0.000145399722886 * X8 - 3.69140092371281) - 1.08476157470122
) - 0.564179095598791
) + 1
) / 0.181818181818182;
X1 = liquid [0];
X2 = liquid [1];
X3 = liquid [2];
X4 = liquid [3];
X5 = liquid [4];
X6 = liquid [5];
X7 = liquid [6];
X8 = liquid [7];
double Y2 =
(Math. Tanh
(
8.11015521711839 *
Math. Tanh
(
(-0.501470977762706) * (0.061448651970197 * X1 - 0.978800215070282) -
0.778943076335783 * (0.034567521892764 * X2 - 0.978952220003073) -
0.750481452315044 * (0.046090029190352 * X3 - 0.978952220003073) +
0.375229570462166 * (0.014300559628567 * X4 - 1.00038134825676) +
0.218321910816093 * (0.00839284842029 * X5 - 1.00056232084416) +
0.403068045487486 * (0.000333380261861 * X6 - 1.00028157116711) +
0.77353357297607 * (0.016085715445834 * X7 - 0.995127497157707) +
0.502838233121193 * (0.006296296296296 * X8 - 0.888888888888889) -
0.144261062229623
) -
1.85483031817679 *
Math. Tanh
(
30.2651111076382 * (0.061448651970197 * X1 - 0.978800215070282) -
13.4830407334928 * (0.034567521892764 * X2 - 0.978952220003073) -
22.0313616848902 * (0.046090029190352 * X3 - 0.978952220003073) -
1.68647281220141 * (0.014300559628567 * X4 - 1.00038134825676) +
0.576712528087854 * (0.00839284842029 * X5 - 1.00056232084416) +
0.183174043425955 * (0.000333380261861 * X6 - 1.00028157116711) -
1.34212512673077 * (0.016085715445834 * X7 - 0.995127497157707) +
16.1994189741987 * (0.006296296296296 * X8 - 0.888888888888889) -
8.25411282675237
) +
9.81364881452648 *
Math. Tanh
(
1.80909233673298 * (0.061448651970197 * X1 - 0.978800215070282) +
0.189511369971027 * (0.034567521892764 * X2 - 0.978952220003073) -
0.996057235954168 * (0.046090029190352 * X3 - 0.978952220003073) -
2.89299487039896 * (0.014300559628567 * X4 - 1.00038134825676) -
0.371143381215108 * (0.00839284842029 * X5 - 1.00056232084416) +
2.42238000155479 * (0.000333380261861 * X6 - 1.00028157116711) +
0.62486750845002 * (0.016085715445834 * X7 - 0.995127497157707) -
0.411447042087672 * (0.006296296296296 * X8 - 0.888888888888889) +
0.344278768242371
) -
6.13159848563647 *
Math. Tanh
(
1.00266897807028 * (0.061448651970197 * X1 - 0.978800215070282) -
0.075045336444157 * (0.034567521892764 * X2 - 0.978952220003073) +
0.333500370067636 * (0.046090029190352 * X3 - 0.978952220003073) -
5.68292177124973 * (0.014300559628567 * X4 - 1.00038134825676) +
0.359026648126369 * (0.00839284842029 * X5 - 1.00056232084416) +
1.29905271774295 * (0.000333380261861 * X6 - 1.00028157116711) +
1.72582249823967 * (0.016085715445834 * X7 - 0.995127497157707) -
0.081116315231472 * (0.006296296296296 * X8 - 0.888888888888889) -
0.196821501079183
) +
16.7116258929272 *
Math. Tanh
(
0.114799691970129 * (0.061448651970197 * X1 - 0.978800215070282) +
0.201162952519735 * (0.034567521892764 * X2 - 0.978952220003073) -
0.148258898360457 * (0.046090029190352 * X3 - 0.978952220003073) -
0.07723696682859 * (0.014300559628567 * X4 - 1.00038134825676) -
0.420155114714008 * (0.00839284842029 * X5 - 1.00056232084416) +
0.234855109834512 * (0.000333380261861 * X6 - 1.00028157116711) -
0.129687402035756 * (0.016085715445834 * X7 - 0.995127497157707) +
0.136989283594989 * (0.006296296296296 * X8 - 0.888888888888889) +
0.001477622977292
) +
1.24741524961086 *
Math. Tanh
(
(-0.112700656526394) * (0.061448651970197 * X1 - 0.978800215070282) -
20.8506190973417 * (0.034567521892764 * X2 - 0.978952220003073) -
59.801029481462 * (0.046090029190352 * X3 - 0.978952220003073) -
6.74703088588443 * (0.014300559628567 * X4 - 1.00038134825676) -
5.09774979394308 * (0.00839284842029 * X5 - 1.00056232084416) -
0.131880017940985 * (0.000333380261861 * X6 - 1.00028157116711) -
16.1045555410116 * (0.016085715445834 * X7 - 0.995127497157707) -
0.992611312096357 * (0.006296296296296 * X8 - 0.888888888888889) +
0.189585731515306
) +
0.419633134679638
) + 1
) / 2;
result [0] = Y2 + Y1/quantity - err;
result [1] = Y2 + Y1/quantity + err;
return result;
}
}
Размещено на Allbest.ru
Подобные документы
Основы прогнозирования банкротства предприятия с помощью индекса Альтмана. Создание программы для расчета коэффициента "Z" с помощью языка программирования Delphi. Расчет показателя эффективности активов по балансовой прибыли и доли оборотных средств.
курсовая работа [881,8 K], добавлен 30.01.2012Математические модели, построенные по принципу организации и функционирования биологических нейронных сетей, их программные или аппаратные реализации. Разработка нейронной сети типа "многослойный персептрон" для прогнозирования выбора токарного станка.
курсовая работа [549,7 K], добавлен 03.03.2015"Наивная" модель прогнозирования. Прогнозирование методом среднего и скользящего среднего. Метод опорных векторов, деревьев решений, ассоциативных правил, системы рассуждений на основе аналогичных случаев, декомпозиции временного ряда и кластеризации.
курсовая работа [2,6 M], добавлен 02.12.2014Понятие компьютерной и информационной модели. Задачи компьютерного моделирования. Дедуктивный и индуктивный принципы построения моделей, технология их построения. Этапы разработки и исследования моделей на компьютере. Метод имитационного моделирования.
реферат [29,6 K], добавлен 23.03.2010Прогнозирование валютных курсов с использованием искусственной нейронной сети. Общая характеристика среды программирования Delphi 7. Существующие методы прогнозирования. Характеристика нечетких нейронных сетей. Инструкция по работе с программой.
курсовая работа [2,2 M], добавлен 12.11.2010Разработка самообучающейся интеллектуальной информационной системы для анализа кредитоспособности заемщика и оценки кредитных рисков на основе подхода иммунокомпьютинга. Применение процедур кластеризации, классификации и формирования оценок рисков.
курсовая работа [822,3 K], добавлен 09.06.2012Проектирование и реализация модели, которая будет имитировать автозаправочную станцию с постоплатой. Подбор оптимальных параметров модели с учетом требований к сети массового обслуживания. Разработка модели в среде имитационного моделирования GPSS World.
контрольная работа [279,5 K], добавлен 16.03.2014Изучение непараметрических моделей коллективного типа в задаче прогнозирования временных зависимостей. Анализ исследования и восстановления показателей преступности от следственных мероприятий. Описания руководства программиста информационной системы.
дипломная работа [3,6 M], добавлен 25.09.2011Прогнозирование на фондовом рынке с помощью нейронных сетей. Описание типа нейронной сети. Определение входных данных и их обработка. Архитектура нейронной сети. Точность результата. Моделирование торговли. Нейронная сеть прямого распространения сигнала.
дипломная работа [2,7 M], добавлен 18.02.2017Изучение и реализация системы, использующей возможности Microsoft Azure для распределенного обучения нейронной сети. Рассмотрение функционирования распределенных вычислений. Выбор задачи для исследования; тестирование данного программного ресурса.
дипломная работа [2,0 M], добавлен 20.07.2015