blob: dbce3010031047798ab6d87a37aa66c58a69baf0 [file] [log] [blame]
DROP TABLE IF EXISTS abalone CASCADE;
CREATE TABLE abalone (
id integer,
sex text,
length double precision,
diameter double precision,
height double precision,
whole double precision,
shucked double precision,
viscera double precision,
shell double precision,
rings integer
);
INSERT INTO abalone VALUES
(3151, 'F', 0.655000000000000027, 0.505000000000000004, 0.165000000000000008, 1.36699999999999999, 0.583500000000000019, 0.351499999999999979, 0.396000000000000019, 10),
(2026, 'F', 0.550000000000000044, 0.469999999999999973, 0.149999999999999994, 0.920499999999999985, 0.381000000000000005, 0.243499999999999994, 0.267500000000000016, 10),
(3751, 'I', 0.434999999999999998, 0.375, 0.110000000000000001, 0.41549999999999998, 0.170000000000000012, 0.0759999999999999981, 0.14499999999999999, 8),
(720, 'I', 0.149999999999999994, 0.100000000000000006, 0.0250000000000000014, 0.0149999999999999994, 0.00449999999999999966, 0.00400000000000000008, 0.0050000000000000001, 2),
(1635, 'F', 0.574999999999999956, 0.469999999999999973, 0.154999999999999999, 1.1160000000000001, 0.509000000000000008, 0.237999999999999989, 0.340000000000000024, 10),
(2648, 'I', 0.5, 0.390000000000000013, 0.125, 0.582999999999999963, 0.293999999999999984, 0.132000000000000006, 0.160500000000000004, 8),
(1796, 'F', 0.57999999999999996, 0.429999999999999993, 0.170000000000000012, 1.47999999999999998, 0.65349999999999997, 0.32400000000000001, 0.41549999999999998, 10),
(209, 'F', 0.525000000000000022, 0.41499999999999998, 0.170000000000000012, 0.832500000000000018, 0.275500000000000023, 0.168500000000000011, 0.309999999999999998, 13),
(1451, 'I', 0.455000000000000016, 0.33500000000000002, 0.135000000000000009, 0.501000000000000001, 0.274000000000000021, 0.0995000000000000051, 0.106499999999999997, 7),
(1108, 'I', 0.510000000000000009, 0.380000000000000004, 0.115000000000000005, 0.515499999999999958, 0.214999999999999997, 0.113500000000000004, 0.166000000000000009, 8),
(3675, 'F', 0.594999999999999973, 0.450000000000000011, 0.165000000000000008, 1.08099999999999996, 0.489999999999999991, 0.252500000000000002, 0.279000000000000026, 12),
(2108, 'F', 0.675000000000000044, 0.550000000000000044, 0.179999999999999993, 1.68849999999999989, 0.562000000000000055, 0.370499999999999996, 0.599999999999999978, 15),
(3312, 'F', 0.479999999999999982, 0.380000000000000004, 0.135000000000000009, 0.507000000000000006, 0.191500000000000004, 0.13650000000000001, 0.154999999999999999, 12),
(882, 'M', 0.655000000000000027, 0.520000000000000018, 0.165000000000000008, 1.40949999999999998, 0.585999999999999965, 0.290999999999999981, 0.405000000000000027, 9),
(3402, 'M', 0.479999999999999982, 0.395000000000000018, 0.149999999999999994, 0.681499999999999995, 0.214499999999999996, 0.140500000000000014, 0.2495, 18),
(829, 'I', 0.409999999999999976, 0.325000000000000011, 0.100000000000000006, 0.394000000000000017, 0.20799999999999999, 0.0655000000000000027, 0.105999999999999997, 6),
(1305, 'M', 0.535000000000000031, 0.434999999999999998, 0.149999999999999994, 0.716999999999999971, 0.347499999999999976, 0.14449999999999999, 0.194000000000000006, 9),
(3613, 'M', 0.599999999999999978, 0.46000000000000002, 0.179999999999999993, 1.1399999999999999, 0.422999999999999987, 0.257500000000000007, 0.364999999999999991, 10),
(1068, 'I', 0.340000000000000024, 0.265000000000000013, 0.0800000000000000017, 0.201500000000000012, 0.0899999999999999967, 0.0475000000000000006, 0.0550000000000000003, 5),
(2446, 'M', 0.5, 0.380000000000000004, 0.135000000000000009, 0.583500000000000019, 0.22950000000000001, 0.126500000000000001, 0.179999999999999993, 12),
(1393, 'M', 0.635000000000000009, 0.474999999999999978, 0.170000000000000012, 1.19350000000000001, 0.520499999999999963, 0.269500000000000017, 0.366499999999999992, 10),
(359, 'M', 0.744999999999999996, 0.584999999999999964, 0.214999999999999997, 2.49900000000000011, 0.92649999999999999, 0.471999999999999975, 0.699999999999999956, 17),
(549, 'F', 0.564999999999999947, 0.450000000000000011, 0.160000000000000003, 0.79500000000000004, 0.360499999999999987, 0.155499999999999999, 0.23000000000000001, 12),
(1154, 'F', 0.599999999999999978, 0.474999999999999978, 0.160000000000000003, 1.02649999999999997, 0.484999999999999987, 0.2495, 0.256500000000000006, 9),
(1790, 'F', 0.54500000000000004, 0.385000000000000009, 0.149999999999999994, 1.11850000000000005, 0.542499999999999982, 0.244499999999999995, 0.284499999999999975, 9),
(3703, 'F', 0.665000000000000036, 0.540000000000000036, 0.195000000000000007, 1.76400000000000001, 0.850500000000000034, 0.361499999999999988, 0.469999999999999973, 11),
(1962, 'F', 0.655000000000000027, 0.515000000000000013, 0.179999999999999993, 1.41199999999999992, 0.619500000000000051, 0.248499999999999999, 0.496999999999999997, 11),
(1665, 'I', 0.604999999999999982, 0.469999999999999973, 0.14499999999999999, 0.802499999999999991, 0.379000000000000004, 0.226500000000000007, 0.220000000000000001, 9),
(635, 'M', 0.359999999999999987, 0.294999999999999984, 0.100000000000000006, 0.210499999999999993, 0.0660000000000000031, 0.0524999999999999981, 0.0749999999999999972, 9),
(3901, 'M', 0.445000000000000007, 0.344999999999999973, 0.140000000000000013, 0.475999999999999979, 0.205499999999999988, 0.101500000000000007, 0.108499999999999999, 15),
(2734, 'I', 0.41499999999999998, 0.33500000000000002, 0.100000000000000006, 0.357999999999999985, 0.169000000000000011, 0.067000000000000004, 0.104999999999999996, 7),
(3856, 'M', 0.409999999999999976, 0.33500000000000002, 0.115000000000000005, 0.440500000000000003, 0.190000000000000002, 0.0850000000000000061, 0.135000000000000009, 8),
(827, 'I', 0.395000000000000018, 0.28999999999999998, 0.0950000000000000011, 0.303999999999999992, 0.127000000000000002, 0.0840000000000000052, 0.076999999999999999, 6),
(3381, 'I', 0.190000000000000002, 0.130000000000000004, 0.0449999999999999983, 0.0264999999999999993, 0.00899999999999999932, 0.0050000000000000001, 0.00899999999999999932, 5),
(3972, 'I', 0.400000000000000022, 0.294999999999999984, 0.0950000000000000011, 0.252000000000000002, 0.110500000000000001, 0.0575000000000000025, 0.0660000000000000031, 6),
(1155, 'M', 0.599999999999999978, 0.455000000000000016, 0.170000000000000012, 1.1915, 0.695999999999999952, 0.239499999999999991, 0.239999999999999991, 8),
(3467, 'M', 0.640000000000000013, 0.5, 0.170000000000000012, 1.4544999999999999, 0.642000000000000015, 0.357499999999999984, 0.353999999999999981, 9),
(2433, 'F', 0.609999999999999987, 0.484999999999999987, 0.165000000000000008, 1.08699999999999997, 0.425499999999999989, 0.232000000000000012, 0.380000000000000004, 11),
(552, 'I', 0.614999999999999991, 0.489999999999999991, 0.154999999999999999, 0.988500000000000045, 0.41449999999999998, 0.195000000000000007, 0.344999999999999973, 13),
(1425, 'F', 0.729999999999999982, 0.57999999999999996, 0.190000000000000002, 1.73750000000000004, 0.678499999999999992, 0.434499999999999997, 0.520000000000000018, 11),
(2402, 'F', 0.584999999999999964, 0.41499999999999998, 0.154999999999999999, 0.69850000000000001, 0.299999999999999989, 0.145999999999999991, 0.195000000000000007, 12),
(1748, 'F', 0.699999999999999956, 0.535000000000000031, 0.174999999999999989, 1.77299999999999991, 0.680499999999999994, 0.479999999999999982, 0.512000000000000011, 15),
(3983, 'I', 0.57999999999999996, 0.434999999999999998, 0.149999999999999994, 0.891499999999999959, 0.362999999999999989, 0.192500000000000004, 0.251500000000000001, 6),
(335, 'F', 0.739999999999999991, 0.599999999999999978, 0.195000000000000007, 1.97399999999999998, 0.597999999999999976, 0.408499999999999974, 0.709999999999999964, 16),
(1587, 'I', 0.515000000000000013, 0.349999999999999978, 0.104999999999999996, 0.474499999999999977, 0.212999999999999995, 0.122999999999999998, 0.127500000000000002, 10),
(2448, 'I', 0.275000000000000022, 0.204999999999999988, 0.0800000000000000017, 0.096000000000000002, 0.0359999999999999973, 0.0184999999999999991, 0.0299999999999999989, 6),
(1362, 'F', 0.604999999999999982, 0.474999999999999978, 0.174999999999999989, 1.07600000000000007, 0.463000000000000023, 0.219500000000000001, 0.33500000000000002, 9),
(2799, 'M', 0.640000000000000013, 0.484999999999999987, 0.149999999999999994, 1.09800000000000009, 0.519499999999999962, 0.222000000000000003, 0.317500000000000004, 10),
(1413, 'F', 0.67000000000000004, 0.505000000000000004, 0.174999999999999989, 1.01449999999999996, 0.4375, 0.271000000000000019, 0.3745, 10),
(1739, 'F', 0.67000000000000004, 0.540000000000000036, 0.195000000000000007, 1.61899999999999999, 0.739999999999999991, 0.330500000000000016, 0.465000000000000024, 11),
(1152, 'M', 0.584999999999999964, 0.465000000000000024, 0.160000000000000003, 0.955500000000000016, 0.45950000000000002, 0.235999999999999988, 0.265000000000000013, 7),
(2427, 'I', 0.564999999999999947, 0.434999999999999998, 0.154999999999999999, 0.782000000000000028, 0.271500000000000019, 0.16800000000000001, 0.284999999999999976, 14),
(1777, 'M', 0.484999999999999987, 0.369999999999999996, 0.154999999999999999, 0.967999999999999972, 0.418999999999999984, 0.245499999999999996, 0.236499999999999988, 9),
(3294, 'M', 0.574999999999999956, 0.455000000000000016, 0.184999999999999998, 1.15599999999999992, 0.552499999999999991, 0.242999999999999994, 0.294999999999999984, 13),
(1403, 'M', 0.650000000000000022, 0.510000000000000009, 0.190000000000000002, 1.54200000000000004, 0.715500000000000025, 0.373499999999999999, 0.375, 9),
(2256, 'M', 0.510000000000000009, 0.395000000000000018, 0.14499999999999999, 0.61850000000000005, 0.215999999999999998, 0.138500000000000012, 0.239999999999999991, 12),
(3984, 'F', 0.584999999999999964, 0.450000000000000011, 0.125, 0.873999999999999999, 0.354499999999999982, 0.20749999999999999, 0.225000000000000006, 6),
(1116, 'M', 0.525000000000000022, 0.405000000000000027, 0.119999999999999996, 0.755499999999999949, 0.3755, 0.155499999999999999, 0.201000000000000012, 9),
(1366, 'M', 0.609999999999999987, 0.474999999999999978, 0.170000000000000012, 1.02649999999999997, 0.434999999999999998, 0.233500000000000013, 0.303499999999999992, 10),
(3759, 'I', 0.525000000000000022, 0.400000000000000022, 0.140000000000000013, 0.605500000000000038, 0.260500000000000009, 0.107999999999999999, 0.209999999999999992, 9);
DROP TABLE IF EXISTS abalone_out, abalone_out_summary;
SELECT glm(
'abalone',
'abalone_out',
'rings',
'ARRAY[1, length, diameter, height, whole, shucked, viscera, shell]',
'family=gamma, link=inverse', NULL, 'max_iter=1000, tolerance=1e-16'
);
SELECT
assert(relative_error(ARRAY[0.259601806672683677, 0.004923504989331575, -0.085280427388340893, -1.136580311156418110, -0.081294074048077161, 0.219343429795665540, 0.050674401643824987, 0.099158571059807785], coef) < 1e-4, 'wrong coef'),
assert(relative_error(ARRAY[0.03053013546653977, 0.15001461111072004, 0.19141556656980133, 0.22874261855077344, 0.05597759436102569, 0.07131536657263171, 0.10410643904742965, 0.10620865917681811], std_err) < 1e-4, 'wrong std_err'),
assert(relative_error(ARRAY[8.50313314060464798, 0.03282016966799137, -0.44552503705200308, -4.96881743488537619, -1.45226094433021991, 3.07568256796764050, 0.48675569069016311, 0.93362040184244099], t_stats) < 1e-4, 'wrong t_stats'),
assert(relative_error(ARRAY[2.057988866534954e-11, 9.739436489346986e-01, 6.577897521744481e-01, 7.680415307089833e-06, 1.524366227307450e-01, 3.344550471429920e-03, 6.284769074104122e-01, 3.548148742312145e-01], p_values) < 1e-4, 'wrong p_values'),
assert(relative_error(0.04651952476439187, dispersion) < 1e-4, 'wrong dispersion')
FROM abalone_out;
------------------------------------------------------------
DROP TABLE IF EXISTS abalone_out, abalone_out_summary;
SELECT glm(
'abalone',
'abalone_out',
'rings',
'ARRAY[1, length, diameter, height, whole, shucked, viscera, shell]',
'family=gamma, link=identity', NULL, 'max_iter=1000, tolerance=1e-16'
);
SELECT
assert(relative_error(ARRAY[0.1659486793855325, 7.0124757507123583, -12.3236409713429538, 89.9934659618643167, 8.9140750017522734, -21.9429354631108353, -9.6588574364568505, 1.2150392031595119], coef) < 1e-4, 'wrong coef'),
assert(relative_error(ARRAY[0.7438116728430268, 11.1870074986358752, 13.9856114723440097, 18.5231422414897189, 6.9652591576640885, 7.3481983325993925, 10.9371220801290772, 10.5925360266202802], std_err) < 1e-4, 'wrong std_err'),
assert(relative_error(ARRAY[0.2231057745453722, 0.6268410700151446, -0.8811656891593523, 4.8584341030588885, 1.2797908591733937, -2.9861653795820478, -0.8831260514139621, 0.1147071107528902], t_stats) < 1e-4, 'wrong t_stats'),
assert(relative_error(ARRAY[8.243272970184903e-01, 5.335059713425181e-01, 3.822829452592965e-01, 1.127841214543523e-05, 2.062991689393499e-01, 4.300388932278976e-03, 3.812328347479560e-01, 9.091190590418358e-01], p_values) < 1e-4, 'wrong p_values'),
assert(relative_error(0.03536577508440206, dispersion) < 1e-4, 'wrong dispersion')
FROM abalone_out;
------------------------------------------------------------
DROP TABLE IF EXISTS abalone_out, abalone_out_summary;
SELECT glm(
'abalone',
'abalone_out',
'rings',
'ARRAY[1, length, diameter, height, whole, shucked, viscera, shell]',
'family=gamma, link=log', NULL, 'max_iter=1000, tolerance=1e-16'
);
SELECT
assert(relative_error(ARRAY[0.85896765487845006, 0.48682244044969791, -0.04533548086840244, 10.71976488567542418, 0.95203119154320504, -2.41150655978388917, -0.79654368410985898, -0.69112606088690998], coef) < 1e-4, 'wrong coef'),
assert(relative_error(ARRAY[0.1874516749092294, 1.3193828027943559, 1.6536740944297224, 2.1293094384468669, 0.6201168091194580, 0.7116472994070442, 1.0599392825664224, 1.0447639775379856], std_err) < 1e-4, 'wrong std_err'),
assert(relative_error(ARRAY[4.58234185047635378, 0.36897740323630390, -0.02741500336802253, 5.03438565204242661, 1.53524493699026277, -3.38862602555113268, -0.75149935209608820, -0.66151406034841209], t_stats) < 1e-4, 'wrong t_stats'),
assert(relative_error(ARRAY[2.913087125698804e-05, 7.136427267002773e-01, 9.782336757254464e-01, 6.105930103870348e-06, 1.307863215995863e-01, 1.346489429839712e-03, 4.557400667854057e-01, 5.112034313887294e-01], p_values) < 1e-4, 'wrong p_values'),
assert(relative_error(0.04009347441088426, dispersion) < 1e-4, 'wrong dispersion')
FROM abalone_out;
------------------------------------------------------------
-- Grouping support
DROP TABLE IF EXISTS abalone_out, abalone_out_summary;
SELECT glm(
'abalone',
'abalone_out',
'rings',
'ARRAY[1, length, diameter, height, whole, shucked, viscera, shell]',
'family=gamma, link=inverse', 'sex', 'max_iter=1000, tolerance=1e-16'
);
SELECT
assert(relative_error(ARRAY[0.1910279871291337, -0.1540979991045188, 0.1774638205999888, -0.9928948100368485, -0.2497282359894248, 0.3183615877507706, 0.5101766780649929, 0.2558093669749176], coef) < 1e-4, 'wrong coef'),
assert(relative_error(ARRAY[0.0661350407769367, 0.2888551537034103, 0.3730484594426851, 0.3336488464726465, 0.1077428554266434, 0.1520291326997690, 0.1890024105562608, 0.2446785801792248], std_err) < 1e-4, 'wrong std_err'),
assert(relative_error(ARRAY[2.8884534565184845, -0.5334784480346956, 0.4757125143074187, -2.9758676540733937, -2.3178171304310013, 2.0940827728030196, 2.6993130752325900, 1.0454914638933233], t_stats) < 1e-4, 'wrong t_stats'),
assert(relative_error(ARRAY[0.01361517743137439, 0.60344349709540790, 0.64282209215421693, 0.01157429300981077, 0.03892092632540602, 0.05815255814057139, 0.01933392184099503, 0.31639937565346621], p_values) < 1e-4, 'wrong p_values'),
assert(relative_error(0.02878209845455021, dispersion) < 1e-4, 'wrong dispersion')
FROM abalone_out where sex = 'M';
------------------------------------------------------------
DROP TABLE IF EXISTS abalone_out, abalone_out_summary;
SELECT glm(
'abalone',
'abalone_out',
'rings',
'ARRAY[1, length, diameter, height, whole, shucked, viscera, shell]',
'family=gamma, link=identity', 'sex', 'max_iter=1000, tolerance=1e-16'
);
SELECT
assert(relative_error(ARRAY[-0.2867711070508698, 37.9490036710105656, -39.4890147860926675, 92.0168374333200489, 37.1345299555392501, -45.1652258624278247, -60.6058697367128190, -42.0514522914254201], coef) < 1e-4, 'wrong coef'),
assert(relative_error(ARRAY[7.689676264034388, 37.676964735680500, 43.105919262351215, 36.808638228089578, 15.918757089570034, 19.816761933312371, 20.987529270158650, 33.838565263189331], std_err) < 1e-4, 'wrong std_err'),
assert(relative_error(ARRAY[-0.03729300131816153, 1.00722029858929796, -0.91609262629929444, 2.49987073314490971, 2.33275310042074713, -2.27914257709803625, -2.88770864624288803, -1.24270789746426780], t_stats) < 1e-4, 'wrong t_stats'),
assert(relative_error(ARRAY[0.97086460291302568, 0.33370761535837346, 0.37766084817633017, 0.02792202035304302, 0.03788070048691927, 0.04174290102860648, 0.01363402280716737, 0.23771085948802589], p_values) < 1e-4, 'wrong p_values'),
assert(relative_error(0.03373732777220838, dispersion) < 1e-4, 'wrong dispersion')
FROM abalone_out where sex = 'M';
------------------------------------------------------------
DROP TABLE IF EXISTS abalone_out, abalone_out_summary;
SELECT glm(
'abalone',
'abalone_out',
'rings',
'ARRAY[1, length, diameter, height, whole, shucked, viscera, shell]',
'family=gamma, link=log', 'sex', 'max_iter=1000, tolerance=1e-16'
);
SELECT
assert(relative_error(ARRAY[1.315155212709478, 2.748114351306258, -2.900340401702799, 9.591398540606335, 3.059503518862166, -3.838702533471104, -5.440730875559789, -3.399027911743964], coef) < 1e-4, 'wrong coef'),
assert(relative_error(ARRAY[0.7134909501622814, 3.3993245331714284, 4.0863641077495600, 3.5588502394602943, 1.3535372060444095, 1.7559654903565487, 1.9477813194732576, 2.9522623726134305], std_err) < 1e-4, 'wrong std_err'),
assert(relative_error(ARRAY[1.8432682466544952, 0.8084295348942109, -0.7097606393425556, 2.6950834947358970, 2.2603763717757634, -2.1860922407374055, -2.7932965683391693, -1.1513298896720494], t_stats) < 1e-4, 'wrong t_stats'),
assert(relative_error(ARRAY[0.09011537780517419, 0.43457829327731157, 0.49141475237332033, 0.01948577831992954, 0.04318156622333539, 0.04935229628149895, 0.01624494020580331, 0.27202049681836232], p_values) < 1e-4, 'wrong p_values'),
assert(relative_error(0.03178068913052164, dispersion) < 1e-4, 'wrong dispersion')
FROM abalone_out where sex = 'M';