Viac

Modelovanie dotazu SQL na pridanie štatistických údajov ku geometrii

Modelovanie dotazu SQL na pridanie štatistických údajov ku geometrii


Dobrý deň, mám problém s modelovaním dotazu SQL na nasledujúci problém:

Mám dva stoly s geometriami od Shapefile der Verwaltungsgrenzen (WGS84). Pre mňa sú zaujímavé Kreise a Gemeinden, zatiaľ čo Gemeinde je vždy súčasťou väčších Kreis. Každý server Kreis má jedinečné ID s názvomrsčo je presne 5 znakov, kde ako jedinečné id Gemeindenu je 12 znakov dlhé a prvých 5 znakov sa rovná Kreisovmu id.

Pre niektorých Gemeinden vde_commuter_gemeindenMám štatistické údaje, ako aj pre väčšinu Kreise vde_commuter_kreise. Tieto údaje popisujú, koľko je tam dochádzajúcich. Tabuľka vyzerá takto:

de_commuter_ * (rs znak sa líši (12 alebo 5) NOT NULL, text názvu, v rámci celého čísla, domáce celé číslo, prichádzajúce celé číslo, odchádzajúce celé číslo)

Pre každú geometriu so štatistickými údajmi musím v rámci geometrie vytvoriť náhodné body. Pre Gemeinden to nie je žiadny problém, pretože sú podmnožinou Kreis a môžem z nej zvoliť geometriu z tabuľkyde_shp_gemeinden.geom. Ale pre Kreise musím odpočítať už vygenerované body, ako aj geometriu, v ktorej boli vytvorené. Môj súčasný SQL je:

SELECT k.rs, k.gen, st_difference (k.geom, (SELECT ST_Union (geom) AS geom FROM de_shp_gemeinden g, de_commuter_gemeinden c WHERE c.rs ~ ('^' || k.rs) AND c.rs = g .rs)) AS geom FROM de_shp_kreise k

Čo vyzerá takto

Teraz potrebujem inteligentný spôsob výpočtu štatistických údajov pre každý Kreis, čo znamená získať údaje o dochádzajúcich za Kreis a odčítať z nich všetky údaje, podmnožinu Gemeinden.

Mohol by ma niekto nasmerovať správnym smerom? Ak potrebujete ďalšie informácie, opýtajte sa.


Zdá sa, že som našiel SQL s dobrým výkonom

VYBERTE k.rs, k.gen, (ck.incoming-sums.incoming) AS prichádzajúce, (ck.outgoing-sums.outgoing) AS odchádzajúce, (ck.within-sums.within) AS vnútri, ST_AsEWKB (ST_Difference (k .geom, geo.geom)) AS geom_b FROM de_commuter_kreise ck INNER JOIN (SELECT rs, gen, ST_Union (geom) AS geom FROM de_shp_kreise WHERE rs IN (SELECT rs FROM de_shp_kreise GROUP BY rs HAVING COUNT (rs)> 1) rs, gen UNION SELECT rs, gen, geom FROM de_shp_kreise WHERE rs NOT IN (SELECT rs FROM de_shp_kreise GROUP BY rs HAVING COUNT (rs)> 1)) k ON (ck.rs = k.rs) ZMENIŤ VONKAJŠIE PRIPOJENIE (VYBERTE OKRESNE k.rs AS rs, geo.geom AS geom FROM de_shp_kreise AS k LEFT JOIN (SELECT ST_Union (g.geom) AS geom, SUBSTRING (g.rs FOR 5) AS rs FROM de_shp_gemeinden AS g INNER JOIN de_commuter_gemeinden c ON c.rs = g.rs ZVÝŠENIE PODSEKCOVANÍM (g.rs ZA 5)) geo ZAPNUTÉ (k.rs = geo.rs)) geo ON (geo.rs = ck.rs) VLEVO VONKAJŠIE PRIPOJTE SA (ZVOLTE SUBSTRING (rs ZA 5) AKO rs, SUM (prichádzajúci) AS prichádzajúci, SUM (vnútri) AS v rámci, SUM (odchádzajúci) AS odchádzajúci FROM de_commuter_gemeinden GROUP BY SUBSTRING (rs FOR 5)) sumy ON (sums.rs = ck.rs)

