Kluczowe wskaźniki
Na podstawie dostępnych danych utworzono zestaw 5 wskaźników, które posłużą realizacji postawionych problemów analitycznych, a w konsekwencji celom biznesowym:
- Atrakcyjność okolicy
- Utracona wartość turystyczna
- Poziom konkurencyjności
- Dostęp do komunikacji Następnie, wskaźniki te były uwzględniane w różnych metrykach służących wyborze optymalnego wariantu. Szczegółowy opis metod w 5.2 Metody wyboru wariantu optymalnego (KPI).
Atrakcyjność okolicy i utracona wartość turystyczna
Aby oszacować atrakcyjność turystyczną okolicy, posłużono się trzema czynnikami:
- Odległość - od atrakcji, im większa odległość tym mniejsza wartość turystyczna, dokładniejszy opis funkcji w sekcji 5.3 Miary pomocnicze. Zakres wartości 0-1
- Liczba ocena w Google Places - im więcej, tym lepiej. Natomiast w celu wyłączenia możliwości zdominowania mapy turystycznej przez jeden rodzaj atrakcji, uwzględniono tę wartość w logarytmie. Zakres wartości do 150 tys.
- Średnia ocena w Google Places - wypadkowa ocen użytkowników Google. Zakres od 1-5
Pop Places - Attractiveness =
VAR R = CALCULATE(AVERAGE(_popular_google[rating]))
VAR N = CALCULATE(SUM(_popular_google[user_ratings_total]))
VAR D_Factor = [Pop Places - Distance Attractivnes]
RETURN
CALCULATE(
R * LOG(N + 1) * D_Factor /40 *100
// +1 to avoid log(0); log to smoothen; /40 * 100 to normalize
)
W przypadku utraconej atrakcyjności, zamieniany jest czynnik D_Factor
poprzez prostą transformację odwrócenia wartości.
Pop Places - Lost Attractivnes =
VAR R = CALCULATE(AVERAGE(_popular_google[rating]))
VAR N = CALCULATE(SUM(_popular_google[user_ratings_total]))
VAR D_Factor = [Pop Places - Distance Attractivnes]
RETURN
CALCULATE(
R * LOG(N + 1) * (1 - D_Factor) * -1 /40 *100
)
Tak prezentuje się zastosowanie tej metryki na wybranym obszarze Krakowa:
Poziom konkurencyjności
Miara konkurencyjności służy do oceny wpływu pobliskich firm w określonym promieniu od wybranego punktu odniesienia (bazującego na szerokości i długości geograficznej) z uwzględnieniem ich wielkości oraz kategorii. Miara dostarcza znormalizowany wskaźnik w zakresie od -100 do 0, który odzwierciedla siłę wpływu otoczenia biznesowego.
Business within range - rank =
VAR LatRef = SELECTEDVALUE(Lat[Lat])
VAR LonRef = SELECTEDVALUE(Lon[Lon])
VAR Radius = SELECTEDVALUE(Distance[Distance])
-- Businesses within the radius
VAR CloseBusinesses =
FILTER(
_map_data,
[Businesses - acceptable range] <= Radius
&& NOT (_map_data[Category] = "Inwestycja")
)
-- Quartiles
VAR Q1 =
CALCULATE(
PERCENTILEX.INC(
FILTER(_map_data, NOT (_map_data[Category] = "Inwestycja")),
_map_data[Size],
0.25
)
)
VAR Q3 =
CALCULATE(
PERCENTILEX.INC(
FILTER(_map_data, NOT (_map_data[Category] = "Inwestycja")),
_map_data[Size],
0.75
)
)
-- Weight assignment
VAR WeightedImpact =
SUMX(
CloseBusinesses,
SWITCH(
TRUE(),
_map_data[Size] <= Q1, _map_data[Size] * 0.5, -- Q1: low
_map_data[Size] <= Q3, _map_data[Size] * 1, -- Q2–Q3: medium
_map_data[Size] > Q3, _map_data[Size] * 1.5 -- Q4: high
)
)
-- Weighted sum
VAR TotalWeightedImpact =
CALCULATE(
SUMX(
FILTER(_map_data, NOT (_map_data[Category] = "Inwestycja")),
SWITCH(
TRUE(),
_map_data[Size] <= Q1, _map_data[Size] * 0.5,
_map_data[Size] <= Q3, _map_data[Size] * 1,
_map_data[Size] > Q3, _map_data[Size] * 1.5
)
),
ALL(_map_data)
)
-- Result
RETURN
IF(
COUNTROWS(CloseBusinesses) > 0,
MIN(
DIVIDE(WeightedImpact, TotalWeightedImpact, 0),
1
),
0
) * -100
Dostęp do komunikacji
Dostęp do komunikacji jest obliczany na podstawie odległości od najbliższego punktu drogi na mapie w linii prostej. Oznacza to, że pomijane są odległości wynikające z trasy prowadzącej do tych punktów, czy też miejsc w których można się włączyć do ruchu na takiej drodze. Wartości istotności danego rodzaju drogi zostały wybrane heurystycznie - najbardziej promowane są drogi główne, szybkiego ruchu oraz autostrady. Dalej tzw. drogi dojazdowe. Im rzadszy rodzaj drogi, tym większa tolerancja na dystans prowadzący do niej.
Highway - access =
VAR LatRef = SELECTEDVALUE(Lat[Lat])
VAR LonRef = SELECTEDVALUE(Lon[Lon])
-- Odległości do najbliższej drogi dla każdej kategorii
VAR Odleglosc_Autostrada =
CALCULATE(
MINX(
FILTER(_osm_road, _osm_road[highway] = "motorway"),
[Highway - nearest point]
)
)
VAR Odleglosc_Ekspresowa =
CALCULATE(
MINX(
FILTER(_osm_road, _osm_road[highway] = "trunk"),
[Highway - nearest point]
)
)
VAR Odleglosc_Glowna =
CALCULATE(
MINX(
FILTER(_osm_road, _osm_road[highway] = "primary"),
[Highway - nearest point]
)
)
VAR Odleglosc_Drugorzedna =
CALCULATE(
MINX(
FILTER(_osm_road, _osm_road[highway] = "secondary"),
[Highway - nearest point]
)
)
VAR Odleglosc_Trzeciorzedna =
CALCULATE(
MINX(
FILTER(_osm_road, _osm_road[highway] = "tertiary"),
[Highway - nearest point]
)
)
-- Ocena odległości według progów (threshold)
VAR Ocena_Autostrada =
SWITCH(
TRUE(),
Odleglosc_Autostrada <= 1000, 1,
Odleglosc_Autostrada <= 3000, 0.75,
Odleglosc_Autostrada <= 5000, 0.5,
0.25
)
VAR Ocena_Ekspresowa =
SWITCH(
TRUE(),
Odleglosc_Ekspresowa <= 1000, 1,
Odleglosc_Ekspresowa <= 3000, 0.75,
Odleglosc_Ekspresowa <= 5000, 0.5,
0.25
)
VAR Ocena_Glowna =
SWITCH(
TRUE(),
Odleglosc_Glowna <= 1000, 1,
Odleglosc_Glowna <= 2000, 0.75,
Odleglosc_Glowna <= 3000, 0.5,
0.25
)
VAR Ocena_Drugorzedna =
SWITCH(
TRUE(),
Odleglosc_Drugorzedna <= 500, 1,
Odleglosc_Drugorzedna <= 750, 0.75,
Odleglosc_Drugorzedna <= 1000, 0.5,
0.25
)
VAR Ocena_Trzeciorzedna =
SWITCH(
TRUE(),
Odleglosc_Trzeciorzedna <= 100, 1,
Odleglosc_Trzeciorzedna <= 750, 0.75,
Odleglosc_Trzeciorzedna <= 1000, 0.5,
0.25
)
-- Końcowy wskaźnik dostępności komunikacyjnej
RETURN
((0.2 * Ocena_Autostrada) +
(0.2 * Ocena_Ekspresowa) +
(0.5 * Ocena_Glowna) +
(0.05 * Ocena_Drugorzedna) +
(0.01 * Ocena_Trzeciorzedna)) * 100