Язык Wolfram Language

Расширенный доступ к базе знаний Wolfram Knowledgebase

Данные от федеральной корпорации страхования депозитов

Федеральная корпорация по страхованию депозитов (FDIC) является независимым правительственным агентством США, которое занимается страхованием вкладов американских финансовых учреждений. В настоящее время вклады финансовых учреждений застрахованы на сумму до $250000. В данном примере мы рассмотрим данные о застрахованных организациях, распределение размеров их фондов, а также их географическую рассредоточенность.

Во-первых, загрузим данные FDIC в качестве ресурсного объекта, ResourceObject.

In[1]:=
Click for copyable input
fdic = ResourceData[ ResourceObject[ Association[ "Name" -> "FDIC Institution EntityStore", "UUID" -> "6f5d37d4-1406-483c-b67c-f58d903d16b1", "ResourceType" -> "DataResource", "Version" -> "1.0.0", "Description" -> "A Wolfram Language EntityStore with selected \ data on FDIC insured institutions", "ContentSize" -> Quantity[0, "Bytes"], "ContentElements" -> {"EntityStore"}]]]
Out[1]=

Зарегистрируем созданный информационный объект.

In[2]:=
Click for copyable input
PrependTo[$EntityStores, fdic];

Посчитаем количество учреждений, застрахованных через FDIC.

In[3]:=
Click for copyable input
Length[ents = EntityList["FDICInstitution"]]
Out[3]=

Перечислим некоторые из доступных свойств созданного информационного объекта.

In[4]:=
Click for copyable input
EntityProperties["FDICInstitution"] // Sort // Take[#, 20] &
Out[4]=

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

In[5]:=
Click for copyable input
GeoListPlot[EntityList["FDICInstitution"], PlotMarkers -> "$"]
Out[5]=

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

In[6]:=
Click for copyable input
ListLogLogPlot[ Reverse@Sort[EntityValue["FDICInstitution", "TotalAssets"]], AxesLabel -> Automatic, PlotStyle -> PointSize[Medium]]
Out[6]=

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

In[7]:=
Click for copyable input
empVsAssets = EntityValue[ "FDICInstitution", {"TotalEmployeeNumber", "TotalAssets"}];
In[8]:=
Click for copyable input
ListLogLogPlot[empVsAssets, AxesLabel -> Automatic]
Out[8]=

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

