From add1d2c0cf874a3af95aac666d880d84d7245ab0 Mon Sep 17 00:00:00 2001 From: Hussein Mahfouz <45176416+Hussein-Mahfouz@users.noreply.github.com> Date: Thu, 21 Mar 2024 18:28:09 +0000 Subject: [PATCH] individual matching without replacement --- notebooks/statistical_matching.ipynb | 7112 +++++++++++++++++++++++--- src/acbm/matching.py | 113 + 2 files changed, 6406 insertions(+), 819 deletions(-) create mode 100644 src/acbm/matching.py diff --git a/notebooks/statistical_matching.ipynb b/notebooks/statistical_matching.ipynb index e078974..ddc733e 100644 --- a/notebooks/statistical_matching.ipynb +++ b/notebooks/statistical_matching.ipynb @@ -18,14 +18,16 @@ }, { "cell_type": "code", - "execution_count": 156, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", + "from sklearn.neighbors import NearestNeighbors\n", "\n", + "from acbm.matching import match_individuals, match_psm\n", "from acbm.preprocessing import (\n", " count_per_group,\n", " nts_filter_by_region,\n", @@ -35,7 +37,6 @@ " truncate_values,\n", ")\n", "\n", - "\n", "pd.set_option('display.max_columns', None)" ] }, @@ -99,7 +100,24 @@ "
5 rows × 38 columns
\n", "" ], "text/plain": [ @@ -274,21 +376,47 @@ "3 [365, 868, 2097, 3677, 5213, 5451, 8146, 9253,... E02002183_0003_001 \n", "4 [1288, 12529, 12871] E02002183_0003_002 \n", "\n", - " id_tus_hh id_tus_p ... accommodation_type communal_type num_rooms \\\n", - "0 11291218 1 ... 1.0 NaN 2.0 \n", - "1 17291219 1 ... 3.0 NaN 6.0 \n", - "2 17070713 2 ... 3.0 NaN 6.0 \n", - "3 20310313 1 ... 3.0 NaN 6.0 \n", - "4 13010909 3 ... 3.0 NaN 6.0 \n", - "\n", - " central_heat tenure num_cars sex age_years ethnicity nssec8 \n", - "0 True 2.0 2 1 86 1 1.0 \n", - "1 True 2.0 2 1 74 3 1.0 \n", - "2 True 2.0 2 2 68 1 2.0 \n", - "3 True 2.0 1 1 27 1 4.0 \n", - "4 True 2.0 1 2 26 1 6.0 \n", - "\n", - "[5 rows x 38 columns]" + " id_tus_hh id_tus_p pid_hs msoa oa members bmi \\\n", + "0 11291218 1 2905399 E02002183 E00053954 [0] 24.879356 \n", + "1 17291219 1 2905308 E02002183 E00053953 [1, 2] 27.491207 \n", + "2 17070713 2 2907681 E02002183 E00053953 [1, 2] 17.310829 \n", + "3 20310313 1 2902817 E02002183 E00053689 [3, 4] 20.852091 \n", + "4 13010909 3 2900884 E02002183 E00053689 [3, 4] 20.032526 \n", + "\n", + " has_cardiovascular_disease has_diabetes has_high_blood_pressure \\\n", + "0 False False False \n", + "1 False False True \n", + "2 False True True \n", + "3 False False False \n", + "4 False False False \n", + "\n", + " number_medications self_assessed_health life_satisfaction sic1d2007 \\\n", + "0 NaN 3.0 2.0 J \n", + "1 NaN 3.0 NaN C \n", + "2 NaN 2.0 4.0 P \n", + "3 NaN 2.0 1.0 C \n", + "4 1.0 2.0 3.0 J \n", + "\n", + " sic2d2007 soc2010 pwkstat salary_yearly salary_hourly hid \\\n", + "0 58.0 1115.0 6 NaN NaN E02002183_0001 \n", + "1 25.0 1121.0 6 NaN NaN E02002183_0002 \n", + "2 85.0 2311.0 6 NaN NaN E02002183_0002 \n", + "3 31.0 3422.0 1 32857.859375 14.360952 E02002183_0003 \n", + "4 62.0 7214.0 1 18162.451172 9.439944 E02002183_0003 \n", + "\n", + " accommodation_type communal_type num_rooms central_heat tenure \\\n", + "0 1.0 NaN 2.0 True 2.0 \n", + "1 3.0 NaN 6.0 True 2.0 \n", + "2 3.0 NaN 6.0 True 2.0 \n", + "3 3.0 NaN 6.0 True 2.0 \n", + "4 3.0 NaN 6.0 True 2.0 \n", + "\n", + " num_cars sex age_years ethnicity nssec8 \n", + "0 2 1 86 1 1.0 \n", + "1 2 1 74 3 1.0 \n", + "2 2 2 68 1 2.0 \n", + "3 1 1 27 1 4.0 \n", + "4 1 2 26 1 6.0 " ] }, "execution_count": 3, @@ -599,7 +727,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -657,7 +785,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -693,7 +821,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -750,7 +878,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -770,7 +898,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -802,7 +930,7 @@ " '-10': 'DEAD'})" ] }, - "execution_count": 31, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -825,7 +953,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -928,7 +1056,7 @@ "9 0 1" ] }, - "execution_count": 32, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -954,7 +1082,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -1084,7 +1212,7 @@ "9 5 1 1 0 3" ] }, - "execution_count": 33, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -1146,7 +1274,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -1214,14 +1342,14 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/tmp/ipykernel_11563/1336610326.py:2: SettingWithCopyWarning: \n", + "/tmp/ipykernel_398194/1336610326.py:2: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", @@ -1383,7 +1511,7 @@ "142973 3.0 2.0" ] }, - "execution_count": 35, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -1407,7 +1535,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -1429,7 +1557,7 @@ " '-10': 'DEAD'})" ] }, - "execution_count": 36, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -1447,7 +1575,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -1488,14 +1616,14 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/tmp/ipykernel_11563/3351388236.py:2: SettingWithCopyWarning: \n", + "/tmp/ipykernel_398194/3351388236.py:2: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", @@ -1552,7 +1680,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -1716,7 +1844,7 @@ "16 2 2 1.0 " ] }, - "execution_count": 39, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -1737,7 +1865,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -1746,7 +1874,7 @@ "(2373, 7)" ] }, - "execution_count": 40, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1764,7 +1892,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -1928,7 +2056,7 @@ "142963 2 1.0 1.0 " ] }, - "execution_count": 41, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -1952,7 +2080,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -1967,7 +2095,7 @@ " 'tenure_status': ['tenure_spc_for_matching', 'tenure_nts_for_matching']}" ] }, - "execution_count": 42, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -1990,7 +2118,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -1999,7 +2127,7 @@ "Text(0.5, 1.0, 'Categorical Matching')" ] }, - "execution_count": 43, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, @@ -2050,7 +2178,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 28, "metadata": {}, "outputs": [ { @@ -2059,7 +2187,7 @@ "Text(0.5, 1.0, 'Categorical Matching')" ] }, - "execution_count": 44, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" }, @@ -2109,7 +2237,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -2118,7 +2246,7 @@ "Text(0.5, 1.0, 'Categorical Matching')" ] }, - "execution_count": 45, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" }, @@ -2169,7 +2297,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -2178,7 +2306,7 @@ "Text(0.5, 1.0, 'Categorical Matching')" ] }, - "execution_count": 46, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" }, @@ -2229,7 +2357,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 31, "metadata": {}, "outputs": [ { @@ -2263,7 +2391,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -2284,7 +2412,7 @@ "Name: proportion, Length: 78, dtype: float64" ] }, - "execution_count": 48, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -2313,7 +2441,7 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ @@ -2344,7 +2472,7 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 34, "metadata": {}, "outputs": [], "source": [ @@ -2355,7 +2483,30 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('E02002183_0091', [2019001902.0, 2019000929.0, 2019000936.0, 2019001920.0, 2019004101.0, 2019004092.0, 2019004108.0, 2019001704.0, 2019001699.0, 2019004130.0, 2019004126.0, 2019004144.0, 2019004125.0, 2019004121.0, 2019001719.0, 2019001714.0, 2019001121.0, 2019001133.0, 2019000603.0, 2019001119.0, 2019001130.0, 2019001148.0, 2019000880.0, 2019001795.0, 2019005583.0, 2019005587.0, 2019005588.0, 2019003240.0, 2019000875.0, 2019002767.0, 2019005570.0, 2019002775.0, 2019002769.0, 2019005597.0, 2019002770.0, 2019003260.0, 2019003241.0, 2019003252.0, 2019002533.0, 2019005426.0, 2019005438.0, 2019006453.0, 2019006452.0, 2019003194.0, 2019003199.0, 2019006462.0, 2019006466.0, 2019003198.0, 2019006475.0, 2019003208.0, 2019004199.0, 2019004196.0, 2019004191.0, 2019001738.0, 2019001733.0, 2019004200.0, 2019004197.0, 2019001736.0, 2019004183.0, 2019000343.0, 2019000839.0, 2019000351.0, 2019000852.0, 2019000350.0, 2019000855.0, 2019001091.0, 2019001090.0, 2019001721.0, 2019001718.0, 2019004160.0, 2019001716.0, 2019000797.0, 2019000813.0, 2019004159.0, 2019000823.0, 2019000826.0, 2019004177.0, 2019004166.0, 2019001167.0, 2019001159.0, 2019000633.0, 2019000536.0, 2019005323.0, 2019000154.0, 2019005356.0, 2019004637.0, 2019004653.0, 2019002798.0, 2019005627.0, 2019002812.0, 2019005622.0, 2019005612.0, 2019002547.0, 2019002802.0, 2019001813.0, 2019002811.0, 2019002814.0, 2019005636.0, 2019005638.0, 2019002820.0, 2019001816.0, 2019002836.0, 2019002838.0, 2019005663.0, 2019002319.0, 2019002329.0, 2019000995.0, 2019000990.0, 2019000994.0, 2019000997.0, 2019002918.0, 2019003306.0, 2019003310.0, 2019002583.0, 2019002894.0, 2019001865.0, 2019002578.0, 2019003329.0, 2019002580.0, 2019002919.0, 2019002587.0, 2019002929.0, 2019005553.0, 2019001182.0, 2019000307.0, 2019004714.0, 2019002980.0, 2019004724.0, 2019001216.0, 2019001202.0, 2019001205.0, 2019003003.0, 2019002994.0, 2019001210.0, 2019001782.0, 2019005527.0, 2019001788.0, 2019002721.0, 2019001759.0, 2019000864.0, 2019005540.0, 2019004545.0, 2019004266.0, 2019001787.0, 2019005579.0, 2019000863.0, 2019002269.0, 2019001896.0, 2019001909.0, 2019004168.0, 2019000589.0, 2019000580.0, 2019002462.0, 2019000701.0, 2019000705.0, 2019000708.0, 2019000707.0, 2019002368.0, 2019002372.0, 2019002369.0, 2019002380.0, 2019002374.0, 2019002698.0, 2019002378.0, 2019002376.0, 2019002366.0, 2019001009.0, 2019002709.0, 2019002699.0, 2019001012.0, 2019002405.0, 2019002392.0, 2019002712.0, 2019002711.0, 2019002435.0, 2019002431.0, 2019002426.0, 2019001044.0, 2019001070.0, 2019001058.0, 2019001041.0, 2019001078.0, 2019002455.0, 2019001066.0, 2019001069.0, 2019001084.0, 2019000673.0, 2019000562.0, 2019001268.0, 2019003056.0, 2019001231.0, 2019001222.0, 2019003070.0, 2019004770.0, 2019003000.0, 2019004736.0, 2019003006.0, 2019004737.0, 2019002288.0, 2019000946.0, 2019001936.0, 2019001949.0, 2019002312.0, 2019000972.0, 2019000975.0, 2019000961.0, 2019004059.0, 2019000782.0, 2019000785.0, 2019004062.0, 2019000774.0, 2019000779.0, 2019000781.0, 2019004083.0, 2019004088.0, 2019000780.0, 2019004087.0, 2019004086.0, 2019004257.0, 2019004256.0, 2019002976.0, 2019005461.0, 2019005466.0, 2019005482.0, 2019002502.0, 2019005481.0, 2019002514.0, 2019002526.0, 2019002498.0, 2019002525.0, 2019003380.0, 2019003385.0, 2019003394.0, 2019000244.0, 2019003381.0, 2019004544.0, 2019003384.0, 2019001373.0, 2019006564.0, 2019001450.0, 2019006569.0, 2019006573.0, 2019001448.0, 2019002624.0, 2019001371.0, 2019006568.0, 2019001461.0, 2019006572.0, 2019005410.0, 2019005415.0, 2019005417.0, 2019004237.0, 2019004242.0, 2019000485.0, 2019000491.0, 2019000484.0, 2019000492.0, 2019004252.0, 2019004244.0, 2019005379.0, 2019005380.0, 2019000187.0, 2019002246.0, 2019005742.0, 2019003333.0, 2019000195.0, 2019002243.0, 2019001878.0, 2019002247.0, 2019002248.0, 2019002952.0, 2019002249.0, 2019002969.0, 2019005752.0, 2019002951.0, 2019000199.0, 2019005755.0, 2019002966.0, 2019002263.0, 2019000203.0, 2019003206.0, 2019004994.0, 2019005004.0, 2019004996.0, 2019005005.0, 2019004997.0, 2019005174.0, 2019005909.0, 2019005185.0, 2019005177.0, 2019005914.0, 2019002129.0, 2019005913.0, 2019002139.0, 2019002134.0, 2019005198.0, 2019005558.0, 2019005585.0, 2019001437.0, 2019000874.0, 2019005574.0, 2019005756.0, 2019005769.0, 2019004547.0, 2019005012.0, 2019000074.0, 2019006201.0, 2019003518.0, 2019006080.0, 2019006090.0, 2019006602.0, 2019000079.0, 2019000092.0, 2019000094.0, 2019005026.0, 2019005025.0, 2019005020.0, 2019005024.0, 2019006101.0, 2019000088.0, 2019006617.0, 2019006618.0, 2019006287.0, 2019006273.0, 2019002705.0, 2019002418.0, 2019002433.0, 2019002203.0, 2019004013.0, 2019000762.0, 2019000759.0, 2019004028.0, 2019000634.0, 2019000655.0, 2019000661.0, 2019000662.0, 2019004035.0, 2019000658.0, 2019004044.0, 2019000660.0, 2019000767.0, 2019000657.0, 2019000405.0, 2019000529.0, 2019000711.0, 2019005311.0, 2019000725.0, 2019000153.0, 2019005342.0, 2019000164.0, 2019005336.0, 2019006326.0, 2019000167.0, 2019005487.0, 2019005494.0, 2019005501.0, 2019001760.0, 2019005519.0, 2019002739.0, 2019003058.0, 2019001245.0, 2019001251.0, 2019001289.0, 2019001286.0, 2019003063.0, 2019001255.0, 2019001246.0, 2019001263.0, 2019003029.0, 2019004776.0, 2019006334.0, 2019000430.0, 2019001261.0, 2019001259.0, 2019001295.0, 2019004745.0, 2019003022.0, 2019003023.0, 2019001269.0, 2019003725.0, 2019003726.0, 2019003737.0, 2019004008.0, 2019006738.0, 2019006300.0, 2019003738.0, 2019004622.0, 2019004625.0, 2019004626.0, 2019000387.0, 2019000518.0, 2019000523.0, 2019000525.0, 2019000212.0, 2019003411.0, 2019005774.0, 2019005772.0, 2019005779.0, 2019001284.0, 2019005785.0, 2019001288.0, 2019005073.0, 2019002006.0, 2019005079.0, 2019001657.0, 2019005841.0, 2019005849.0, 2019003750.0, 2019003752.0, 2019001595.0, 2019001596.0, 2019002044.0, 2019001662.0, 2019002096.0, 2019005866.0, 2019001605.0, 2019002039.0, 2019003127.0, 2019001451.0, 2019001416.0, 2019001490.0, 2019001433.0, 2019001483.0, 2019001479.0, 2019001488.0, 2019001493.0, 2019001497.0, 2019001499.0, 2019005972.0, 2019005977.0, 2019004965.0, 2019006001.0, 2019003150.0, 2019001959.0, 2019001964.0, 2019001966.0, 2019001543.0, 2019001562.0, 2019001565.0, 2019001983.0, 2019001993.0, 2019001987.0, 2019005044.0, 2019001584.0, 2019002011.0, 2019002007.0, 2019001527.0, 2019001536.0, 2019001524.0, 2019001951.0, 2019001954.0, 2019001957.0, 2019005041.0, 2019001556.0, 2019001558.0, 2019006505.0, 2019002618.0, 2019006526.0, 2019001342.0, 2019001350.0, 2019001349.0, 2019006531.0, 2019001352.0, 2019001355.0, 2019001262.0, 2019006549.0, 2019006540.0, 2019001367.0, 2019001400.0, 2019006543.0, 2019001403.0, 2019004589.0, 2019003467.0, 2019004598.0, 2019004591.0, 2019003471.0, 2019003484.0, 2019003489.0, 2019005121.0, 2019005122.0, 2019005143.0, 2019001677.0, 2019005119.0, 2019005887.0, 2019005152.0, 2019005173.0, 2019005172.0, 2019005810.0, 2019006141.0, 2019005036.0, 2019005037.0, 2019005039.0, 2019006144.0, 2019003494.0, 2019000052.0, 2019005032.0, 2019000056.0, 2019006188.0, 2019006178.0, 2019000081.0, 2019003528.0, 2019003519.0, 2019000100.0, 2019003540.0, 2019006218.0, 2019006207.0, 2019006210.0, 2019000120.0, 2019003550.0, 2019006205.0, 2019000134.0, 2019003554.0, 2019006226.0, 2019006630.0, 2019003560.0, 2019000127.0, 2019006653.0, 2019004413.0, 2019004417.0, 2019004415.0, 2019004435.0, 2019004420.0, 2019004432.0, 2019004416.0, 2019004467.0, 2019004466.0, 2019003848.0, 2019002491.0, 2019002492.0, 2019002518.0, 2019005498.0, 2019005492.0, 2019002519.0, 2019001670.0, 2019005821.0, 2019005047.0, 2019002040.0, 2019005869.0, 2019005116.0, 2019002045.0, 2019002058.0, 2019005864.0, 2019002061.0, 2019005069.0, 2019005834.0, 2019001638.0, 2019002867.0, 2019001826.0, 2019005694.0, 2019002872.0, 2019002859.0, 2019005708.0, 2019002884.0, 2019005693.0, 2019005706.0, 2019002208.0, 2019002892.0, 2019002232.0, 2019002885.0, 2019002579.0, 2019002562.0, 2019002218.0, 2019003290.0, 2019003294.0, 2019003297.0, 2019002827.0, 2019002830.0, 2019002825.0, 2019003273.0, 2019005654.0, 2019005670.0, 2019002828.0, 2019000907.0, 2019000910.0, 2019000906.0, 2019000909.0, 2019000913.0, 2019000904.0, 2019001823.0, 2019001839.0, 2019002861.0, 2019003365.0, 2019004656.0, 2019004669.0, 2019004660.0, 2019004658.0, 2019004672.0, 2019004691.0, 2019000293.0, 2019004695.0, 2019003910.0, 2019003911.0, 2019003921.0, 2019003932.0, 2019003803.0, 2019003806.0, 2019003801.0, 2019003814.0, 2019003836.0, 2019002060.0, 2019002075.0, 2019005823.0, 2019002089.0, 2019001646.0, 2019006191.0, 2019006189.0, 2019000003.0, 2019006192.0, 2019003499.0, 2019002130.0, 2019002136.0, 2019005218.0, 2019002142.0, 2019005225.0, 2019005222.0, 2019005226.0, 2019005231.0, 2019002171.0, 2019004963.0, 2019003630.0, 2019004290.0, 2019004281.0, 2019004301.0, 2019004319.0, 2019003650.0, 2019004305.0, 2019003648.0, 2019003658.0, 2019004314.0, 2019004312.0, 2019004315.0, 2019004291.0, 2019004303.0, 2019006699.0, 2019006689.0, 2019004555.0, 2019000247.0, 2019004559.0, 2019004580.0, 2019004583.0, 2019004579.0, 2019004574.0, 2019000254.0, 2019000255.0, 2019000090.0, 2019006275.0, 2019006669.0, 2019003598.0, 2019003730.0, 2019003619.0, 2019003617.0, 2019006734.0, 2019003723.0, 2019003713.0, 2019003733.0, 2019003618.0, 2019006291.0, 2019003616.0, 2019003620.0, 2019000023.0, 2019000024.0, 2019000019.0, 2019000021.0, 2019006077.0, 2019006110.0, 2019006115.0, 2019006102.0, 2019000030.0, 2019000041.0, 2019000025.0, 2019005030.0, 2019006127.0, 2019006130.0, 2019006124.0, 2019006140.0, 2019006764.0, 2019006796.0, 2019006780.0, 2019005947.0, 2019005250.0, 2019005943.0, 2019005263.0, 2019005270.0, 2019005272.0, 2019005970.0, 2019005959.0, 2019005812.0, 2019004892.0, 2019003831.0, 2019006752.0, 2019006755.0, 2019006754.0, 2019004601.0, 2019003082.0, 2019006342.0, 2019006353.0, 2019006336.0, 2019000314.0, 2019006344.0, 2019003077.0, 2019006333.0, 2019003104.0, 2019003102.0, 2019006332.0, 2019001320.0, 2019003113.0, 2019003091.0, 2019003094.0, 2019000452.0, 2019003103.0, 2019000322.0, 2019003116.0, 2019003119.0, 2019002588.0, 2019002590.0, 2019006436.0, 2019006446.0, 2019006425.0, 2019000459.0, 2019001318.0, 2019001325.0, 2019006376.0, 2019000326.0, 2019003125.0, 2019006375.0, 2019003143.0, 2019000329.0, 2019000330.0, 2019000467.0, 2019006399.0, 2019000339.0, 2019006406.0, 2019006411.0, 2019006409.0, 2019006412.0, 2019003164.0, 2019003220.0, 2019003205.0, 2019006479.0, 2019006491.0, 2019002599.0, 2019006506.0, 2019006513.0, 2019004989.0, 2019006694.0, 2019004311.0, 2019004333.0, 2019004336.0, 2019004341.0, 2019004327.0, 2019006691.0, 2019004349.0, 2019006697.0, 2019003683.0, 2019004334.0, 2019004343.0, 2019004354.0, 2019003685.0, 2019004854.0, 2019003777.0, 2019003931.0, 2019003929.0, 2019004802.0, 2019003947.0, 2019003968.0, 2019003951.0, 2019003944.0, 2019003962.0, 2019003959.0, 2019003759.0, 2019003754.0, 2019003974.0, 2019003958.0, 2019000038.0, 2019003696.0, 2019003699.0, 2019003694.0, 2019003711.0, 2019003704.0, 2019004385.0, 2019003706.0, 2019004367.0, 2019004379.0, 2019004382.0, 2019004387.0, 2019004819.0, 2019006785.0, 2019006800.0, 2019006797.0, 2019006799.0, 2019006803.0, 2019006822.0, 2019006239.0, 2019006633.0, 2019006230.0, 2019003571.0, 2019000145.0, 2019006642.0, 2019000135.0, 2019006229.0, 2019000143.0, 2019003586.0, 2019006246.0, 2019006262.0, 2019006268.0, 2019006647.0, 2019006248.0, 2019006663.0, 2019006264.0, 2019006677.0, 2019006648.0, 2019003583.0, 2019005784.0, 2019003352.0, 2019005793.0, 2019000234.0, 2019000224.0, 2019004454.0, 2019004473.0, 2019004471.0, 2019004478.0, 2019004485.0, 2019004967.0, 2019006004.0, 2019006048.0, 2019004979.0, 2019004981.0, 2019003821.0, 2019004927.0, 2019003852.0, 2019004935.0, 2019004508.0, 2019004515.0, 2019003858.0, 2019003864.0, 2019003876.0, 2019003890.0, 2019003889.0, 2021003917.0, 2021002540.0, 2021003873.0, 2021003878.0, 2021003872.0, 2021003879.0, 2021003008.0, 2021003874.0, 2021003014.0, 2021003880.0, 2021003886.0, 2021003633.0, 2021003003.0, 2021003867.0, 2021003869.0, 2021003020.0, 2021003891.0, 2021003914.0, 2021003647.0, 2021002852.0, 2021002626.0, 2021002635.0, 2021002656.0, 2021002873.0, 2021002869.0, 2021002664.0, 2021003779.0, 2021003025.0, 2021003944.0, 2021003661.0, 2021003663.0, 2021002082.0, 2021002104.0, 2021002092.0, 2021002119.0, 2021002225.0, 2021002220.0, 2021003126.0, 2021002497.0, 2021002234.0, 2021002531.0, 2021003147.0, 2021002362.0, 2021002125.0, 2021002358.0, 2021002365.0, 2021002239.0, 2021002246.0, 2021002249.0, 2021002243.0, 2021002546.0, 2021002959.0, 2021002954.0, 2021002955.0, 2021002961.0, 2021002964.0, 2021002968.0, 2021002586.0, 2021002829.0, 2021002834.0, 2021002843.0, 2021002844.0, 2021002595.0, 2021002598.0, 2021002853.0, 2021002594.0, 2021002858.0, 2021002863.0, 2021002608.0, 2021002605.0, 2021002602.0, 2021002603.0, 2021003704.0, 2021004011.0, 2021004012.0, 2021003082.0, 2021003726.0, 2021003707.0, 2021003730.0, 2021003709.0, 2021004022.0, 2021004025.0, 2021003718.0, 2021004028.0, 2021004033.0, 2021004040.0, 2021003745.0, 2021004057.0, 2021004090.0, 2021003815.0, 2021004080.0, 2021003800.0, 2021004098.0, 2021003812.0, 2021003817.0, 2021004102.0, 2021004100.0, 2021003826.0, 2021004111.0, 2021004110.0, 2021003827.0, 2021002538.0, 2021003180.0, 2021002544.0, 2021003387.0, 2021002566.0, 2021002532.0, 2021003403.0, 2021003200.0, 2021003204.0, 2021003206.0, 2021003217.0, 2021000706.0, 2021004222.0, 2021001152.0, 2021004174.0, 2021001171.0, 2021001179.0, 2021004549.0, 2021001884.0, 2021001879.0, 2021004176.0, 2021004178.0, 2021000529.0, 2021001890.0, 2021001873.0, 2021004179.0, 2021001888.0, 2021004181.0, 2021004303.0, 2021001883.0, 2021004567.0, 2021000535.0, 2021000543.0, 2021001893.0, 2021004313.0, 2021000557.0, 2021000523.0, 2021001426.0, 2021004209.0, 2021000563.0, 2021001900.0, 2021004327.0, 2021004207.0, 2021004326.0, 2021004572.0, 2021001432.0, 2021004217.0, 2021000556.0, 2021001203.0, 2021001425.0, 2021002575.0, 2021002583.0, 2021003945.0, 2021002203.0, 2021000172.0, 2021004792.0, 2021004793.0, 2021004791.0, 2021004794.0, 2021003586.0, 2021000162.0, 2021000165.0, 2021000159.0, 2021004811.0, 2021001661.0, 2021000181.0, 2021001907.0, 2021000199.0, 2021004790.0, 2021004759.0, 2021001952.0, 2021000265.0, 2021000273.0, 2021001724.0, 2021001730.0, 2021001954.0, 2021001736.0, 2021001721.0, 2021001732.0, 2021001738.0, 2021001752.0, 2021000468.0, 2021001967.0, 2021000464.0, 2021001971.0, 2021001542.0, 2021001987.0, 2021000655.0, 2021001819.0, 2021001837.0, 2021004491.0, 2021004493.0, 2021004234.0, 2021004660.0, 2021000978.0, 2021000514.0, 2021001829.0, 2021000985.0, 2021000999.0, 2021004244.0, 2021000983.0, 2021004239.0, 2021001836.0, 2021001005.0, 2021001006.0, 2021000987.0, 2021000997.0, 2021000976.0, 2021000775.0, 2021000804.0, 2021000797.0, 2021000801.0, 2021004238.0, 2021004499.0, 2021001145.0, 2021000789.0, 2021004514.0, 2021004260.0, 2021004517.0, 2021003028.0, 2021003024.0, 2021003744.0, 2021003746.0, 2021004048.0, 2021003970.0, 2021003027.0, 2021003965.0, 2021004047.0, 2021003657.0, 2021003033.0, 2021002697.0, 2021002703.0, 2021002890.0, 2021002706.0, 2021002696.0, 2021002744.0, 2021002906.0, 2021002356.0, 2021002141.0, 2021002386.0, 2021002394.0, 2021002159.0, 2021002397.0, 2021002379.0, 2021002388.0, 2021002147.0, 2021001431.0, 2021004317.0, 2021001237.0, 2021001450.0, 2021001229.0, 2021001242.0, 2021001435.0, 2021001429.0, 2021001236.0, 2021001465.0, 2021004592.0, 2021001214.0, 2021001456.0, 2021001240.0, 2021004591.0, 2021004596.0, 2021004594.0, 2021001253.0, 2021004595.0, 2021001224.0, 2021001492.0, 2021001499.0, 2021000582.0, 2021004609.0, 2021001487.0, 2021004371.0, 2021000593.0, 2021001498.0, 2021001263.0, 2021004375.0, 2021004373.0, 2021004379.0, 2021000595.0, 2021001267.0, 2021004383.0, 2021001296.0, 2021001292.0, 2021004624.0, 2021000617.0, 2021001298.0, 2021001036.0, 2021001305.0, 2021000606.0, 2021001300.0, 2021004631.0, 2021001054.0, 2021001524.0, 2021001532.0, 2021004389.0, 2021004387.0, 2021001534.0, 2021004397.0, 2021001083.0, 2021001100.0, 2021004403.0, 2021001335.0, 2021001032.0, 2021001081.0, 2021001339.0, 2021001344.0, 2021001104.0, 2021003792.0, 2021002083.0, 2021002210.0, 2021002200.0, 2021002485.0, 2021002525.0, 2021002500.0, 2021002353.0, 2021002101.0, 2021002221.0, 2021002511.0, 2021002102.0, 2021003029.0, 2021003972.0, 2021003659.0, 2021003052.0, 2021003061.0, 2021003694.0, 2021003075.0, 2021003685.0, 2021003076.0, 2021003978.0, 2021003057.0, 2021003692.0, 2021003684.0, 2021003500.0, 2021004686.0, 2021000307.0, 2021004668.0, 2021000333.0, 2021000338.0, 2021000074.0, 2021000314.0, 2021003503.0, 2021000072.0, 2021000085.0, 2021004703.0, 2021003511.0, 2021000319.0, 2021003529.0, 2021000079.0, 2021003538.0, 2021003528.0, 2021000086.0, 2021000087.0, 2021000372.0, 2021002742.0, 2021002750.0, 2021002758.0, 2021002773.0, 2021002797.0, 2021002905.0, 2021002792.0, 2021002801.0, 2021002808.0, 2021002949.0, 2021003313.0, 2021003321.0, 2021003470.0, 2021001979.0, 2021001983.0, 2021001986.0, 2021001978.0, 2021001988.0, 2021001552.0, 2021002003.0, 2021001551.0, 2021000634.0, 2021000638.0, 2021000641.0, 2021001786.0, 2021000643.0, 2021000487.0, 2021000629.0, 2021000491.0, 2021000632.0, 2021000488.0, 2021002019.0, 2021000649.0, 2021003330.0, 2021003352.0, 2021000296.0, 2021003478.0, 2021003479.0, 2021000064.0, 2021000054.0, 2021000063.0, 2021003362.0, 2021004673.0, 2021003359.0, 2021003360.0, 2021004676.0, 2021003356.0, 2021003371.0, 2021003376.0, 2021004681.0, 2021003377.0, 2021000334.0, 2021002403.0, 2021002167.0, 2021002412.0, 2021002406.0, 2021002404.0, 2021000236.0, 2021000222.0, 2021001692.0, 2021000243.0, 2021001936.0, 2021001691.0, 2021000421.0, 2021000422.0, 2021000414.0, 2021000428.0, 2021000418.0, 2021001707.0, 2021000277.0, 2021001955.0, 2021001909.0, 2021001911.0, 2021000206.0, 2021001680.0, 2021000020.0, 2021000030.0, 2021000225.0, 2021000409.0, 2021000226.0, 2021001940.0, 2021000025.0, 2021002422.0, 2021002462.0, 2021002474.0, 2021002482.0, 2021002483.0, 2021002199.0, 2021002198.0, 2021003123.0, 2021003541.0, 2021000916.0, 2021001802.0, 2021000693.0, 2021004223.0, 2021001803.0, 2021004641.0, 2021004654.0, 2021001809.0, 2021001800.0, 2021004642.0, 2021004231.0, 2021000736.0, 2021000754.0, 2021000745.0, 2021000749.0, 2021000932.0, 2021004233.0, 2021004652.0, 2021001820.0, 2021000945.0, 2021004483.0, 2021004485.0, 2021000972.0, 2021004666.0, 2021000969.0, 2021000973.0, 2021000366.0, 2021003546.0, 2021003554.0, 2021000371.0, 2021003556.0, 2021003563.0, 2021000389.0, 2021000393.0, 2021000388.0, 2021004741.0, 2021004753.0, 2021004750.0, 2021000125.0, 2021000826.0, 2021003851.0, 2021002319.0, 2021002317.0, 2021003841.0, 2021002320.0, 2021003847.0, 2021002074.0, 2021003852.0, 2021002065.0, 2021003855.0, 2021002070.0, 2021002073.0, 2021000825.0, 2021001147.0, 2021000814.0, 2021000816.0, 2021000850.0, 2021001394.0, 2021004137.0, 2021004533.0, 2021004144.0, 2021000835.0, 2021004524.0, 2021004526.0, 2021000860.0, 2021001408.0, 2021001166.0, 2021004175.0, 2021001400.0, 2021003208.0, 2021002269.0, 2021003417.0, 2021002270.0, 2021003201.0, 2021003229.0, 2021003209.0, 2021003213.0, 2021002259.0, 2021003225.0, 2021003408.0, 2021003242.0, 2021003410.0, 2021003253.0, 2021003269.0, 2021003272.0, 2021003439.0, 2021003444.0, 2021003442.0, 2021002286.0, 2021003281.0, 2021003428.0, 2021000599.0, 2021001274.0, 2021002981.0, 2021003609.0, 2021003603.0, 2021003864.0, 2021000077.0, 2021001590.0, 2021000501.0, 2021000881.0, 2021000884.0, 2021000889.0, 2021001562.0, 2021001595.0, 2021000879.0, 2021000887.0, 2021001612.0, 2021000883.0, 2021001594.0, 2021000511.0, 2021003274.0, 2021003270.0, 2021003276.0, 2021003282.0, 2021002294.0, 2021002293.0, 2021003297.0, 2021003307.0, 2021003311.0, 2021003316.0, 2021003314.0, 2021002305.0, 2021003308.0, 2021002297.0, 2021003467.0, 2021001356.0, 2021001347.0, 2021001314.0, 2021001326.0, 2021001334.0, 2021001114.0, 2021001101.0, 2021004441.0, 2021004445.0, 2021001131.0, 2021004430.0, 2021001379.0, 2021004460.0, 2021001132.0, 2021001117.0, 2021004436.0, 2021004462.0, 2021001128.0, 2021004479.0, 2021004465.0, 2021000128.0, 2021003096.0, 2021003097.0, 2021000130.0, 2021004747.0, 2021000138.0, 2021003114.0, 2021000402.0, 2021004781.0, 2021000139.0, 2021003115.0, 2021003580.0, 2021004776.0, 2021000401.0, 2021004785.0, 2021000399.0, 2021000133.0, 2021004772.0, 2022001047.0, 2022001062.0, 2022001071.0, 2022001073.0, 2022001075.0, 2022001084.0, 2022001087.0, 2022001090.0, 2022001110.0, 2022001120.0, 2022001123.0, 2022001125.0, 2022001151.0, 2022001169.0, 2022001173.0, 2022001176.0, 2022001177.0, 2022001199.0, 2022001215.0, 2022001217.0, 2022001223.0, 2022001228.0, 2022001249.0, 2022001255.0, 2022001261.0, 2022001267.0, 2022001277.0, 2022001287.0, 2022001300.0, 2022001301.0, 2022001310.0, 2022001317.0, 2022001322.0, 2022001336.0, 2022001346.0, 2022001347.0, 2022001350.0, 2022001358.0, 2022001370.0, 2022001375.0, 2022001376.0, 2022001381.0, 2022001402.0, 2022001409.0, 2022001410.0, 2022001415.0, 2022001419.0, 2022001429.0, 2022001434.0, 2022001436.0, 2022001449.0, 2022001458.0, 2022001460.0, 2022001486.0, 2022001491.0, 2022001499.0, 2022001528.0, 2022001529.0, 2022001549.0, 2022001552.0, 2022001558.0, 2022000002.0, 2022000005.0, 2022000006.0, 2022000010.0, 2022000014.0, 2022000022.0, 2022000030.0, 2022000042.0, 2022000050.0, 2022000059.0, 2022000061.0, 2022000064.0, 2022000077.0, 2022000090.0, 2022000107.0, 2022000110.0, 2022000116.0, 2022000119.0, 2022000123.0, 2022000126.0, 2022000144.0, 2022000147.0, 2022000148.0, 2022000179.0, 2022000181.0, 2022000183.0, 2022000184.0, 2022000190.0, 2022000207.0, 2022000218.0, 2022000243.0, 2022000245.0, 2022000247.0, 2022000251.0, 2022000254.0, 2022002609.0, 2022002633.0, 2022002637.0, 2022002651.0, 2022002676.0, 2022002688.0, 2022002690.0, 2022002693.0, 2022002698.0, 2022002700.0, 2022002701.0, 2022002706.0, 2022002707.0, 2022002709.0, 2022002711.0, 2022002713.0, 2022002714.0, 2022002717.0, 2022002722.0, 2022002727.0, 2022002732.0, 2022002757.0, 2022002777.0, 2022002778.0, 2022002787.0, 2022002790.0, 2022002792.0, 2022002797.0, 2022002812.0, 2022002813.0, 2022002814.0, 2022002817.0, 2022002824.0, 2022002827.0, 2022002828.0, 2022002829.0, 2022002830.0, 2022002848.0, 2022002854.0, 2022002865.0, 2022003150.0, 2022003158.0, 2022003164.0, 2022003170.0, 2022003171.0, 2022003172.0, 2022003174.0, 2022003226.0, 2022003228.0, 2022003236.0, 2022003247.0, 2022003260.0, 2022003261.0, 2022003274.0, 2022003275.0, 2022003278.0, 2022003279.0, 2022003295.0, 2022003300.0, 2022003306.0, 2022003315.0, 2022003324.0, 2022003340.0, 2022003343.0, 2022003353.0, 2022003357.0, 2022003368.0, 2022003373.0, 2022003375.0, 2022003388.0, 2022003390.0, 2022003392.0, 2022003394.0, 2022003396.0, 2022003414.0, 2022003417.0, 2022003423.0, 2022003427.0, 2022003430.0, 2022003433.0, 2022003434.0, 2022003441.0, 2022003446.0, 2022003473.0, 2022003476.0, 2022003500.0, 2022003502.0, 2022003515.0, 2022003524.0, 2022003525.0, 2022003532.0, 2022003536.0, 2022003539.0, 2022003554.0, 2022003555.0, 2022003557.0, 2022003562.0, 2022003563.0, 2022003564.0, 2022003566.0, 2022003573.0, 2022003579.0, 2022003600.0, 2022003614.0, 2022003615.0, 2022003619.0, 2022003627.0, 2022003630.0, 2022000530.0, 2022000534.0, 2022000538.0, 2022000543.0, 2022000552.0, 2022000556.0, 2022000563.0, 2022000567.0, 2022000579.0, 2022000596.0, 2022000606.0, 2022000624.0, 2022000633.0, 2022000645.0, 2022000647.0, 2022000648.0, 2022000653.0, 2022000659.0, 2022000662.0, 2022000668.0, 2022000677.0, 2022000687.0, 2022000695.0, 2022000701.0, 2022000718.0, 2022000719.0, 2022000720.0, 2022000735.0, 2022000757.0, 2022000758.0, 2022000787.0, 2022000792.0, 2022000801.0, 2022000815.0, 2022000816.0, 2022000823.0, 2022000827.0, 2022000841.0, 2022000843.0, 2022000844.0, 2022000867.0, 2022000873.0, 2022000874.0, 2022000887.0, 2022000904.0, 2022000916.0, 2022000918.0, 2022000919.0, 2022000941.0, 2022000944.0, 2022000950.0, 2022000951.0, 2022000972.0, 2022000984.0, 2022000986.0, 2022000995.0, 2022001004.0, 2022001009.0, 2022001011.0, 2022001013.0, 2022001021.0, 2022001599.0, 2022001601.0, 2022001615.0, 2022001616.0, 2022001652.0, 2022001663.0, 2022001669.0, 2022001678.0, 2022001681.0, 2022001682.0, 2022001683.0, 2022001684.0, 2022001685.0, 2022001692.0, 2022001700.0, 2022001708.0, 2022001711.0, 2022001719.0, 2022001720.0, 2022001723.0, 2022001724.0, 2022001728.0, 2022001734.0, 2022001745.0, 2022001750.0, 2022001759.0, 2022001765.0, 2022001767.0, 2022001773.0, 2022001774.0, 2022001777.0, 2022001779.0, 2022001782.0, 2022001784.0, 2022001788.0, 2022001798.0, 2022001800.0, 2022001807.0, 2022001828.0, 2022001831.0, 2022001840.0, 2022001856.0, 2022001898.0, 2022001901.0, 2022001910.0, 2022001911.0, 2022001917.0, 2022001922.0, 2022001927.0, 2022001934.0, 2022001937.0, 2022001943.0, 2022001944.0, 2022001953.0, 2022001969.0, 2022001972.0, 2022001976.0, 2022001982.0, 2022001988.0, 2022001998.0, 2022002009.0, 2022002027.0, 2022002050.0, 2022002078.0, 2022002098.0, 2022002118.0, 2022002127.0, 2022002130.0, 2022002136.0, 2022002140.0, 2022002156.0, 2022002166.0, 2022002174.0, 2022002182.0, 2022002184.0, 2022002197.0, 2022002211.0, 2022002221.0, 2022002222.0, 2022002225.0, 2022002237.0, 2022002256.0, 2022002257.0, 2022002261.0, 2022002276.0, 2022002303.0, 2022002310.0, 2022002318.0, 2022002319.0, 2022002320.0, 2022002327.0, 2022002336.0, 2022002344.0, 2022002346.0, 2022002356.0, 2022002358.0, 2022002363.0, 2022002364.0, 2022002380.0, 2022002384.0, 2022002429.0, 2022002431.0, 2022002435.0, 2022002436.0, 2022002437.0, 2022002441.0, 2022002443.0, 2022002445.0, 2022002451.0, 2022002452.0, 2022002456.0, 2022002460.0, 2022002463.0, 2022002466.0, 2022002480.0, 2022002481.0, 2022002492.0, 2022002494.0, 2022002502.0, 2022002505.0, 2022002509.0, 2022002522.0, 2022002525.0, 2022002530.0, 2022002531.0, 2022002535.0, 2022002539.0, 2022002556.0, 2022002571.0, 2022002582.0, 2022002590.0, 2022002601.0, 2022002602.0, 2022003660.0, 2022003669.0, 2022003684.0, 2022003708.0, 2022003720.0, 2022003727.0, 2022003747.0, 2022003759.0, 2022003808.0, 2022003813.0, 2022003816.0, 2022003817.0, 2022003841.0, 2022003844.0, 2022003846.0, 2022003847.0, 2022003852.0, 2022003853.0, 2022003859.0, 2022003862.0, 2022003872.0, 2022003881.0, 2022003887.0, 2022003890.0, 2022003892.0, 2022003902.0, 2022003904.0, 2022003912.0, 2022003913.0, 2022003916.0, 2022003921.0, 2022003932.0, 2022003935.0, 2022003937.0, 2022003938.0, 2022003940.0, 2022003945.0, 2022003951.0, 2022003955.0, 2022003957.0, 2022003961.0, 2022003967.0, 2022003974.0, 2022003976.0, 2022003978.0, 2022003981.0, 2022003984.0, 2022003998.0, 2022004015.0, 2022004043.0, 2022004048.0, 2022004057.0, 2022004075.0, 2022004078.0, 2022004082.0, 2022004096.0, 2022004102.0, 2022004111.0, 2022004126.0, 2022004130.0, 2022004135.0, 2022004152.0, 2022000262.0, 2022000268.0, 2022000269.0, 2022000275.0, 2022000281.0, 2022000284.0, 2022000289.0, 2022000294.0, 2022000306.0, 2022000332.0, 2022000339.0, 2022000344.0, 2022000346.0, 2022000357.0, 2022000363.0, 2022000367.0, 2022000377.0, 2022000379.0, 2022000389.0, 2022000399.0, 2022000425.0, 2022000435.0, 2022000439.0, 2022000444.0, 2022000461.0, 2022000474.0, 2022000484.0, 2022000485.0, 2022000491.0, 2022000509.0, 2022000514.0, 2022000516.0, 2022000517.0, 2022002869.0, 2022002872.0, 2022002878.0, 2022002883.0, 2022002892.0, 2022002897.0, 2022002907.0, 2022002908.0, 2022002922.0, 2022002924.0, 2022002925.0, 2022002931.0, 2022002937.0, 2022002943.0, 2022002967.0, 2022002974.0, 2022002987.0, 2022003004.0, 2022003017.0, 2022003018.0, 2022003041.0, 2022003042.0, 2022003047.0, 2022003049.0, 2022003056.0, 2022003058.0, 2022003065.0, 2022003067.0, 2022003075.0, 2022003078.0, 2022003098.0, 2022003104.0, 2022003106.0, 2022003110.0, 2022003114.0, 2022003116.0, 2022003120.0, 2022003123.0, 2022004210.0, 2022004212.0, 2022004216.0, 2022004222.0, 2022004223.0, 2022004233.0, 2022004240.0, 2022004255.0, 2022004259.0, 2022004276.0, 2022004286.0, 2022004305.0, 2022004306.0, 2022004329.0, 2022004344.0, 2022004359.0])\n" + ] + } + ], + "source": [ + "# print the 6th key, value in the matches_hh_level dictionary\n", + "print(list(matches_hh_level.items())[90])\n", + "\n", + "# convert to pandas df\n", + "matches_hh_level_90 = pd.DataFrame.from_dict(matches_hh_level ,orient='index')\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ @@ -2370,12 +2521,32 @@ "original list of values.\n", "\n", "'''\n", - "matches_hh_level_sample = {key: np.random.choice(value) for key, value in matches_hh_level.items()}\n" + "matches_hh_level_sample = {key: np.random.choice(value) for key, value in matches_hh_level.items()}\n", + "\n", + "# remove items in list where value is nan\n", + "matches_hh_level_sample = {key: value for key, value in matches_hh_level_sample.items() if not pd.isna(value)}\n" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('E02002183_0570', 2019001117.0)\n" + ] + } + ], + "source": [ + "print(list(matches_hh_level_sample.items())[568])" ] }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ @@ -2398,7 +2569,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 39, "metadata": {}, "outputs": [ { @@ -2432,7 +2603,176 @@ "5 rows × 190 columns
\n", - "" - ], - "text/plain": [ - " IndividualID HouseholdID PSUID VehicleID PersNo \\\n", - "340872 2019005376 2019002277 2019000253 NaN 4 \n", - "340873 2019005377 2019002278 2019000253 2.019003e+09 1 \n", - "340874 2019005378 2019002278 2019000253 2.019003e+09 2 \n", - "340875 2019005379 2019002279 2019000253 NaN 1 \n", - "340876 2019005380 2019002280 2019000253 2.019003e+09 1 \n", - "\n", - " Interview_B01ID Age_B01ID Age_B04ID Sex_B01ID OfPenAge_B01ID ... \\\n", - "340872 2 4 2 1 2 ... \n", - "340873 1 12 5 2 2 ... \n", - "340874 2 13 6 1 2 ... \n", - "340875 1 20 9 2 1 ... \n", - "340876 1 13 6 1 2 ... \n", - "\n", - " Lonely_B01ID OCSect_B01ID OcPbSect_B01ID OwnCycleN_B01ID \\\n", - "340872 -9 -9 -9 3 \n", - "340873 4 1 -9 1 \n", - "340874 -9 1 -9 1 \n", - "340875 4 1 -9 3 \n", - "340876 5 1 -9 1 \n", - "\n", - " InterviewN_B01ID EScooter_B01ID EScooterFreq_B01ID ES2020_B01ID \\\n", - "340872 -10 -10 -10 -10 \n", - "340873 -10 -10 -10 -10 \n", - "340874 -10 -10 -10 -10 \n", - "340875 -10 -10 -10 -10 \n", - "340876 -10 -10 -10 -10 \n", - "\n", - " TravDiffSum_B01ID SurveyYear \n", - "340872 -10 2019 \n", - "340873 -10 2019 \n", - "340874 -10 2019 \n", - "340875 -10 2019 \n", - "340876 -10 2019 \n", - "\n", - "[5 rows x 190 columns]" - ] - }, - "execution_count": 87, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "nts_individuals_filtered.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 154, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " | IndividualID | \n", - "HouseholdID | \n", - "PSUID | \n", - "VehicleID | \n", - "PersNo | \n", - "Interview_B01ID | \n", - "Age_B01ID | \n", - "Age_B04ID | \n", - "Sex_B01ID | \n", - "OfPenAge_B01ID | \n", - "... | \n", - "Lonely_B01ID | \n", - "OCSect_B01ID | \n", - "OcPbSect_B01ID | \n", - "OwnCycleN_B01ID | \n", - "InterviewN_B01ID | \n", - "EScooter_B01ID | \n", - "EScooterFreq_B01ID | \n", - "ES2020_B01ID | \n", - "TravDiffSum_B01ID | \n", - "SurveyYear | \n", - "|||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
375729 | \n", - "2022005241 | \n", - "2022002330 | \n", - "2022000402 | \n", - "2.022003e+09 | \n", + "340873 | \n", + "2019005377 | \n", + "2019002278 | \n", + "2019000253 | \n", + "2.019003e+09 | \n", "1 | \n", - "-10 | \n", - "14 | \n", - "7 | \n", "1 | \n", + "12 | \n", + "5 | \n", "2 | \n", - "... | \n", - "-9 | \n", + "2 | \n", + "99 | \n", + "3 | \n", + "2 | \n", + "1 | \n", "1 | \n", "-9 | \n", + "-9 | \n", + "-10 | \n", + "NaN | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", + "NaN | \n", + "-10 | \n", + "NaN | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", "1 | \n", + "-10 | \n", + "3.0 | \n", + "3 | \n", + "-10 | \n", "1 | \n", + "7 | \n", "2 | \n", + "1 | \n", + "-9 | \n", + "-9 | \n", + "-9 | \n", "-9 | \n", - "6 | \n", "-10 | \n", - "2022 | \n", - "
375730 | \n", - "2022005242 | \n", - "2022002330 | \n", - "2022000402 | \n", - "2.022003e+09 | \n", "2 | \n", + "3 | \n", "-10 | \n", - "14 | \n", - "7 | \n", + "-10 | \n", + "-10 | \n", + "-9 | \n", + "NaN | \n", + "-9 | \n", "2 | \n", + "8.0 | \n", + "1 | \n", + "1 | \n", + "-10 | \n", + "7 | \n", + "1 | \n", + "1 | \n", + "1 | \n", "2 | \n", - "... | \n", - "5 | \n", "1 | \n", + "6 | \n", + "-9 | \n", "-9 | \n", + "-10 | \n", + "-10 | \n", + "2 | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", "1 | \n", "1 | \n", - "2 | \n", + "1 | \n", + "-10 | \n", + "-10 | \n", "-9 | \n", - "6 | \n", "-10 | \n", - "2022 | \n", - "||||||||||||
375731 | \n", - "2022005243 | \n", - "2022002330 | \n", - "2022000402 | \n", + "-10 | \n", + "-9 | \n", + "-9 | \n", + "-9 | \n", + "-9 | \n", "NaN | \n", - "3 | \n", "-10 | \n", - "4 | \n", - "2 | \n", - "2 | \n", + "-10 | \n", "2 | \n", - "... | \n", "-9 | \n", "-9 | \n", "-9 | \n", - "1 | \n", + "-9 | \n", + "-10 | \n", + "-10 | \n", + "3 | \n", + "-9 | \n", + "-10 | \n", + "-9 | \n", + "7 | \n", + "3 | \n", + "-9 | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", + "-10 | \n", "1 | \n", "-9 | \n", "-9 | \n", "-9 | \n", + "1 | \n", "-10 | \n", - "2022 | \n", - "
3 rows × 190 columns
\n", - "\n", - " | hid | \n", - "salary_yearly_hh_cat | \n", - "num_adults | \n", - "num_children | \n", - "pwkstat_NTS_match | \n", - "num_cars | \n", - "tenure_spc_for_matching | \n", - "HouseholdID | \n", - "HHIncome2002_B02ID | \n", - "HHoldNumAdults | \n", - "HHoldNumChildren | \n", - "HHoldEmploy_B01ID | \n", - "NumCar_SPC_match | \n", - "tenure_nts_for_matching | \n", - "count | \n", - "|||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
13198 | \n", - "E02002183_0011 | \n", - "3 | \n", - "2 | \n", + "13 | \n", + "13 | \n", + "7 | \n", + "11281.0 | \n", + "{'x': -1.869668960571289, 'y': 53.939510345458... | \n", + "{'concert_f': 0.08687702566385269, 'concert_fs... | \n", + "[251, 267, 531, 1441, 1949, 2149, 2372, 2544, ... | \n", + "[250, 266, 532, 1440, 1948, 2148, 2373, 2545, ... | \n", + "E02002183_0008_001 | \n", + "12290913 | \n", "1 | \n", - "5 | \n", - "2 | \n", + "2901157 | \n", + "E02002183 | \n", + "E00053694 | \n", + "[13] | \n", + "22.093483 | \n", + "False | \n", + "False | \n", + "False | \n", "1.0 | \n", - "2.019004e+09 | \n", - "2.0 | \n", - "2.0 | \n", "1.0 | \n", - "6.0 | \n", - "2.0 | \n", + "3.0 | \n", + "M | \n", + "70.0 | \n", + "2424.0 | \n", + "1 | \n", + "35108.648438 | \n", + "16.075390 | \n", + "E02002183_0008 | \n", + "1.0 | \n", + "NaN | \n", + "3.0 | \n", + "True | \n", + "1.0 | \n", + "2 | \n", + "1 | \n", + "37 | \n", + "1 | \n", "2.0 | \n", - "365 | \n", + "35108.648438 | \n", + "2 | \n", + "1 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "3 | \n", + "1.0 | \n", + "6 | \n", + "366407.0 | \n", "
13199 | \n", - "E02002183_0011 | \n", - "3 | \n", - "2 | \n", - "1 | \n", - "5 | \n", + "14 | \n", + "14 | \n", + "8 | \n", + "NaN | \n", + "{'x': -1.869668960571289, 'y': 53.939510345458... | \n", + "{'concert_f': 2.3012289602775127e-06, 'concert... | \n", + "[610, 914, 1225, 2161, 2658, 2688, 2780, 3105,... | \n", + "[609, 913, 1224, 2162, 2659, 2689, 2781, 3104,... | \n", + "E02002183_0009_001 | \n", + "25051011 | \n", "2 | \n", + "2908098 | \n", + "E02002183 | \n", + "E00053694 | \n", + "[14, 15] | \n", + "31.619448 | \n", + "False | \n", + "False | \n", + "False | \n", + "NaN | \n", "1.0 | \n", - "2.019002e+09 | \n", + "NaN | \n", + "I | \n", + "56.0 | \n", + "1223.0 | \n", + "4 | \n", + "NaN | \n", + "NaN | \n", + "E02002183_0009 | \n", "3.0 | \n", - "2.0 | \n", - "1.0 | \n", - "5.0 | \n", - "2.0 | \n", + "NaN | \n", + "6.0 | \n", + "True | \n", "1.0 | \n", - "365 | \n", - "|||||||||||||||||
13200 | \n", - "E02002183_0011 | \n", - "3 | \n", "2 | \n", "1 | \n", - "5 | \n", - "2 | \n", - "1.0 | \n", - "2.019004e+09 | \n", - "2.0 | \n", - "2.0 | \n", - "1.0 | \n", + "51 | \n", + "1 | \n", "5.0 | \n", - "2.0 | \n", + "23779.697266 | \n", + "1 | \n", + "1 | \n", + "2 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "3 | \n", "1.0 | \n", - "365 | \n", + "8 | \n", + "372513.0 | \n", "||||||||||||||||||||||||||||||||||
13201 | \n", - "E02002183_0011 | \n", - "3 | \n", - "2 | \n", + "15 | \n", + "15 | \n", + "8 | \n", + "180.0 | \n", + "{'x': -1.869668960571289, 'y': 53.939510345458... | \n", + "{'concert_f': 0.5046632885932922, 'concert_fs'... | \n", + "[1177, 1775, 1790, 3187, 3809, 3839, 5476, 566... | \n", + "[1176, 1776, 1789, 3186, 3810, 3840, 5477, 566... | \n", + "E02002183_0009_002 | \n", + "44051008 | \n", "1 | \n", - "5 | \n", - "2 | \n", + "2906152 | \n", + "E02002183 | \n", + "E00053694 | \n", + "[14, 15] | \n", + "23.008680 | \n", + "False | \n", + "False | \n", + "False | \n", + "0.0 | \n", "1.0 | \n", - "2.019001e+09 | \n", "3.0 | \n", - "2.0 | \n", - "1.0 | \n", + "M | \n", + "69.0 | \n", + "7219.0 | \n", + "1 | \n", + "23779.697266 | \n", + "11.432547 | \n", + "E02002183_0009 | \n", + "3.0 | \n", + "NaN | \n", "6.0 | \n", - "2.0 | \n", + "True | \n", "1.0 | \n", - "365 | \n", - "||||||||||||||||||
13202 | \n", - "E02002183_0011 | \n", - "3 | \n", "2 | \n", + "2 | \n", + "35 | \n", + "1 | \n", + "4.0 | \n", + "23779.697266 | \n", + "1 | \n", "1 | \n", - "5 | \n", "2 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "3 | \n", "1.0 | \n", - "2.019003e+09 | \n", - "3.0 | \n", + "6 | \n", + "372512.0 | \n", + "||||||||||||||||||||||||||||||||||||||||
16 | \n", + "16 | \n", + "9 | \n", + "314.0 | \n", + "{'x': -1.8293219804763794, 'y': 53.92086029052... | \n", + "{'concert_f': 1.927395824321762e-13, 'concert_... | \n", + "[1003] | \n", + "[1002] | \n", + "E02002183_0010_001 | \n", + "11171114 | \n", + "1 | \n", + "2902611 | \n", + "E02002183 | \n", + "E00053937 | \n", + "[16, 17, 18] | \n", + "29.921522 | \n", + "False | \n", + "True | \n", + "False | \n", + "NaN | \n", "2.0 | \n", "1.0 | \n", + "C | \n", + "25.0 | \n", + "1121.0 | \n", + "2 | \n", + "3198.155518 | \n", + "12.300598 | \n", + "E02002183_0010 | \n", + "1.0 | \n", + "NaN | \n", "6.0 | \n", + "True | \n", "2.0 | \n", + "2 | \n", + "1 | \n", + "64 | \n", + "1 | \n", "1.0 | \n", - "365 | \n", - "|||||||||||||||||||||||
... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "|||||||||||||||||||||||||||||||||||||||||||||||
13558 | \n", - "E02002183_0011 | \n", - "3 | \n", + "3198.155518 | \n", + "1 | \n", + "1 | \n", "2 | \n", + "0 | \n", + "1 | \n", + "0 | \n", "1 | \n", - "5 | \n", "2 | \n", "1.0 | \n", - "2.022004e+09 | \n", - "2.0 | \n", - "2.0 | \n", - "1.0 | \n", - "5.0 | \n", - "2.0 | \n", - "1.0 | \n", - "365 | \n", + "9 | \n", + "374570.0 | \n", "|||||||||||||||||||||||||||||||||||||||
13559 | \n", - "E02002183_0011 | \n", - "3 | \n", - "2 | \n", + "17 | \n", + "17 | \n", + "9 | \n", + "NaN | \n", + "{'x': -1.8293219804763794, 'y': 53.92086029052... | \n", + "{'concert_f': 3.370700940585891e-11, 'concert_... | \n", + "[370, 704, 1771, 1817, 1866, 2240, 2268, 2412,... | \n", + "[369, 703, 1772, 1816, 1867, 2241, 2269, 2413,... | \n", + "E02002183_0010_002 | \n", + "18070401 | \n", "1 | \n", - "5 | \n", - "2 | \n", - "1.0 | \n", - "2.022004e+09 | \n", - "3.0 | \n", + "2908273 | \n", + "E02002183 | \n", + "E00053937 | \n", + "[16, 17, 18] | \n", + "35.659599 | \n", + "False | \n", + "False | \n", + "False | \n", + "NaN | \n", "2.0 | \n", + "4.0 | \n", + "P | \n", + "85.0 | \n", + "2315.0 | \n", + "6 | \n", + "NaN | \n", + "NaN | \n", + "E02002183_0010 | \n", "1.0 | \n", - "3.0 | \n", + "NaN | \n", + "6.0 | \n", + "True | \n", "2.0 | \n", + "2 | \n", + "2 | \n", + "61 | \n", + "1 | \n", + "3.0 | \n", + "3198.155518 | \n", + "1 | \n", + "1 | \n", + "2 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "2 | \n", "1.0 | \n", - "365 | \n", + "9 | \n", + "374571.0 | \n", "|
13560 | \n", - "E02002183_0011 | \n", + "18 | \n", + "18 | \n", + "9 | \n", + "NaN | \n", + "{'x': -1.8293219804763794, 'y': 53.92086029052... | \n", + "{'concert_f': 0.041806384921073914, 'concert_f... | \n", + "[33, 74, 213, 264, 291, 533, 548, 549, 561, 56... | \n", + "[32, 75, 212, 265, 290, 534, 547, 550, 562, 56... | \n", + "E02002183_0010_003 | \n", + "30051010 | \n", "3 | \n", - "2 | \n", - "1 | \n", - "5 | \n", - "2 | \n", + "2908431 | \n", + "E02002183 | \n", + "E00053937 | \n", + "[16, 17, 18] | \n", + "NaN | \n", + "False | \n", + "False | \n", + "False | \n", + "NaN | \n", "1.0 | \n", - "2.022004e+09 | \n", - "3.0 | \n", - "2.0 | \n", + "NaN | \n", + "None | \n", + "NaN | \n", + "NaN | \n", + "0 | \n", + "NaN | \n", + "NaN | \n", + "E02002183_0010 | \n", "1.0 | \n", + "NaN | \n", "6.0 | \n", + "True | \n", "2.0 | \n", + "2 | \n", + "1 | \n", + "9 | \n", + "1 | \n", + "NaN | \n", + "3198.155518 | \n", + "1 | \n", + "0 | \n", + "2 | \n", + "1 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "2 | \n", "1.0 | \n", - "365 | \n", + "2 | \n", + "374572.0 | \n", "||
13561 | \n", - "E02002183_0011 | \n", + "19 | \n", + "19 | \n", + "10 | \n", + "44602.0 | \n", + "{'x': -1.8749940395355225, 'y': 53.94298934936... | \n", + "{'concert_f': 0.5046632885932922, 'concert_fs'... | \n", + "[950, 2601, 4804, 5782, 9408, 12122, 12195, 12... | \n", + "[951, 2600, 4805, 5783, 9407, 12123, 12194, 12... | \n", + "E02002183_0011_001 | \n", + "11160316 | \n", "3 | \n", - "2 | \n", - "1 | \n", - "5 | \n", - "2 | \n", + "2911833 | \n", + "E02002183 | \n", + "E00053689 | \n", + "[19, 20, 21] | \n", + "28.837261 | \n", + "False | \n", + "False | \n", + "False | \n", + "NaN | \n", "1.0 | \n", - "2.022004e+09 | \n", "2.0 | \n", + "Q | \n", + "88.0 | \n", + "2424.0 | \n", + "2 | \n", + "24408.558594 | \n", + "18.053667 | \n", + "E02002183_0011 | \n", "2.0 | \n", - "1.0 | \n", + "NaN | \n", "6.0 | \n", - "2.0 | \n", + "True | \n", "1.0 | \n", - "365 | \n", - "|||||||||||||||||||
13562 | \n", - "E02002183_0011 | \n", + "2 | \n", + "2 | \n", + "35 | \n", + "1 | \n", + "2.0 | \n", + "53834.699219 | \n", "3 | \n", + "1 | \n", "2 | \n", + "0 | \n", + "1 | \n", + "1 | \n", "1 | \n", "5 | \n", - "2 | \n", - "1.0 | \n", - "2.022004e+09 | \n", - "2.0 | \n", - "2.0 | \n", "1.0 | \n", - "6.0 | \n", - "2.0 | \n", - "2.0 | \n", - "365 | \n", + "6 | \n", + "368594.0 | \n", "
365 rows × 15 columns
\n", "