Анализ моделей оценки вероятности банкротства кредитных организаций

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 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>&copy; Никита Гребнев - @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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.