Nasledujúca tabuľka mapuje štandardné koncepty dátových skladov na koncepty v nástroji BigQuery:

Dátový sklad BigQuery
Dátový sklad Služba BigQuery nahrádza typické nastavenie hardvéru pre tradičný dátový sklad. To znamená, že slúži ako spoločný domov pre všetky analytické údaje v organizácii.
Dátový trh Datasety sú kolekcie tabuliek, ktoré možno rozdeliť podľa obchodných línií alebo danej analytickej domény. Každá množina údajov je viazaná na projekt Google Cloud.
Dátové jazero Vaše dátové jazero môže obsahovať súbory v Cloudovom úložisku alebo na Disku Google alebo transakčné údaje v Bigtable alebo Cloud SQL. BigQuery môže definovať schému a vydávať dotazy priamo na externé údaje ako federované zdroje údajov. Rozhranie BigQuery Storage API ponúka paralelné čítanie s veľkou šírkou pásma a je kompatibilné s bežnými rámcami spracovania, ako sú Spark a Pandas.

Zdroje BigQuery

BigQuery má hierarchickú štruktúru. Jeho úrovne sú načrtnuté v nasledujúcom diagrame:

Projekty

Všetky zdroje Google Cloud, ktoré pridelíte a použijete, musia patriť do projektu. Projekt je organizujúcou entitou pre to, čo staviate pomocou služby Google Cloud. V kontexte BigQuery je projekt kontajnerom pre všetky zdroje BigQuery. Pretože BigQuery oddeľuje úložisko a výpočty, projekty, ktoré ukladajú a dopytujú údaje, sa môžu líšiť.

Množiny údajov

Datasety sú kontajnery najvyššej úrovne, ktoré používate na usporiadanie tabuliek a zobrazení BigQuery. Často mapujú schémy v štandardných relačných databázach a dátových skladoch.

Datové sady sú zamerané na váš cloudový projekt. Keď odkazujete na tabuľku z príkazového riadku, v dotazoch SQL alebo v kóde, odkazujete na ňu nasledovne:

Množina údajov je viazaná na miesto. Umiestnenia množiny údajov sú nasledujúce:

  • Regionálne: Konkrétne geografické miesto, napríklad Londýn.
  • Multiregionálne: Veľká geografická oblasť, napríklad USA, ktorá obsahuje dve alebo viac geografických miest.

Umiestnenie množiny údajov môžete nastaviť iba v čase jej vytvorenia. Dotaz môže obsahovať tabuľky alebo pohľady z rôznych množín údajov na rovnakom mieste.

Používanie týchto viacerých rozsahov (projekt, množina údajov, tabuľka a umiestnenie) vám môže pomôcť štruktúrovať vaše informácie logicky a geograficky.

Tabuľky

Tabuľky BigQuery sú štruktúry riadkov a stĺpcov, ktoré uchovávajú vaše údaje. Každá tabuľka je definovaná schémou, ktorá popisuje názvy stĺpcov, dátové typy a ďalšie informácie. Keď je tabuľka vytvorená, môžete určiť jej schému. Prípadne môžete vytvoriť tabuľku bez schémy a určiť schému v úlohe dotazu alebo načítať úlohu, ktorá ju najskôr naplní údajmi. BigQuery má nasledujúce typy tabuliek:

  • Natívne tabuľky: Tabuľky zálohované natívnym úložiskom BigQuery.
  • Vonkajšie stoly: Tabuľky zálohované externým úložiskom BigQuery.
  • Názory: Virtuálne tabuľky definované dotazom SQL.

Úlohy sú akcie, ktoré BigQuery vo vašom mene vykonáva za účelom načítania údajov, exportu údajov, údajov dotazov alebo kopírovania údajov. Úlohy nie sú prepojené s rovnakým projektom, v ktorom sú uložené vaše údaje. Avšak umiestnenie, kde sa dá úloha vykonať, je prepojené s umiestnením množiny údajov. Ak napríklad načítate údaje z segmentu cloudového úložiska do datasetu BigQuery, ktorý sa nachádza v Singapure, musí byť regionálny alebo multiregionálny segment cloudového úložiska umiestnený aj v Singapure. Ak sa vaša množina údajov nachádza v európskom regióne, môžete ho vyhľadať z iných regiónov, napríklad z USA. To zaisťuje, že sú splnené vaše požiadavky na lokalitu údajov.

