トンネル
TunnelDataは,長さや所在地等,トンネルについての情報を提供する.
In[1]:=
![Click for copyable input](assets.ja/tunnels/In_55.png)
tunnels = TunnelData[];
In[2]:=
![Click for copyable input](assets.ja/tunnels/In_56.png)
Length[tunnels]
Out[2]=
![](assets.ja/tunnels/O_47.png)
それぞれのトンネルについて,単一あるいは複数の国で与えられる長さと所在地を求める.
In[3]:=
![Click for copyable input](assets.ja/tunnels/In_57.png)
rawData = TunnelData[tunnels, {"Countries", "Length"}];
データをきれいにし,欠測値を取り除く.
In[4]:=
![Click for copyable input](assets.ja/tunnels/In_58.png)
data = DeleteMissing[rawData, 1, 2];
長さのデータをマイルに変換する.
In[5]:=
![Click for copyable input](assets.ja/tunnels/In_59.png)
data[[All, 2]] = UnitConvert[N[data[[All, 2]]], "Miles"];
In[6]:=
![Click for copyable input](assets.ja/tunnels/In_60.png)
lengths = data[[All, 2]];
In[7]:=
![Click for copyable input](assets.ja/tunnels/In_61.png)
MinMax[lengths]
Out[7]=
![](assets.ja/tunnels/O_48.png)
In[8]:=
![Click for copyable input](assets.ja/tunnels/In_62.png)
h = Histogram[lengths, {1, 12, .5}, PDF, FrameLabel -> Automatic,
PlotTheme -> "Detailed"]
Out[8]=
![](assets.ja/tunnels/O_49.png)
データは長い裾を持つ分布の混合で説明できることがある.
In[9]:=
![Click for copyable input](assets.ja/tunnels/In_63.png)
dist = MixtureDistribution[{w1,
w2}, {ParetoDistribution[a1, a2, a3, a4],
WeibullDistribution[b1, b2]}];
In[10]:=
![Click for copyable input](assets.ja/tunnels/In_64.png)
edist = EstimatedDistribution[lengths, dist]
Out[10]=
![](assets.ja/tunnels/O_50.png)
パラメトリック族の混合分布に対する適合度を検定する.
In[11]:=
![Click for copyable input](assets.ja/tunnels/In_65.png)
DistributionFitTest[lengths, dist, "TestDataTable"]
Out[11]=
![](assets.ja/tunnels/O_51.png)
フィットされた分布の確率密度関数をヒストグラムに対してプロットする.
In[12]:=
![Click for copyable input](assets.ja/tunnels/In_66.png)
Show[h, Plot[PDF[edist, Quantity[x, "Miles"]], {x, 1, 12},
PlotRange -> All] // Quiet]
Out[12]=
![](assets.ja/tunnels/O_52.png)
トンネルの所在地を可視化する.
国ごとにグループ分けする.
In[13]:=
![Click for copyable input](assets.ja/tunnels/In_67.png)
res = GroupBy[data, First, Flatten[Take[#, All, -1]] &];
トンネルの中には複数の国にまたがっているものもある.
In[14]:=
![Click for copyable input](assets.ja/tunnels/In_68.png)
shared = Select[Keys[res], Length[#] > 1 &]
Out[14]=
![](assets.ja/tunnels/O_53.png)
共有されているトンネルを分配し,少なくとも10本のトンネルがある国を選ぶ.長さの分布図をプロットする.
完全なWolfram言語入力を表示する
Out[18]=
![](assets.ja/tunnels/O_54.png)
国ごとのトンネルの総マイル数.共有されるトンネルについては各国における完全な長さを含む.
完全なWolfram言語入力を表示する
Out[19]=
![](assets.ja/tunnels/O_55.png)