Polemika s daty
Každé číslo na datové stránce je odpovědí na otázku, která měla i druhou, snazší odpověď. Tahle stránka je ta polemika: co by byl ten samozřejmý krok, co by stál a co místo toho dělá pipeline.
Žádný z prahů níž se neodhadoval. Každý se nejdřív změřil na celé historii a je zapsaný u běhu, který podle něj jel — takže číslo zveřejněné před rokem se pořád dá číst proti pravidlu, které ho vyrobilo.
Šest sporů
každý rozhodnutý měřením, ne názorem
Zdrojem je veřejný výpis toho, co nahlásily taxametry a platební terminály. Jsou v něm jízdy účtované na 276 423 mil, jízdy, které končí dřív, než začnou, a záporné jízdné. Nic z toho není důvod datům nevěřit — je to důvod nahlas říct, co se s tím udělalo.
Rozbitá hodnota — je celá jízda k ničemu?
Zahodit každý řádek, který poruší pravidlo. Jeden filtr, tabulka, kde je každý sloupec čistý.
Zahozené jízdné za 2,32 mil. $ a 88 743 jízd, a průměrná vzdálenost se posune o 0,1 % — 3,166 mi místo 3,169. Skutečné tržby zaplacené za zaokrouhlovací rozdíl.
Účtenka je fakt; měření jsou její vlastnosti. Špatná hodnota se vynuluje a vypadne ze svého vlastního průměru. Řádek i jeho peníze zůstávají.
Do karantény jde řádek jen tehdy, když z něj neplyne žádná kladná útrata — žádná
účtenka, žádná jízda. To je 1,83 % ledna 2025 a jeho objem se vykazuje zvlášť jako
refunds_usd, místo aby se tiše smazal.
Který průměr je ten poctivý?
Zveřejnit průměr. Je to, na co se všichni ptají, a je jeden AVG() daleko.
122 řádků z 3 475 226 — 0,0035 % — nese 47 % všech ujetých mil. Nejdelší jediná „jízda“ měří 276 423 mil; obvod Země je 24 901. Naivní průměr střílí o 89 % vedle.
Publikují se oba, vedle sebe. Medián (1,67 mi) se nehne, ani když je konec rozdělení absurdní; průměr ano — a vidět je, jak se ta dvě čísla rozcházejí, je právě ten smysl.
Mapa ani tabulka zón na datové stránce proto nikdy neukazují průměr, aniž by byl po ruce jeho medián nebo jeho jmenovatel.
Je 165 mil dlouhá jízda, nebo rozbitý tachometr?
Omezit vzdálenost velikostí: cokoli přes 200 mil není jízda taxíkem.
Obě chyby naráz. Pod stropem to minulo 136 rozbitých jízd — 165,91 mi za 11,4 minuty za 17,70 $ — a vynulovalo dva skutečné dálkové tahy 206 a 225 mi při 53–59 mph, účtované za 220 a 400 $ pod sazbou 5.
Vzdálenost se posuzuje podle poměru k době jízdy, ne podle své velikosti. Velikost zůstává jen jako záchranná brzda pro jízdy pod minutu, kde poměr nic neznamená.
Které pole je rozbité, plyne z peněz: u 93 % řádků, které implikují přes 100 mph, sedí jízdné na dobu jízdy, a ne na vzdálenost — medián 14,46 $ proti 301 $, které by plynuly z tachometru. Nuluje se tedy tachometr a časy se nechávají. 118 ze 122 jízd přes 200 mi stejně poruší pravidlo rychlosti, takže sražením stropu velikosti na pouhou záchrannou brzdu se nic neztratilo.
Jedno číslo pokrytí, nebo jedno na řádek?
Změřit úplnost jednou, dát do poznámky pod čarou „vzdálenost je z 97,5 % úplná“ a jít dál.
Poznámka pod čarou platí globálně a lokálně je k ničemu. Letiště Newark má 3. ledna 2025 28 jízd a přesně jedno použitelné měření vzdálenosti. Jeho „průměr“ je jedno číslo převlečené za množné číslo.
Každý průměr nese svůj vlastní jmenovatel — distance_obs, duration_obs, fare_obs — na zónu a na den. „Změřeno na kolika jízdách“ je sloupec, ne výhrada.
Vzdálenost a doba jízdy mají různé jmenovatele, takže se publikují oba. Metrika rychlosti na mapě stojí na obou naráz a je věrohodná jen tak jako ten menší z nich.
Mají se časy převést na UTC?
Naivní časy zavánějí. Lokalizovat je, ukládat UTC a vyřešit to při čtení.
Už teď jsou v newyorském místním čase. Převod by posunul každou noční jízdu do špatného dne — a nic v pipeline by to nechytilo, protože součty zůstanou identické.
Bereme je jako naivní místní čas, což jsou, a partitionujeme podle místního data nástupu.
Důkazem je změna času: 9. března 2025 mezi 02:00 a 03:00 nejsou v datech žádné jízdy, zatímco běžná neděle jich má ve stejnou hodinu 4 809. Přiznané omezení: doby jízd přesahujících tuhle hodinu jsou vedle o ±1 h.
Říká tohle, kolik New Yorčané utratí za taxi?
Pojmenovat tabulku taxi_trips, sloupec revenue, a nechat čtenáře, ať si domyslí.
Žluté medailonové taxíky jsou 12,4 % toho, co město utratí za placenou přepravu, a mimo Manhattan pod 1,5 %. Na otázku „kolik se v Bronxu utratilo za taxi“ odpoví tenhle výstup číslem 122× menším.
Omezení patří do jmen. Tabulka se jmenuje yellow_taxi_trips_by_zone, sloupec yellow_revenue_usd a mapa to říká pod svým titulkem.
Změřeno proti HVFHV, Green a FHV za leden 2025. To číslo není špatně; špatně by bylo jen jméno, které svádí číst ho jako celý trh.
Jak pracujeme
změřit · zapsat pravidlem · zaznamenat
Práh, který nikdo nezměřil, je číslo, které se někomu líbilo. Každé pravidlo níž začalo jako dotaz nad celou historií, stalo se výrazem a končí zapsané v manifestu každého běhu, který podle něj jel — takže se pravidlo může změnit, aniž by se loňský výstup stal nečitelným.
Dvě závažnosti, ne jedna
Chybějící sloupec a nevěrohodná hodnota jsou různé druhy události a mají různou odpověď.
Kam jde odmítnutý řádek
Nic se nemaže. V regulovaném prostředí musí být odpověď na „které řádky vypadly“ dotaz, ne vzpomínka.
Pravidla a co chytila
| Pravidlo | Použitý práh | Důsledek | Pole | Řádky | Podíl na vstupu |
|---|
Pravidla se počítají nezávisle — jeden řádek jich může porušit několik naráz — takže součet nedá počet řádků v karanténě a čísla nezávisí na pořadí, ve kterém pravidla běží. Dvě z osmi odmítnou řádek; zbylých šest odmítne jedno pole a jízdu nechají.
Proti čemu se běh posuzuje
Brány, ne pravidla: tyhle nic nečistí, jen zabrání tomu, aby se špatný měsíc vůbec zveřejnil.
Brána objemu ±40 % pochází z 29 změřených měsíců: největší skutečný skok byl +21,9 % (2024-09) a největší propad −13,5 % (2026-01). Prolomení brány běh rovnou shodí, místo aby se opakoval — opakování by stáhlo tytéž bajty a došlo ke stejnému závěru.
Co tohle pořád ještě neumí
známé, změřené, neopravené
Seznam, který by si čtenář jinak musel poskládat z kódu. Každá položka je rozhodnutí, ne přehlédnutí — přesto jsou to omezení zveřejněných čísel.
| Omezení | Proč tam je |
|---|---|
| Doby jízd přes změnu času jsou vedle o ±1 h | Zdrojové časy nenesou žádný offset. Dvě hodiny v roce jsou nejednoznačné a žádná rekonstrukce by nebyla poctivá. |
| Řádek v karanténě přijde o svůj počet jízd | Refundace není jízda, takže opouští trips. Její objem se zveřejňuje zvlášť jako refunds_usd, místo aby zmizel. |
| Přepočty se hlásí, ne hlídají branou | Nikdo nezměřil, o kolik se přepočítaný měsíc smí legitimně pohnout. Práh by tady byl to jediné vymyšlené číslo v celém systému. |
passenger_count se nezveřejňuje |
NULL u 15,5 % řádků pod Flex Fare. Pravidla chrání zveřejňované metriky; zahodit 540 tisíc jízd kvůli sloupci, který nikdo nepublikuje, by byla ta skutečná chyba. |
| Medián na mapě je medián denních mediánů | Mediány se přes partition nesčítají. Průměry se dopočítávají z vážených čitatelů a jmenovatelů a jsou přesné; medián přes celou historii je aproximace a stránka to říká tam, kde ho ukazuje. |
| Surové bajty se přepisují, neverzují | Lineage funguje odkazem — ETag a sha256 v manifestu. Staré surové verze expirují po 7 dnech: pojistka proti chybě, ne archiv. Zdroj se dá stáhnout znovu. |
| Zóna se přiřazuje jen podle nástupu | Jeden řádek je jedna dvojice (den nástupu, zóna nástupu). Tam se objevila poptávka; jízda na JFK se počítá v Midtownu, ne na letišti. |
Čísla samotná — 263 zón nástupu na mapě, osm metrik, denní řady po měsících a průměr sedící vedle mediánu, proti kterému se má číst.
◂ DataJestli dnešní běh vyšel — jeden řádek na manifest, které řádky který běh odmítl, proti kterému zdrojovému ETagu a jak plán pozná, že je vůbec co dělat.
Pipeline a běhy ▸