Zabezpečenie a dimenzovanie systému

Na rozdiel od mnohých systémov RDBMS nemusíte pred použitím nástroja BigQuery zabezpečovať zdroje. BigQuery dynamicky prideľuje úložné a dotazovacie prostriedky na základe vašich vzorcov používania:

  • Prostriedky úložiska sa prideľujú podľa toho, ako ich spotrebujete, a uvoľňujú sa pri odstraňovaní údajov alebo vynechávaní tabuliek.
  • Prostriedky dopytov sa prideľujú podľa typu a zložitosti dotazu. Každý dopyt používa určitý počet slotov, čo sú výpočtové jednotky, ktoré obsahujú určité množstvo CPU a RAM.

Na používanie BigQuery sa nemusíte zaviazať k minimálnemu použitiu. Služba prideľuje a spoplatňuje zdroje na základe vášho skutočného využitia. Predvolene majú všetci zákazníci nástroja BigQuery prístup k 2 000 slotom na operácie dotazov. Pre svoj projekt môžete tiež rezervovať prevádzkové intervaly. Podrobnosti o tom, aký prístup použiť, nájdete v časti Náklady.

Správa úložiska

BigQuery interne ukladá údaje v proprietárnom stĺpcovom formáte s názvom Capacitor, ktorý má pre pracovné zaťaženie dátového skladu množstvo výhod. BigQuery používa proprietárny formát, pretože sa môže vyvíjať v tandeme s dotazovacím mechanizmom, ktorý na optimalizáciu vykonávania dotazu využíva hlboké znalosti rozloženia údajov. BigQuery používa vzory prístupu k dotazom na určenie optimálneho počtu fyzických zlomkov a spôsobu ich kódovania.

Dáta sú fyzicky ukladané v distribuovanom súborovom systéme Google s názvom Colossus, ktorý zaisťuje trvanlivosť pomocou mazania kódov na ukladanie nadbytočných častí dát na viac fyzických diskov. Dáta sú navyše replikované do viacerých dátových centier.

Môžete tiež spustiť dotazy BigQuery na údaje mimo úložiska BigQuery, ako sú údaje uložené v cloudovom úložisku, na Disku Google alebo Bigtable, pomocou federovaných zdrojov údajov. Tieto zdroje však nie sú optimalizované pre operácie BigQuery, takže nemusia fungovať tak dobre ako dáta uložené v úložisku BigQuery.

Údržba

BigQuery je plne spravovaná služba, čo znamená, že technický tím BigQuery sa stará o aktualizácie a údržbu za vás. Inovácie zvyčajne nevyžadujú odstávky alebo bránia výkonu systému.

Mnoho tradičných systémov vyžaduje, aby sa v rôznych intervaloch spustili vákuové procesy náročné na zdroje, aby sa zmenili a triedili dátové bloky a obnovil priestor. BigQuery nemá ekvivalent správy vákua alebo indexu, pretože úložný modul neustále spravuje a optimalizuje spôsob ukladania a replikácie údajov. Pretože BigQuery nepoužíva indexy v tabuľkách, nemusíte ich znova vytvárať.

Zálohovanie a obnova

Správa zálohovania a dostupnosti bola pre správcov databáz vždy zložitou a nákladnou úlohou. Potreba ďalších licencií a hardvéru môže výrazne zvýšiť náklady. BigQuery rieši zálohovanie a zotavenie po katastrofe na úrovni služieb. Vďaka zachovaniu kompletnej sedemdňovej histórie zmien v porovnaní s vašimi tabuľkami vám BigQuery umožňuje dotazovať sa na momentálnu snímku vašich údajov pomocou dekorátorov tabuliek alebo SYSTEM_TIME AS OF v klauzule FROM. Zmeny môžete ľahko vrátiť bez toho, aby ste museli požadovať obnovenie zo záloh. Keď je tabuľka výslovne odstránená, jej história sa po siedmich dňoch vymaže. Príkaz cp navyše ponúka okamžité snímky tabuľky v danom regióne.

