diff --git a/src/pg/test/expected/02_moran_test.out b/src/pg/test/expected/02_moran_test.out index 95ce189..384f180 100644 --- a/src/pg/test/expected/02_moran_test.out +++ b/src/pg/test/expected/02_moran_test.out @@ -68,6 +68,63 @@ code|quads (52 rows) _cdb_random_seeds +(1 row) +code|quads|diff_orig|expected|moran_stat_not_null|significance_not_null|value_comparison +01|HH|t|t|t|t|t +02|HL|t|t|t|t|t +03|LL|t|t|t|t|t +04|LL|t|t|t|t|t +05|LH|t|t|t|t|t +06|LL|t|t|t|t|t +07|HH|t|t|t|t|t +08|HH|t|t|t|t|t +09|HH|t|t|t|t|t +10|LL|t|t|t|t|t +11|LL|t|t|t|t|t +12|LL|t|t|t|t|t +13|HL|t|t|t|t|t +14|LL|t|t|t|t|t +15|LL|t|t|t|t|t +16|HH|t|t|t|t|t +17|HH|t|t|t|t|t +18|LL|t|t|t|t|t +19|HH|t|t|t|t|t +20|HH|t|t|t|t|t +21|LL|t|t|t|t|t +22|HH|t|t|t|t|t +23|LL|t|t|t|t|t +24|LL|t|t|t|t|t +25|HH|t|t|t|t|t +26|HH|t|t|t|t|t +27|LL|t|t|t|t|t +28|HH|t|t|t|t|t +29|LL|t|t|t|t|t +30|LL|t|t|t|t|t +31|HH|t|t|t|t|t +32|LL|t|t|t|t|t +33|HL|t|t|t|t|t +34|LH|t|t|t|t|t +35|LL|t|t|t|t|t +36|LL|t|t|t|t|t +37|HL|t|t|t|t|t +38|HL|t|t|t|t|t +39|HH|t|t|t|t|t +40|HH|t|t|t|t|t +41|HL|t|t|t|t|t +42|LH|t|t|t|t|t +43|LH|t|t|t|t|t +44|LL|t|t|t|t|t +45|LH|t|t|t|t|t +46|LL|t|t|t|t|t +47|LL|t|t|t|t|t +48|HH|t|t|t|t|t +49|LH|t|t|t|t|t +50|HH|t|t|t|t|t +51|LL|t|t|t|t|t +52|LL|t|t|t|t|t +(52 rows) +_cdb_random_seeds + (1 row) code|quads 01|HH @@ -204,6 +261,63 @@ code|quads (52 rows) _cdb_random_seeds +(1 row) +code|quads|diff_orig|expected|moran_stat_not_null|significance_not_null +01|HH|t|t|t|t +02|HL|t|t|t|t +03|LL|t|t|t|t +04|LL|t|t|t|t +05|LH|t|t|t|t +06|LL|t|t|t|t +07|HH|t|t|t|t +08|HH|t|t|t|t +09|HH|t|t|t|t +10|LL|t|t|t|t +11|LL|t|t|t|t +12|LL|t|t|t|t +13|HL|t|t|t|t +14|LL|t|t|t|t +15|LL|t|t|t|t +16|HH|t|t|t|t +17|HH|t|t|t|t +18|LL|t|t|t|t +19|HH|t|t|t|t +20|HH|t|t|t|t +21|LL|t|t|t|t +22|HH|t|t|t|t +23|LL|t|t|t|t +24|LL|t|t|t|t +25|HH|t|t|t|t +26|HH|t|t|t|t +27|LL|t|t|t|t +28|HH|t|t|t|t +29|LL|t|t|t|t +30|LL|t|t|t|t +31|HH|t|t|t|t +32|LL|t|t|t|t +33|HL|t|t|t|t +34|LH|t|t|t|t +35|LL|t|t|t|t +36|LL|t|t|t|t +37|HL|t|t|t|t +38|HL|t|t|t|t +39|HH|t|t|t|t +40|HH|t|t|t|t +41|HL|t|t|t|t +42|LH|t|t|t|t +43|LH|t|t|t|t +44|LL|t|t|t|t +45|LH|t|t|t|t +46|LL|t|t|t|t +47|LL|t|t|t|t +48|HH|t|t|t|t +49|LH|t|t|t|t +50|HH|t|t|t|t +51|LL|t|t|t|t +52|LL|t|t|t|t +(52 rows) +_cdb_random_seeds + (1 row) code|quads 01|HH diff --git a/src/pg/test/sql/02_moran_test.sql b/src/pg/test/sql/02_moran_test.sql index d2cfaef..ac5a231 100644 --- a/src/pg/test/sql/02_moran_test.sql +++ b/src/pg/test/sql/02_moran_test.sql @@ -24,6 +24,25 @@ SELECT ppoints.code, m.quads SELECT cdb_crankshaft._cdb_random_seeds(1234); +-- Moran's I local +SELECT + ppoints.code, m.quads, + abs(avg(m.orig_val_std) OVER ()) < 1e-6 as diff_orig, + CASE WHEN m.quads = 'HL' THEN m.orig_val_std > m.spatial_lag_std + WHEN m.quads = 'HH' THEN m.orig_val_std >= 0 and m.spatial_lag_std >= 0 + WHEN m.quads = 'LH' THEN m.orig_val_std < m.spatial_lag_std + WHEN m.quads = 'LL' THEN m.orig_val_std <= 0 and m.spatial_lag_std <= 0 + ELSE null END as expected, + moran_stat is not null moran_stat_not_null, + significance >= 0.001 significance_not_null, -- greater than 1/1000 (default) + abs(m.orig_val - ppoints.value) <= 1e-6 as value_comparison + FROM ppoints + JOIN cdb_crankshaft.CDB_MoransILocal('SELECT * FROM ppoints', 'value') m + ON ppoints.cartodb_id = m.rowid + ORDER BY ppoints.code; + +SELECT cdb_crankshaft._cdb_random_seeds(1234); + -- Spatial Hotspots SELECT ppoints.code, m.quads FROM ppoints @@ -61,6 +80,24 @@ SELECT ppoints2.code, m.quads SELECT cdb_crankshaft._cdb_random_seeds(1234); +-- Moran's I local rate +SELECT + ppoints2.code, m.quads, + abs(avg(m.orig_val_std) OVER ()) < 1e-6 as diff_orig, + CASE WHEN m.quads = 'HL' THEN m.orig_val_std > m.spatial_lag_std + WHEN m.quads = 'HH' THEN m.orig_val_std >= 0 and m.spatial_lag_std >= 0 + WHEN m.quads = 'LH' THEN m.orig_val_std < m.spatial_lag_std + WHEN m.quads = 'LL' THEN m.orig_val_std <= 0 and m.spatial_lag_std <= 0 + ELSE null END as expected, + moran_stat is not null moran_stat_not_null, + significance >= 0.001 significance_not_null -- greater than 1/1000 (default) + FROM ppoints2 + JOIN cdb_crankshaft.CDB_MoransILocalRate('SELECT * FROM ppoints2', 'numerator', 'denominator') m + ON ppoints2.cartodb_id = m.rowid + ORDER BY ppoints2.code; + +SELECT cdb_crankshaft._cdb_random_seeds(1234); + -- Spatial Hotspots (rate) SELECT ppoints2.code, m.quads FROM ppoints2