Туннели
TunnelData предоставляет информацию о туннелях, включая их длину и местоположение.
![Click for copyable input](assets.ru/tunnels/In_55.png)
tunnels = TunnelData[];
![Click for copyable input](assets.ru/tunnels/In_56.png)
Length[tunnels]
![](assets.ru/tunnels/O_47.png)
Для каждого туннеля, рассчитаeм его длину и расположение, заданное по стране или странам.
![Click for copyable input](assets.ru/tunnels/In_57.png)
rawData = TunnelData[tunnels, {"Countries", "Length"}];
Удалим пропущенные значения.
![Click for copyable input](assets.ru/tunnels/In_58.png)
data = DeleteMissing[rawData, 1, 2];
Преобразуем длинy в мили.
![Click for copyable input](assets.ru/tunnels/In_59.png)
data[[All, 2]] = UnitConvert[N[data[[All, 2]]], "Miles"];
![Click for copyable input](assets.ru/tunnels/In_60.png)
lengths = data[[All, 2]];
![Click for copyable input](assets.ru/tunnels/In_61.png)
MinMax[lengths]
![](assets.ru/tunnels/O_48.png)
![Click for copyable input](assets.ru/tunnels/In_62.png)
h = Histogram[lengths, {1, 12, .5}, PDF, FrameLabel -> Automatic,
PlotTheme -> "Detailed"]
![](assets.ru/tunnels/O_49.png)
Данные могут быть описаны с помощью комбинации распределений с длинным хвостoм.
![Click for copyable input](assets.ru/tunnels/In_63.png)
dist = MixtureDistribution[{w1,
w2}, {ParetoDistribution[a1, a2, a3, a4],
WeibullDistribution[b1, b2]}];
![Click for copyable input](assets.ru/tunnels/In_64.png)
edist = EstimatedDistribution[lengths, dist]
![](assets.ru/tunnels/O_50.png)
Проверим правильность описания данных с помощью параметрического смешивания распределений.
![Click for copyable input](assets.ru/tunnels/In_65.png)
DistributionFitTest[lengths, dist, "TestDataTable"]
![](assets.ru/tunnels/O_51.png)
Создадим PDF файл с гитограммой полученного распределения.
![Click for copyable input](assets.ru/tunnels/In_66.png)
Show[h, Plot[PDF[edist, Quantity[x, "Miles"]], {x, 1, 12},
PlotRange -> All] // Quiet]
![](assets.ru/tunnels/O_52.png)
Визуализируем расположение туннелей.
Группируем по стране расположения туннелей.
![Click for copyable input](assets.ru/tunnels/In_67.png)
res = GroupBy[data, First, Flatten[Take[#, All, -1]] &];
Некоторые туннели расположены на территории нескольких стран.
![Click for copyable input](assets.ru/tunnels/In_68.png)
shared = Select[Keys[res], Length[#] > 1 &]
![](assets.ru/tunnels/O_53.png)
Распределим туннели принадлежащие более чем одной стране и выберем страны, которые имеют по меньшей мере 10 туннелей. Графически отобразим распределение длины туннелей.
![](assets.ru/tunnels/O_54.png)
Продолжительность туннелей каждой из стран, где находятся общие туннели, включена в общую длину туннелей этих стран.
![](assets.ru/tunnels/O_55.png)