Súbory dát BigQuery môžu byť regionálne alebo multiregionálne. V prípade regionálnych súborov údajov, napríklad súboru údajov umiestneného v oblasti us-central1, sa mimo tohto regiónu neuchováva žiadna kópia súboru údajov. Ak považujete nedostatok záloh mimo jedného regiónu za rizikový pre vaše podnikanie, môžete vytvoriť a naplánovať medziregionálne kópie pomocou služby BigQuery Data Transfer Service. V prípade multiregionálnych súborov údajov nachádzajúcich sa vo veľkých geografických oblastiach, ako je napríklad Európa (EÚ), sa kópia automaticky uloží do inej oblasti Google Cloud.

Ak región zlyhá, môžu sa stratiť niektoré posledné údaje. Ďalšie informácie nájdete v dokumentácii BigQuery týkajúcej sa dostupnosti a životnosti.


Pokiaľ je mi známe, budete musieť použiť externú aplikáciu na vykreslenie svojho tvaru ako veľkého počtu bodov. V tomto blogu nájdete techniku ​​vykresľovania kruhov.

Jednou z možností, ktorú je potrebné zvážiť, je proces CLR na vykreslenie potrebných tvarov a zobrazenie s indexmi. Neviem, aký dobrý bude výkon, ale mohlo by to fungovať.

Rýchlo som sa rozhliadol a našiel túto stránku MSDN v Priestorových vzorkách. Zahŕňa všetky metódy zadávania údajov do formátov WKT, WKB a amp XML (GML), ako aj funkcie na prezeranie v ľudskej podobe. Zahŕňa tiež produkty MakeValid, STIsValid a amp STSrid.

Zdá sa, že existuje niekoľko spravodlivých príkladov SQL, ktoré by vám mohli pripadať užitočné

Prepáč za neskorú odpoveď. Vždy ste mohli napísať svoj vlastný Definovaný používateľom zavolal Kruh, s dvoma vlastnosťami, a to Ťažisko a Polomer.

Vo vnútri novo vytvoreného UDT vytvorte metódu, ktorá prevezme vlastnosti Centroid (Point3D) a polomer (Dvojitý). Potom vytvorte metódu, ktorá využíva obidve SqlGeometria a SqlGeometryBuilder postaviť novovzniknutý objekt.

Najskôr vytvorte a Bod inštancia z Geometria. Zdedte hodnoty ťažiska z objektu triedy a potom vytvorte ďalšie Geometria Polygón ktorý je odvodený z Bod objekt a STBuffer(Polomer) to.

Nižšie je uvedený môj príklad: (napísané za 30 minút)

Keď to urobíte vo VS2010 pomocou typu projektu CLR, môžete ho nasadiť do svojej databázy.

V SQL môžete objekt volať ako taký :: Analýza (X Y Z M, R)


Pridanie Zahraničného balíka údajov z PostGIS do MSSQL

Ogr_fdw: balík zahraničných údajov

Zistil som to čítaním prezentácií z konferencie Postgres. Píšem si to, aby som nezabudol, ako je to takmer v prípade všetkého, čo som sem dal.

Čítal som prezentáciu Reginy Obe, spoluautorky niekoľkých úžasných kníh o PostGIS, Postgres a ďalších.
Odkazy na ich prezentáciu nájdete na vstupe Planet Postgis 25. marca 2019, alebo na vstupných údajoch PGCONF 2019 Postresql Online Journal.

Priamy odkaz na snímky PDF nájdete v sekcii Ostatné relačné databázy, ale aj ostatné sú zaujímavé.

Môj prípad použitia je tu Windows PostGIS na Windows SQL Server cez podnikovú doménu, ktorý používa pripojenie ODBC.

Najprv musím nastaviť položku Windows DSN pre pripojenie ODBC. Otvorte ODBC zdroj údajov, v mojom prípade 64 bitový, a pridajte zdroj údajov systému. Keď sa uskutoční pokus o pripojenie, použije ho na vyhľadanie vzdialeného servera v doméne.

Moje pripojenie vyzerá takto, s názvom databázy pguser a pguser.

