Wolfram言語

Knowledgebaseへの幅広いアクセス

連邦預金保険公社の組織データ

連邦預金保険公社(FDIC)は,国内の金融機関の預金に責任を持つ合衆国政府の独立した機関である.現在のところ,加盟機関の預金は25万ドルまで保証されている.ここでは,加盟金融機関の債権,大きさの分布,地理的散らばりを調べる.

まず,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]=

規模が最も大きい6つの機関にラベルを付ける.

完全なWolfram言語入力を表示する
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]=

中核的自己資本(安全)と補完的自己資本(リスクが大きい)を総資産と比較する.

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]=

資産が50億ドルを超える銀行と3000億ドルを超える銀行の位置を表示する.

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

上位10行が残りの6121行を合わせたよりも多くの資産を有することをグラフィカルに示す.

完全なWolfram言語入力を表示する
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]=

預金量が上位1%の銀行を求める.

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]=

都市に対する資産の分布はBenfordの法則と驚くほど一致する.

完全なWolfram言語入力を表示する
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言語入力を表示する
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言語入力を表示する
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 ko pt-br ru zh