код на языке Wolfram Language целиком
In[9]:=
Click for copyable input
ListLogLogPlot[ Callout[{#2, #3}, #1] & @@@ EntityValue[ EntityList[ EntityClass["FDICInstitution", "TotalAssets" -> TakeLargest[6]]], {"Label", "TotalEmployeeNumber", "TotalAssets"}], PlotRangePadding -> Scaled[0.25], AxesLabel -> {"employee count", "assets"}]
Out[9]=

Отобразим на графике размер задолженности и размер активов.

In[10]:=
Click for copyable input
assetsVsLiability = EntityValue["FDICInstitution", {"TotalAssets", "TotalLiabilities"}];
In[11]:=
Click for copyable input
ListLogLogPlot[assetsVsLiability, AxesLabel -> Automatic]
Out[11]=

Сравним на графике объем кредитов и лизинга с общей суммой депозитов.

In[12]:=
Click for copyable input
loanVsDeposit = EntityValue[ "FDICInstitution", {"NetLoansAndLeases", "TotalDeposits"}];
In[13]:=
Click for copyable input
nmf = NonlinearModelFit[ Select[QuantityMagnitude /@ loanVsDeposit, Min[#] > 0 &], c + a x^\[Alpha], {a, \[Alpha], c}, x]
Out[13]=
In[14]:=
Click for copyable input
Show[ListPlot[loanVsDeposit], Plot[Evaluate[Normal[nmf]], {x, 0, 10^10}, PlotStyle -> Red, AxesLabel -> Automatic]]
Out[14]=

Сравним 1 эшелон (активы с низкой степенью риска) и 2 эшелон (активы с высокой степенью риска) капитала с общей суммой активов.

In[15]:=
Click for copyable input
{tierOneCapitalToAssets, tierTwoCapitalToAssetsCapitalToAssets} = (Divide @@@ EntityValue[ "FDICInstitution", {#, "TotalAssets"}]) & /@ {"TierOneCapital", "TierTwoRiskBasedCapital"};
In[16]:=
Click for copyable input
Histogram[{tierOneCapitalToAssets, tierTwoCapitalToAssetsCapitalToAssets}, {0, 0.3, 0.01}, ChartLegends -> {"Tier 1", "Tier 2"}, PlotLabel -> "Capital/Assets Ratio"]
Out[16]=

Получим распределение активов как информационный объект типа "EntityAssociation".

In[17]:=
Click for copyable input
dat = EntityValue["FDICInstitution", "TotalAssets", "EntityAssociation"];

Отобразим на графике распределение застрахованных активов.

In[18]:=
Click for copyable input
Histogram[dat, "Log", AxesLabel -> Automatic]
Out[18]=

Покажем географическое расположение банков с активами более 5 миллиардов и 300 миллиардов долларов.

In[19]:=
Click for copyable input
GeoListPlot[ Keys[Select[dat, GreaterThan[Quantity[#, "USDollars"]]]]] & /@ {5*^9, 300*^9}
Out[19]=

На графике видно, что 10 наиболее крупных банков имеют активы, чьи размеры превышают размеры активов всех остальные 6121 банков.

код на языке Wolfram Language целиком
In[20]:=
Click for copyable input
With[{atas = QuantityMagnitude[ EntityValue["FDICInstitution", EntityProperty["FDICInstitution", "AverageTotalAssets"]]]}, ListLogLogPlot[100 Accumulate[Reverse[Sort[atas]]]/Total[atas], PlotRange -> All, GridLines -> Automatic, PlotStyle -> PointSize[Medium], AxesLabel -> {None, Quantity[None, "Percent"]}]]
Out[20]=

Определим банки с самыми крупными депозитами.

In[21]:=
Click for copyable input
dat1 = EntityValue["FDICInstitution", "TotalDeposits", "EntityAssociation"];
In[22]:=
Click for copyable input
{bottom1percent, top1percent} = Quantile[values = Values[dat1], {0.01, 0.99}]
Out[22]=

Обозначим их на карте.

In[23]:=
Click for copyable input
GeoListPlot[Keys[Select[dat1, GreaterThan[top1percent]]]]
Out[23]=

Распределение активов по городам в значительной степени соответствует закону Бенфорда.

код на языке Wolfram Language целиком
In[24]:=
Click for copyable input
$percity = Reverse[SortBy[{#[[1, 1]], Total[#[[All, -1]]]} & /@ Normal[Normal[ DeleteMissing[ SortBy[GroupBy[ EntityValue["FDICInstitution", {"City", "TotalAssets"}], First] , Length], 1, 3]][[All, -1]]], Last]];
In[25]:=
Click for copyable input
ListPlot[{Tally[ IntegerDigits[Round[QuantityMagnitude[#2]]][[1]] & @@@ $percity], Table[{d, Length[$percity] Log10[1 + 1/d]}, {d, 1, 9}]}, PlotRange -> All, Filling -> Axis, PlotLegends -> {"total assets", "Benford"}]
Out[25]=

Покажем на карте банки с наиболее значительным плечом финансового рычага.

код на языке Wolfram Language целиком
In[26]:=
Click for copyable input
dataSet3 = Append[#, <| "FinancialLeverage" -> N[#TotalLiabilities/#TotalEquity]|>] & /@ EntityValue[ "FDICInstitution", {"Position", "TotalLiabilities", "TotalEquity"}, "Dataset"];
In[27]:=
Click for copyable input
dataSet3[TakeLargestBy["FinancialLeverage", 10]]
Out[27]=

Построим распределение размеров финансового левериджа.

In[28]:=
Click for copyable input
Histogram[dataSet3[All, "FinancialLeverage"], {0, 20, 0.5}, PlotLabel -> "FDIC banks Financial Leverage distribution"]
Out[28]=

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

код на языке Wolfram Language целиком
In[29]:=
Click for copyable input
props = {EntityProperty["FDICInstitution", "TotalAssets"], EntityProperty["FDICInstitution", "LongTermAssets"], EntityProperty["FDICInstitution", "TotalLiabilities"]}; data = Select[ N@QuantityMagnitude@ DeleteMissing[ EntityValue["FDICInstitution", Append[props, "Entity"]], 1, 2], Min[Most[#]] > 0 &];
In[30]:=
Click for copyable input
data2 = Select[{#1/#2, #1/#3, #4} & @@@ data, Between[{0, 15}][#[[1]]] && Between[{1, 1.4}][#[[2]]] &];
In[31]:=
Click for copyable input
sdk = SmoothKernelDistribution[Most /@ data2];
In[32]:=
Click for copyable input
label[{a_, b_, c_, _[d_]}] := Column[{d, Grid[Transpose[{props, Quantity[NumberForm[#, 4], "USDollars"] & /@ {a, b, c}}], Dividers -> Center]}]
In[33]:=
Click for copyable input
ContourPlot[PDF[sdk, {x, y}], {x, 0, 15}, {y, 1, 1.4}, PlotRange -> All, Contours -> 50, ContourStyle -> None, ColorFunction -> (Lighter[ColorData["AvocadoColors"][#], 0.5] &), FrameLabel -> {"total asssets"/"long term assets", "total asssets"/"total liabilities"}, Epilog -> ({ColorData["DarkRainbow"][(Log10[#1] - 7)/5], PointSize[0.00125], Point[{#1/#2, #1/#3}]} & @@@ data)]
Out[33]=

Родственные примеры

de en es fr ja ko pt-br zh