Všimol som si, že vo svojich zahraničných tabuľkách nedostávam žiadne priestorové údaje. To sa trochu očakáva, pretože server SQL Server natívne neposiela priestorové údaje cez prepojené servery. Prezentácia však hovorí, že by to malo byť, takže bude možno potrebné sa k tomu vrátiť.


Na zhromažďovanie metrík dotazov môžete využiť ďalšie nástroje zabudované do servera SQL Server. Prvým je Dynamic Management Views (DMV). Tieto je možné vyhľadať, aby sa získali agregované údaje o dotazoch, ktoré sú momentálne v pamäti systému. Dotazujte sa raz za asi 15 minút a časom si môžete vybudovať správanie. Sú to však iba agregácie. Je to tiež iba obsah v pamäti cache, takže sa nezobrazí buď volatilná pamäť cache, alebo dotazy, ktoré nejdú do pamäte cache. Tieto produkty sú všade od verzie SQL Server 2005 a vyššie.

Alternatívou je použitie rozšírených udalostí na zaznamenanie metrík dotazov. To má plus a negatív všetko v jednom. Aplikácia Extended Events dokáže zachytiť každý jeden dotaz, ktorý v systéme prejde, čo vám umožní veľmi presné merania. Výstup je do XML, ale je to dosť jednoduché na to, aby ste to dopytovali a importovali do tabuľky. Rozšírené udalosti však zachytia každý dopyt, ktorý prejde, takže budete mať k dispozícii veľa údajov, s ktorými sa treba vyrovnať. Aj keď boli rozšírené udalosti pridané v roku 2008, neodporúčam ich používať, kým nebudete v roku 2012 alebo staršom.

Alebo si zaobstarajte nástroj tretej strany. Či už je to niečo otvorené, napríklad OpenQueryStore, skvelý nástroj alebo nástroj platený za tretiu stranu, môže to celý proces výrazne uľahčiť.


1 odpoveď 1

Časť 1: Kódovanie algrebraických dátových typov do relačných tabuliek

Mnohokrát som bojoval s touto vecou. Nakoniec som objavil kľúč na modelovanie algebraických dátových typov v relačných tabuľkách: Skontrolujte obmedzenia.

S kontrolným obmedzením môžete použiť spoločnú tabuľku pre všetkých členov vášho polymorfného typu a napriek tomu vynútiť invariant každého člena.

Zvážte nasledujúcu schému SQL:

Riešili sme problém č. 1, ktorý spočíva v tom, že v tabuľke predstavujúce abstraktnú základnú triedu budú nezmyselné údaje, a to tak, že sa táto tabuľka vylúči. Tiež sme skombinovali tabuľky, ktoré sa použili na nezávislé modelovanie každého konkrétneho typu, a namiesto toho sme sa rozhodli uložiť všetky inštancie Base - bez ohľadu na ich konkrétny typ - do jednej tabuľky.

Táto schéma v súčasnej podobe neobmedzuje polymorfizmus vášho typu Base. Ako je, je možné vložiť riadky ConcreteType1 s nenulovou hodnotou BaseReferenceId alebo riadky ConcereteType2 s nulovou hodnotou BaseReferenceId. Vkladanie neplatných údajov vám už nič nebráni, takže pri vkladaní a úpravách musíte postupovať veľmi usilovne.

Tu skutočne svieti obmedzenie kontroly.

Obmedzenie kontroly Base_Enforce_SumType_Properties definuje invarianty pre každý konkrétny typ a chráni vaše údaje pri vkladaní a aktualizácii. Pokračujte a spustite všetky DDL, aby ste vytvorili tabuľky ConcreteType a Base vo svojej vlastnej databáze. Potom skúste vložiť do Base riadky, ktoré porušujú pravidlá popísané v kontrolnom obmedzení. Nemôžeš! Váš dátový model nakoniec drží pohromade.

Riešenie problému č. 2: Teraz, keď sú všetci členovia vášho typu v jednej tabuľke (s vynútenými invariantmi), budú vaše dotazy jednoduchšie. Nepotrebujete ani „ekvivalent zodpovedajúceho kľúčovému slovu F # v SQL“. Pridanie nového typu betónu je také jednoduché ako vloženie nového riadku do tabuľky ConcreteType, pridanie akýchkoľvek nových vlastností ako stĺpcov do základnej tabuľky a úprava obmedzenia tak, aby odrážali všetky nové invarianty.

