Wolfram 언어

확률과 통계의 수량

터널

TunnelData는 길이와 위치 등 터널에 대한 정보를 제공합니다.

In[1]:=
Click for copyable input
tunnels = TunnelData[];
In[2]:=
Click for copyable input
Length[tunnels]
Out[2]=

각각의 터널에 대해 단일 또는 여러 국가에서 부여한 길이와 위치를 구합니다.

In[3]:=
Click for copyable input
rawData = TunnelData[tunnels, {"Countries", "Length"}];

데이터를 정리하고 결측치를 제거합니다.

In[4]:=
Click for copyable input
data = DeleteMissing[rawData, 1, 2];

길이의 데이터를 마일 단위로 변환합니다.

In[5]:=
Click for copyable input
data[[All, 2]] = UnitConvert[N[data[[All, 2]]], "Miles"];
In[6]:=
Click for copyable input
lengths = data[[All, 2]];
In[7]:=
Click for copyable input
MinMax[lengths]
Out[7]=
In[8]:=
Click for copyable input
h = Histogram[lengths, {1, 12, .5}, PDF, FrameLabel -> Automatic, PlotTheme -> "Detailed"]
Out[8]=

데이터는 긴 꼬리를 가지는 분포의 혼합으로 설명 할 수있습니다.

In[9]:=
Click for copyable input
dist = MixtureDistribution[{w1, w2}, {ParetoDistribution[a1, a2, a3, a4], WeibullDistribution[b1, b2]}];
In[10]:=
Click for copyable input
edist = EstimatedDistribution[lengths, dist]
Out[10]=

파라메트릭 패밀리의 혼합 분포에 대한 적합도를 검정합니다.

In[11]:=
Click for copyable input
DistributionFitTest[lengths, dist, "TestDataTable"]
Out[11]=

적합 된 분포의 확률 밀도 함수를 히스토그램에 대응하여 플롯합니다.

In[12]:=
Click for copyable input
Show[h, Plot[PDF[edist, Quantity[x, "Miles"]], {x, 1, 12}, PlotRange -> All] // Quiet]
Out[12]=

터널의 위치를 시각화합니다.

국가별로 그룹화합니다.

In[13]:=
Click for copyable input
res = GroupBy[data, First, Flatten[Take[#, All, -1]] &];

터널 중에는 여러 나라에 걸쳐있는 것도 있습니다.

In[14]:=
Click for copyable input
shared = Select[Keys[res], Length[#] > 1 &]
Out[14]=

공유 된 터널을 분배하고 적어도 10개 이상의 터널을 가진 국가를 선택합니다. 길이 분포도를 플롯합니다.

전체 Wolfram 언어 입력 표시하기
In[15]:=
Click for copyable input
split = GroupBy[ Flatten[Map[{{{#[[1]]}, res[#]}, {{#[[2]]}, res[#]}} &, shared], 1], First, Flatten[#[[All, 2]]] &];
In[16]:=
Click for copyable input
together = Join[KeyDrop[res, shared], split, 2];
In[17]:=
Click for copyable input
tc = SortBy[Select[Normal[together], Length[#[[2]]] >= 10 &], Length@*Last];
In[18]:=
Click for copyable input
DistributionChart[tc[[All, 2]], ChartLabels -> tc[[All, 1, 1]], BarOrigin -> Left, BarSpacing -> .3, FrameLabel -> {"Miles"}, LabelingFunction -> (Placed[Length[#1], After] &), ChartStyle -> "SandyTerrain", ImageSize -> Large]
Out[18]=

국가 별 터널의 마일리지와 공유되는 터널에 대해서는 각 나라별 터널의 전체 길이를 포함합니다.

전체 Wolfram 언어 입력 표시하기
In[19]:=
Click for copyable input
vals = KeyMap[First, Map[Total, together]]; title = Style["tunnel mileage", 24, Bold, GrayLevel[.2], FontFamily -> "Osaka"]; GeoRegionValuePlot[vals, GeoProjection -> "Mercator", GeoRange -> {{-65, 80}, {-170, 190}}, PlotLegends -> Automatic, ColorFunction -> (ColorData["StarryNightColors", 2 #] &), Epilog -> Inset[title, {30, -65}], ImageSize -> 500]
Out[19]=

관련 예제