Časť 2: Kódovanie hierarchických (čítaných: rekurzívnych) vzťahov na serveri SQL Server

Časť z obavy # 2, myslím na zložitosť dotazovania v rámci vzťahu „rodič-dieťa“, ktorý existuje medzi ConcreteType2 a Base. Existuje mnoho spôsobov, ako pristupovať k tomuto druhu dotazu a vybrať si jeden, potrebovali by sme konkrétny prípad použitia.

Príklad použitia: Chceli by sme dotazovať sa na každú jednu inštanciu Base a zostaviť objektový graf obsahujúci každý riadok. Je to jednoduché, nepotrebujeme ani pripojenie. Potrebujeme iba premenlivý slovník & ltint, base & gt s ID použitým ako kľúč.


O autorovi

GORDON S. LINOFF pracuje s databázami už viac desaťročí, ako si sám pripúšťa. Začal sa učiť o SQL zapamätaním si štandardu SQL 92, pričom viedol vývojový tím & # 40 v súčasnosti & # 45defunct Thinking Machines Corporation & # 41 a písal prvú vysoko výkonnú databázu zameranú na komplexné dotazy potrebné pre podporu rozhodovania.

Po tomto úsilí založil Gordon v roku 1998 spoločnosť Data Miners, konzultačnú prax zameranú na dolovanie dát, analytiku a veľké dáta. Konštantnou témou v jeho práci sú dáta a dáta často v relačných databázach. Jeho schopnosti v oblasti SQL sa v priebehu rokov len posilňovali. V roku 2014 bol hlavným prispievateľom do spoločnosti Stack Overflow, poprednej stránky s otázkami & # 45and # 45answer & # 45 pre technické otázky.

Medzi jeho ďalšie knihy patrí aj bestseller Techniky ťažby dát, zvládnutie ťažby dát z tretieho vydania a Ťažba sieť& # 151ktoré sa zameriavajú na dolovanie a analýzu údajov. Táto kniha sleduje popularitu prvého vydania s praktickým zameraním na to, ako skutočne získať a interpretovať výsledky.


Multidimenzionálne dátové modelovanie pre lokalizačné služby

S nedávnym a pokračujúcim pokrokom v oblastiach, ako sú bezdrôtové komunikácie a technológie určovania polohy, sú mobilné služby založené na polohe stále možné.

Takéto služby poskytujú svojim používateľom obsah závislý od polohy. Presnejšie povedané, tieto služby môžu zachytávať pohyby a požiadavky svojich používateľov vo viacrozmerných databázach, t. J. Dátových skladoch, a doručovanie obsahu môže byť založené na výsledkoch komplexných dotazov na tieto dátové sklady. Takéto dotazy agregujú podrobné údaje, aby našli užitočné vzory, napríklad pri interakcii konkrétneho používateľa so službami.

Aplikácia multidimenzionálnej technológie v tejto súvislosti predstavuje celý rad nových výziev. Špecifická výzva, ktorá sa tu rieši, sa týka zabezpečenia vhodného viacrozmerného dátového modelu. Príspevok konkrétne rozširuje existujúci multidimenzionálny dátový model a jazyk algebraických dotazov tak, aby vyhovoval priestorovým hodnotám, ktoré vykazujú čiastočné vzťahy zadržania namiesto celkových vzťahov zadržania, ktoré sa bežne predpokladajú vo viacrozmerných údajových modeloch. Čiastočné obmedzenie predstavuje nepresnosť v agregačných cestách. Príspevok navrhuje metódu na vyhodnotenie nepresnosti týchto ciest. Príspevok taktiež ponúka transformácie dimenzionálnych hierarchií s čiastkovými vzťahmi obmedzení k jednoduchým hierarchiám, na ktoré sa vzťahujú existujúce techniky predpočtu.


Obsah

Neformálne možno štatistický model považovať za štatistický predpoklad (alebo súbor štatistických predpokladov) s určitou vlastnosťou: že tento predpoklad umožňuje vypočítať pravdepodobnosť akejkoľvek udalosti. Ako príklad zvážte pár obyčajných šesťstranných kociek. Budeme študovať dva rôzne štatistické predpoklady o kockách.

Prvý štatistický predpoklad predstavuje štatistický model: pretože iba s týmto predpokladom môžeme vypočítať pravdepodobnosť akejkoľvek udalosti. Alternatívny štatistický predpoklad áno nie tvoria štatistický model: pretože iba za predpokladu nemôžeme vypočítať pravdepodobnosť každej udalosti.

Vo vyššie uvedenom príklade je s prvým predpokladom výpočet pravdepodobnosti udalosti jednoduchý. S niektorými ďalšími príkladmi však môže byť výpočet ťažký alebo dokonca nepraktický (napr. Môže si vyžadovať milióny rokov výpočtu). Pre predpoklad, že predstavuje štatistický model, je takáto obtiažnosť prijateľná: výpočet nemusí byť uskutočniteľný, iba teoreticky možný.

Intuícia za touto definíciou je nasledovná. Predpokladá sa, že existuje „skutočné“ rozdelenie pravdepodobnosti vyvolané procesom, ktorý generuje pozorované údaje. Vyberieme P < displaystyle < mathcal

>> predstavuje množinu (distribúcií), ktorá obsahuje distribúciu, ktorá sa adekvátne približuje skutočnému rozdeleniu.

Predpokladajme, že v populácii máme populáciu detí s rovnomerne rozloženým vekom detí. Výška dieťaťa bude stochasticky súvisieť s vekom: napr. keď vieme, že dieťa má 7 rokov, ovplyvňuje to pravdepodobnosť, že bude mať dieťa 1,5 metra. Tento vzťah by sme mohli formalizovať v lineárnom regresnom modeli, napríklad takto: výškai = b0 + b1Veki + εi, kde b0 je odpočúvanie, b1 je parameter, ktorým sa vek vynásobí, aby sa získala predpoveď výšky, εi je chybný výraz a i identifikuje dieťa. To znamená, že výšku predpovedá vek s určitou chybou.

Prípustný model musí byť v súlade so všetkými údajovými bodmi. Teda rovná čiara (výškai = b0 + b1Veki) nemôže byť rovnicou pre model údajov - pokiaľ sa úplne nezmestia do všetkých údajových bodov, t. j. všetky údajové body ležia dokonale na priamke. Chybný člen, εi, musia byť zahrnuté do rovnice, aby bol model v súlade so všetkými údajovými bodmi.

Na vykonanie štatistickej inferencie by sme najskôr museli predpokladať určité rozdelenia pravdepodobností pre εi. Napríklad by sme mohli predpokladať, že εi distribúcie sú i.i.d. Gaussian, s nulovým priemerom. V tomto prípade by model mal 3 parametre: b0, b1a rozptyl Gaussovho rozdelenia.

Štatistický model je špeciálna trieda matematického modelu. Štatistický model sa odlišuje od iných matematických modelov tým, že štatistický model je nedeterministický. Takže v štatistickom modeli špecifikovanom pomocou matematických rovníc niektoré z premenných nemajú konkrétne hodnoty, ale majú pravdepodobné rozdelenia, t. J. Niektoré z premenných sú stochastické. Vo vyššie uvedenom príklade s výškami detí je ε stochastická premenná bez tejto stochastickej premennej, model by bol deterministický.

Štatistické modely sa často používajú, aj keď je proces generovania údajov, ktorý je modelovaný, deterministický. Napríklad hádzanie mincí je v zásade deterministický proces, napriek tomu sa bežne modeluje ako stochastický (pomocou Bernoulliho procesu).

Vybrať vhodný štatistický model, ktorý predstavuje daný proces generovania údajov, je niekedy mimoriadne zložitý a môže vyžadovať znalosť procesu i príslušných štatistických analýz. Štatistik Sir David Cox súvisí s tým, že „najdôležitejšou časťou analýzy je často to, ako sa robí preklad z predmetného problému do štatistického modelu.“ [5]

Podľa spoločnosti Konishi & amp Kitagawa existujú štatistické modely tri účely. [6]

Tieto tri účely sú v podstate rovnaké ako tri účely uvedené v dokumente Friendly & amp Meyer: predikcia, odhad, popis. [7] Tieto tri účely zodpovedajú trom druhom logických úvah: deduktívne uvažovanie, induktívne uvažovanie, únosové uvažovanie.

Ako príklad môžeme uviesť, že ak predpokladáme, že údaje vznikajú z jednorozmerného Gaussovho rozdelenia, vychádzame z toho

V tomto príklade sa dimenzia k rovná 2.

Ako ďalší príklad si predstavme, že dáta pozostávajú z bodov (x, y), o ktorých predpokladáme, že sú distribuované podľa priamky s i.i.d. Gaussove zvyšky (s nulovým priemerom): vedie to k rovnakému štatistickému modelu, aký bol použitý v príklade s výškami detí. Dimenzia štatistického modelu je 3: priesečník čiary, sklon čiary a rozptyl distribúcie zvyškov. (Upozorňujeme, že v geometrii má priamka rozmer 1.)

Parametrické modely sú jednoznačne najbežnejšie používanými štatistickými modelmi. Pokiaľ ide o semiparametrické a neparametrické modely, Sir David Cox uviedol: „Spravidla zahŕňajú menej predpokladov štruktúry a distribučnej formy, ale zvyčajne obsahujú silné predpoklady nezávislosti.“ [8]

Dva štatistické modely sú vnorené ak je možné prvý model transformovať do druhého modelu uvalením obmedzení na parametre prvého modelu. Napríklad sada všetkých Gaussových distribúcií má vnorenú sadu nulových priemerných Gaussových distribúcií: obmedzíme priemer v množine všetkých Gaussových distribúcií, aby sme dostali distribúcie s nulovou strednou hodnotou. Ako druhý príklad slúži kvadratický model

r = b0 + b1X + b2X 2 + ε, ε

má v sebe vnorený lineárny model

r = b0 + b1X + ε, ε

—Obmedzujeme parameter b2 rovná sa 0.

V obidvoch týchto príkladoch má prvý model vyššiu dimenziu ako druhý model (pre prvý príklad má model s nulovou strednou hodnotou dimenziu 1). Tak to často býva, ale nie vždy. Ako iný príklad môžeme uviesť, že množina kladno-stredných Gaussových distribúcií, ktorá má dimenziu 2, je vnorená do množiny všetkých Gaussových distribúcií.

Porovnanie štatistických modelov je pre väčšinu štatistických záverov zásadné. Konishi a amp Kitagawa (2008, s. 75) to skutočne tvrdia: „Väčšina problémov v štatistickej inferencii sa dá považovať za problémy súvisiace so štatistickým modelovaním. Spravidla sa formulujú ako porovnanie niekoľkých štatistických modelov.“

Medzi spoločné kritériá na porovnanie modelov patria: R 2, Bayesov faktor, informačné kritérium Akaike a test pravdepodobnostného pomeru spolu s jeho zovšeobecnením relatívna pravdepodobnosť.


1 odpoveď 1

Otázka o primárnych kľúčoch:

V skutočnosti majú uzly a vzťahy Neo4j interné jedinečné ID, ku ktorému je možné pristupovať pomocou funkcie id ():

Vaša aplikácia by sa však nemala spoliehať na tieto ID, pretože ich Neo4j znova použije, keď sa uzol alebo vzťahy odstránia. Dokumentácia Neo4j hovorí:

Neo4j znova používa svoje interné ID, keď sú odstránené uzly a vzťahy. To znamená, že aplikácie, ktoré používajú interné identifikátory Neo4j a spoliehajú sa na ne, sú krehké alebo hrozí, že urobia chybu. Preto sa odporúča radšej používať ID generované aplikáciou.

Ak teda naozaj chcete primárny kľúč, myslím si, že máte dve hlavné možnosti:

Spravujte primárne kľúče na úrovni aplikácie. To znamená: vytvorte a priraďte jedinečné identifikátory v kóde aplikácie, ktoré pristupujú k vašej databáze Neo4j.

Použite doplnok GraphAware UUID. GraphAware UUID je jednoduchá knižnica, ktorá transparentne priraďuje UUID novovytvoreným uzlom a vzťahom v grafe a zaisťuje, aby ich nikto nemohol (náhodne alebo úmyselne) zmeniť ani vymazať.


Pozri si video: Обучение SQL. 3 Урок. Решение упражнений