diff --git a/materials/python/py_worksheet_inference2/data/pokemon.csv b/materials/python/py_worksheet_inference2/data/pokemon.csv new file mode 100644 index 0000000..4fda99f --- /dev/null +++ b/materials/python/py_worksheet_inference2/data/pokemon.csv @@ -0,0 +1,801 @@ +#,Name,Type 1,Type 2,Total,HP,Attack,Defense,Sp. Atk,Sp. Def,Speed,Generation,Legendary +1,Bulbasaur,Grass,Poison,318,45,49,49,65,65,45,1,False +2,Ivysaur,Grass,Poison,405,60,62,63,80,80,60,1,False +3,Venusaur,Grass,Poison,525,80,82,83,100,100,80,1,False +3,VenusaurMega Venusaur,Grass,Poison,625,80,100,123,122,120,80,1,False +4,Charmander,Fire,,309,39,52,43,60,50,65,1,False +5,Charmeleon,Fire,,405,58,64,58,80,65,80,1,False +6,Charizard,Fire,Flying,534,78,84,78,109,85,100,1,False +6,CharizardMega Charizard X,Fire,Dragon,634,78,130,111,130,85,100,1,False +6,CharizardMega Charizard Y,Fire,Flying,634,78,104,78,159,115,100,1,False +7,Squirtle,Water,,314,44,48,65,50,64,43,1,False +8,Wartortle,Water,,405,59,63,80,65,80,58,1,False +9,Blastoise,Water,,530,79,83,100,85,105,78,1,False +9,BlastoiseMega Blastoise,Water,,630,79,103,120,135,115,78,1,False +10,Caterpie,Bug,,195,45,30,35,20,20,45,1,False +11,Metapod,Bug,,205,50,20,55,25,25,30,1,False +12,Butterfree,Bug,Flying,395,60,45,50,90,80,70,1,False +13,Weedle,Bug,Poison,195,40,35,30,20,20,50,1,False +14,Kakuna,Bug,Poison,205,45,25,50,25,25,35,1,False +15,Beedrill,Bug,Poison,395,65,90,40,45,80,75,1,False +15,BeedrillMega Beedrill,Bug,Poison,495,65,150,40,15,80,145,1,False +16,Pidgey,Normal,Flying,251,40,45,40,35,35,56,1,False +17,Pidgeotto,Normal,Flying,349,63,60,55,50,50,71,1,False +18,Pidgeot,Normal,Flying,479,83,80,75,70,70,101,1,False +18,PidgeotMega Pidgeot,Normal,Flying,579,83,80,80,135,80,121,1,False +19,Rattata,Normal,,253,30,56,35,25,35,72,1,False +20,Raticate,Normal,,413,55,81,60,50,70,97,1,False +21,Spearow,Normal,Flying,262,40,60,30,31,31,70,1,False +22,Fearow,Normal,Flying,442,65,90,65,61,61,100,1,False +23,Ekans,Poison,,288,35,60,44,40,54,55,1,False +24,Arbok,Poison,,438,60,85,69,65,79,80,1,False +25,Pikachu,Electric,,320,35,55,40,50,50,90,1,False +26,Raichu,Electric,,485,60,90,55,90,80,110,1,False +27,Sandshrew,Ground,,300,50,75,85,20,30,40,1,False +28,Sandslash,Ground,,450,75,100,110,45,55,65,1,False +29,Nidoran♀,Poison,,275,55,47,52,40,40,41,1,False +30,Nidorina,Poison,,365,70,62,67,55,55,56,1,False +31,Nidoqueen,Poison,Ground,505,90,92,87,75,85,76,1,False +32,Nidoran♂,Poison,,273,46,57,40,40,40,50,1,False +33,Nidorino,Poison,,365,61,72,57,55,55,65,1,False +34,Nidoking,Poison,Ground,505,81,102,77,85,75,85,1,False +35,Clefairy,Fairy,,323,70,45,48,60,65,35,1,False +36,Clefable,Fairy,,483,95,70,73,95,90,60,1,False +37,Vulpix,Fire,,299,38,41,40,50,65,65,1,False +38,Ninetales,Fire,,505,73,76,75,81,100,100,1,False +39,Jigglypuff,Normal,Fairy,270,115,45,20,45,25,20,1,False +40,Wigglytuff,Normal,Fairy,435,140,70,45,85,50,45,1,False +41,Zubat,Poison,Flying,245,40,45,35,30,40,55,1,False +42,Golbat,Poison,Flying,455,75,80,70,65,75,90,1,False +43,Oddish,Grass,Poison,320,45,50,55,75,65,30,1,False +44,Gloom,Grass,Poison,395,60,65,70,85,75,40,1,False +45,Vileplume,Grass,Poison,490,75,80,85,110,90,50,1,False +46,Paras,Bug,Grass,285,35,70,55,45,55,25,1,False +47,Parasect,Bug,Grass,405,60,95,80,60,80,30,1,False +48,Venonat,Bug,Poison,305,60,55,50,40,55,45,1,False +49,Venomoth,Bug,Poison,450,70,65,60,90,75,90,1,False +50,Diglett,Ground,,265,10,55,25,35,45,95,1,False +51,Dugtrio,Ground,,405,35,80,50,50,70,120,1,False +52,Meowth,Normal,,290,40,45,35,40,40,90,1,False +53,Persian,Normal,,440,65,70,60,65,65,115,1,False +54,Psyduck,Water,,320,50,52,48,65,50,55,1,False +55,Golduck,Water,,500,80,82,78,95,80,85,1,False +56,Mankey,Fighting,,305,40,80,35,35,45,70,1,False +57,Primeape,Fighting,,455,65,105,60,60,70,95,1,False +58,Growlithe,Fire,,350,55,70,45,70,50,60,1,False +59,Arcanine,Fire,,555,90,110,80,100,80,95,1,False +60,Poliwag,Water,,300,40,50,40,40,40,90,1,False +61,Poliwhirl,Water,,385,65,65,65,50,50,90,1,False +62,Poliwrath,Water,Fighting,510,90,95,95,70,90,70,1,False +63,Abra,Psychic,,310,25,20,15,105,55,90,1,False +64,Kadabra,Psychic,,400,40,35,30,120,70,105,1,False +65,Alakazam,Psychic,,500,55,50,45,135,95,120,1,False +65,AlakazamMega Alakazam,Psychic,,590,55,50,65,175,95,150,1,False +66,Machop,Fighting,,305,70,80,50,35,35,35,1,False +67,Machoke,Fighting,,405,80,100,70,50,60,45,1,False +68,Machamp,Fighting,,505,90,130,80,65,85,55,1,False +69,Bellsprout,Grass,Poison,300,50,75,35,70,30,40,1,False +70,Weepinbell,Grass,Poison,390,65,90,50,85,45,55,1,False +71,Victreebel,Grass,Poison,490,80,105,65,100,70,70,1,False +72,Tentacool,Water,Poison,335,40,40,35,50,100,70,1,False +73,Tentacruel,Water,Poison,515,80,70,65,80,120,100,1,False +74,Geodude,Rock,Ground,300,40,80,100,30,30,20,1,False +75,Graveler,Rock,Ground,390,55,95,115,45,45,35,1,False +76,Golem,Rock,Ground,495,80,120,130,55,65,45,1,False +77,Ponyta,Fire,,410,50,85,55,65,65,90,1,False +78,Rapidash,Fire,,500,65,100,70,80,80,105,1,False +79,Slowpoke,Water,Psychic,315,90,65,65,40,40,15,1,False +80,Slowbro,Water,Psychic,490,95,75,110,100,80,30,1,False +80,SlowbroMega Slowbro,Water,Psychic,590,95,75,180,130,80,30,1,False +81,Magnemite,Electric,Steel,325,25,35,70,95,55,45,1,False +82,Magneton,Electric,Steel,465,50,60,95,120,70,70,1,False +83,Farfetch'd,Normal,Flying,352,52,65,55,58,62,60,1,False +84,Doduo,Normal,Flying,310,35,85,45,35,35,75,1,False +85,Dodrio,Normal,Flying,460,60,110,70,60,60,100,1,False +86,Seel,Water,,325,65,45,55,45,70,45,1,False +87,Dewgong,Water,Ice,475,90,70,80,70,95,70,1,False +88,Grimer,Poison,,325,80,80,50,40,50,25,1,False +89,Muk,Poison,,500,105,105,75,65,100,50,1,False +90,Shellder,Water,,305,30,65,100,45,25,40,1,False +91,Cloyster,Water,Ice,525,50,95,180,85,45,70,1,False +92,Gastly,Ghost,Poison,310,30,35,30,100,35,80,1,False +93,Haunter,Ghost,Poison,405,45,50,45,115,55,95,1,False +94,Gengar,Ghost,Poison,500,60,65,60,130,75,110,1,False +94,GengarMega Gengar,Ghost,Poison,600,60,65,80,170,95,130,1,False +95,Onix,Rock,Ground,385,35,45,160,30,45,70,1,False +96,Drowzee,Psychic,,328,60,48,45,43,90,42,1,False +97,Hypno,Psychic,,483,85,73,70,73,115,67,1,False +98,Krabby,Water,,325,30,105,90,25,25,50,1,False +99,Kingler,Water,,475,55,130,115,50,50,75,1,False +100,Voltorb,Electric,,330,40,30,50,55,55,100,1,False +101,Electrode,Electric,,480,60,50,70,80,80,140,1,False +102,Exeggcute,Grass,Psychic,325,60,40,80,60,45,40,1,False +103,Exeggutor,Grass,Psychic,520,95,95,85,125,65,55,1,False +104,Cubone,Ground,,320,50,50,95,40,50,35,1,False +105,Marowak,Ground,,425,60,80,110,50,80,45,1,False +106,Hitmonlee,Fighting,,455,50,120,53,35,110,87,1,False +107,Hitmonchan,Fighting,,455,50,105,79,35,110,76,1,False +108,Lickitung,Normal,,385,90,55,75,60,75,30,1,False +109,Koffing,Poison,,340,40,65,95,60,45,35,1,False +110,Weezing,Poison,,490,65,90,120,85,70,60,1,False +111,Rhyhorn,Ground,Rock,345,80,85,95,30,30,25,1,False +112,Rhydon,Ground,Rock,485,105,130,120,45,45,40,1,False +113,Chansey,Normal,,450,250,5,5,35,105,50,1,False +114,Tangela,Grass,,435,65,55,115,100,40,60,1,False +115,Kangaskhan,Normal,,490,105,95,80,40,80,90,1,False +115,KangaskhanMega Kangaskhan,Normal,,590,105,125,100,60,100,100,1,False +116,Horsea,Water,,295,30,40,70,70,25,60,1,False +117,Seadra,Water,,440,55,65,95,95,45,85,1,False +118,Goldeen,Water,,320,45,67,60,35,50,63,1,False +119,Seaking,Water,,450,80,92,65,65,80,68,1,False +120,Staryu,Water,,340,30,45,55,70,55,85,1,False +121,Starmie,Water,Psychic,520,60,75,85,100,85,115,1,False +122,Mr. Mime,Psychic,Fairy,460,40,45,65,100,120,90,1,False +123,Scyther,Bug,Flying,500,70,110,80,55,80,105,1,False +124,Jynx,Ice,Psychic,455,65,50,35,115,95,95,1,False +125,Electabuzz,Electric,,490,65,83,57,95,85,105,1,False +126,Magmar,Fire,,495,65,95,57,100,85,93,1,False +127,Pinsir,Bug,,500,65,125,100,55,70,85,1,False +127,PinsirMega Pinsir,Bug,Flying,600,65,155,120,65,90,105,1,False +128,Tauros,Normal,,490,75,100,95,40,70,110,1,False +129,Magikarp,Water,,200,20,10,55,15,20,80,1,False +130,Gyarados,Water,Flying,540,95,125,79,60,100,81,1,False +130,GyaradosMega Gyarados,Water,Dark,640,95,155,109,70,130,81,1,False +131,Lapras,Water,Ice,535,130,85,80,85,95,60,1,False +132,Ditto,Normal,,288,48,48,48,48,48,48,1,False +133,Eevee,Normal,,325,55,55,50,45,65,55,1,False +134,Vaporeon,Water,,525,130,65,60,110,95,65,1,False +135,Jolteon,Electric,,525,65,65,60,110,95,130,1,False +136,Flareon,Fire,,525,65,130,60,95,110,65,1,False +137,Porygon,Normal,,395,65,60,70,85,75,40,1,False +138,Omanyte,Rock,Water,355,35,40,100,90,55,35,1,False +139,Omastar,Rock,Water,495,70,60,125,115,70,55,1,False +140,Kabuto,Rock,Water,355,30,80,90,55,45,55,1,False +141,Kabutops,Rock,Water,495,60,115,105,65,70,80,1,False +142,Aerodactyl,Rock,Flying,515,80,105,65,60,75,130,1,False +142,AerodactylMega Aerodactyl,Rock,Flying,615,80,135,85,70,95,150,1,False +143,Snorlax,Normal,,540,160,110,65,65,110,30,1,False +144,Articuno,Ice,Flying,580,90,85,100,95,125,85,1,True +145,Zapdos,Electric,Flying,580,90,90,85,125,90,100,1,True +146,Moltres,Fire,Flying,580,90,100,90,125,85,90,1,True +147,Dratini,Dragon,,300,41,64,45,50,50,50,1,False +148,Dragonair,Dragon,,420,61,84,65,70,70,70,1,False +149,Dragonite,Dragon,Flying,600,91,134,95,100,100,80,1,False +150,Mewtwo,Psychic,,680,106,110,90,154,90,130,1,True +150,MewtwoMega Mewtwo X,Psychic,Fighting,780,106,190,100,154,100,130,1,True +150,MewtwoMega Mewtwo Y,Psychic,,780,106,150,70,194,120,140,1,True +151,Mew,Psychic,,600,100,100,100,100,100,100,1,False +152,Chikorita,Grass,,318,45,49,65,49,65,45,2,False +153,Bayleef,Grass,,405,60,62,80,63,80,60,2,False +154,Meganium,Grass,,525,80,82,100,83,100,80,2,False +155,Cyndaquil,Fire,,309,39,52,43,60,50,65,2,False +156,Quilava,Fire,,405,58,64,58,80,65,80,2,False +157,Typhlosion,Fire,,534,78,84,78,109,85,100,2,False +158,Totodile,Water,,314,50,65,64,44,48,43,2,False +159,Croconaw,Water,,405,65,80,80,59,63,58,2,False +160,Feraligatr,Water,,530,85,105,100,79,83,78,2,False +161,Sentret,Normal,,215,35,46,34,35,45,20,2,False +162,Furret,Normal,,415,85,76,64,45,55,90,2,False +163,Hoothoot,Normal,Flying,262,60,30,30,36,56,50,2,False +164,Noctowl,Normal,Flying,442,100,50,50,76,96,70,2,False +165,Ledyba,Bug,Flying,265,40,20,30,40,80,55,2,False +166,Ledian,Bug,Flying,390,55,35,50,55,110,85,2,False +167,Spinarak,Bug,Poison,250,40,60,40,40,40,30,2,False +168,Ariados,Bug,Poison,390,70,90,70,60,60,40,2,False +169,Crobat,Poison,Flying,535,85,90,80,70,80,130,2,False +170,Chinchou,Water,Electric,330,75,38,38,56,56,67,2,False +171,Lanturn,Water,Electric,460,125,58,58,76,76,67,2,False +172,Pichu,Electric,,205,20,40,15,35,35,60,2,False +173,Cleffa,Fairy,,218,50,25,28,45,55,15,2,False +174,Igglybuff,Normal,Fairy,210,90,30,15,40,20,15,2,False +175,Togepi,Fairy,,245,35,20,65,40,65,20,2,False +176,Togetic,Fairy,Flying,405,55,40,85,80,105,40,2,False +177,Natu,Psychic,Flying,320,40,50,45,70,45,70,2,False +178,Xatu,Psychic,Flying,470,65,75,70,95,70,95,2,False +179,Mareep,Electric,,280,55,40,40,65,45,35,2,False +180,Flaaffy,Electric,,365,70,55,55,80,60,45,2,False +181,Ampharos,Electric,,510,90,75,85,115,90,55,2,False +181,AmpharosMega Ampharos,Electric,Dragon,610,90,95,105,165,110,45,2,False +182,Bellossom,Grass,,490,75,80,95,90,100,50,2,False +183,Marill,Water,Fairy,250,70,20,50,20,50,40,2,False +184,Azumarill,Water,Fairy,420,100,50,80,60,80,50,2,False +185,Sudowoodo,Rock,,410,70,100,115,30,65,30,2,False +186,Politoed,Water,,500,90,75,75,90,100,70,2,False +187,Hoppip,Grass,Flying,250,35,35,40,35,55,50,2,False +188,Skiploom,Grass,Flying,340,55,45,50,45,65,80,2,False +189,Jumpluff,Grass,Flying,460,75,55,70,55,95,110,2,False +190,Aipom,Normal,,360,55,70,55,40,55,85,2,False +191,Sunkern,Grass,,180,30,30,30,30,30,30,2,False +192,Sunflora,Grass,,425,75,75,55,105,85,30,2,False +193,Yanma,Bug,Flying,390,65,65,45,75,45,95,2,False +194,Wooper,Water,Ground,210,55,45,45,25,25,15,2,False +195,Quagsire,Water,Ground,430,95,85,85,65,65,35,2,False +196,Espeon,Psychic,,525,65,65,60,130,95,110,2,False +197,Umbreon,Dark,,525,95,65,110,60,130,65,2,False +198,Murkrow,Dark,Flying,405,60,85,42,85,42,91,2,False +199,Slowking,Water,Psychic,490,95,75,80,100,110,30,2,False +200,Misdreavus,Ghost,,435,60,60,60,85,85,85,2,False +201,Unown,Psychic,,336,48,72,48,72,48,48,2,False +202,Wobbuffet,Psychic,,405,190,33,58,33,58,33,2,False +203,Girafarig,Normal,Psychic,455,70,80,65,90,65,85,2,False +204,Pineco,Bug,,290,50,65,90,35,35,15,2,False +205,Forretress,Bug,Steel,465,75,90,140,60,60,40,2,False +206,Dunsparce,Normal,,415,100,70,70,65,65,45,2,False +207,Gligar,Ground,Flying,430,65,75,105,35,65,85,2,False +208,Steelix,Steel,Ground,510,75,85,200,55,65,30,2,False +208,SteelixMega Steelix,Steel,Ground,610,75,125,230,55,95,30,2,False +209,Snubbull,Fairy,,300,60,80,50,40,40,30,2,False +210,Granbull,Fairy,,450,90,120,75,60,60,45,2,False +211,Qwilfish,Water,Poison,430,65,95,75,55,55,85,2,False +212,Scizor,Bug,Steel,500,70,130,100,55,80,65,2,False +212,ScizorMega Scizor,Bug,Steel,600,70,150,140,65,100,75,2,False +213,Shuckle,Bug,Rock,505,20,10,230,10,230,5,2,False +214,Heracross,Bug,Fighting,500,80,125,75,40,95,85,2,False +214,HeracrossMega Heracross,Bug,Fighting,600,80,185,115,40,105,75,2,False +215,Sneasel,Dark,Ice,430,55,95,55,35,75,115,2,False +216,Teddiursa,Normal,,330,60,80,50,50,50,40,2,False +217,Ursaring,Normal,,500,90,130,75,75,75,55,2,False +218,Slugma,Fire,,250,40,40,40,70,40,20,2,False +219,Magcargo,Fire,Rock,410,50,50,120,80,80,30,2,False +220,Swinub,Ice,Ground,250,50,50,40,30,30,50,2,False +221,Piloswine,Ice,Ground,450,100,100,80,60,60,50,2,False +222,Corsola,Water,Rock,380,55,55,85,65,85,35,2,False +223,Remoraid,Water,,300,35,65,35,65,35,65,2,False +224,Octillery,Water,,480,75,105,75,105,75,45,2,False +225,Delibird,Ice,Flying,330,45,55,45,65,45,75,2,False +226,Mantine,Water,Flying,465,65,40,70,80,140,70,2,False +227,Skarmory,Steel,Flying,465,65,80,140,40,70,70,2,False +228,Houndour,Dark,Fire,330,45,60,30,80,50,65,2,False +229,Houndoom,Dark,Fire,500,75,90,50,110,80,95,2,False +229,HoundoomMega Houndoom,Dark,Fire,600,75,90,90,140,90,115,2,False +230,Kingdra,Water,Dragon,540,75,95,95,95,95,85,2,False +231,Phanpy,Ground,,330,90,60,60,40,40,40,2,False +232,Donphan,Ground,,500,90,120,120,60,60,50,2,False +233,Porygon2,Normal,,515,85,80,90,105,95,60,2,False +234,Stantler,Normal,,465,73,95,62,85,65,85,2,False +235,Smeargle,Normal,,250,55,20,35,20,45,75,2,False +236,Tyrogue,Fighting,,210,35,35,35,35,35,35,2,False +237,Hitmontop,Fighting,,455,50,95,95,35,110,70,2,False +238,Smoochum,Ice,Psychic,305,45,30,15,85,65,65,2,False +239,Elekid,Electric,,360,45,63,37,65,55,95,2,False +240,Magby,Fire,,365,45,75,37,70,55,83,2,False +241,Miltank,Normal,,490,95,80,105,40,70,100,2,False +242,Blissey,Normal,,540,255,10,10,75,135,55,2,False +243,Raikou,Electric,,580,90,85,75,115,100,115,2,True +244,Entei,Fire,,580,115,115,85,90,75,100,2,True +245,Suicune,Water,,580,100,75,115,90,115,85,2,True +246,Larvitar,Rock,Ground,300,50,64,50,45,50,41,2,False +247,Pupitar,Rock,Ground,410,70,84,70,65,70,51,2,False +248,Tyranitar,Rock,Dark,600,100,134,110,95,100,61,2,False +248,TyranitarMega Tyranitar,Rock,Dark,700,100,164,150,95,120,71,2,False +249,Lugia,Psychic,Flying,680,106,90,130,90,154,110,2,True +250,Ho-oh,Fire,Flying,680,106,130,90,110,154,90,2,True +251,Celebi,Psychic,Grass,600,100,100,100,100,100,100,2,False +252,Treecko,Grass,,310,40,45,35,65,55,70,3,False +253,Grovyle,Grass,,405,50,65,45,85,65,95,3,False +254,Sceptile,Grass,,530,70,85,65,105,85,120,3,False +254,SceptileMega Sceptile,Grass,Dragon,630,70,110,75,145,85,145,3,False +255,Torchic,Fire,,310,45,60,40,70,50,45,3,False +256,Combusken,Fire,Fighting,405,60,85,60,85,60,55,3,False +257,Blaziken,Fire,Fighting,530,80,120,70,110,70,80,3,False +257,BlazikenMega Blaziken,Fire,Fighting,630,80,160,80,130,80,100,3,False +258,Mudkip,Water,,310,50,70,50,50,50,40,3,False +259,Marshtomp,Water,Ground,405,70,85,70,60,70,50,3,False +260,Swampert,Water,Ground,535,100,110,90,85,90,60,3,False +260,SwampertMega Swampert,Water,Ground,635,100,150,110,95,110,70,3,False +261,Poochyena,Dark,,220,35,55,35,30,30,35,3,False +262,Mightyena,Dark,,420,70,90,70,60,60,70,3,False +263,Zigzagoon,Normal,,240,38,30,41,30,41,60,3,False +264,Linoone,Normal,,420,78,70,61,50,61,100,3,False +265,Wurmple,Bug,,195,45,45,35,20,30,20,3,False +266,Silcoon,Bug,,205,50,35,55,25,25,15,3,False +267,Beautifly,Bug,Flying,395,60,70,50,100,50,65,3,False +268,Cascoon,Bug,,205,50,35,55,25,25,15,3,False +269,Dustox,Bug,Poison,385,60,50,70,50,90,65,3,False +270,Lotad,Water,Grass,220,40,30,30,40,50,30,3,False +271,Lombre,Water,Grass,340,60,50,50,60,70,50,3,False +272,Ludicolo,Water,Grass,480,80,70,70,90,100,70,3,False +273,Seedot,Grass,,220,40,40,50,30,30,30,3,False +274,Nuzleaf,Grass,Dark,340,70,70,40,60,40,60,3,False +275,Shiftry,Grass,Dark,480,90,100,60,90,60,80,3,False +276,Taillow,Normal,Flying,270,40,55,30,30,30,85,3,False +277,Swellow,Normal,Flying,430,60,85,60,50,50,125,3,False +278,Wingull,Water,Flying,270,40,30,30,55,30,85,3,False +279,Pelipper,Water,Flying,430,60,50,100,85,70,65,3,False +280,Ralts,Psychic,Fairy,198,28,25,25,45,35,40,3,False +281,Kirlia,Psychic,Fairy,278,38,35,35,65,55,50,3,False +282,Gardevoir,Psychic,Fairy,518,68,65,65,125,115,80,3,False +282,GardevoirMega Gardevoir,Psychic,Fairy,618,68,85,65,165,135,100,3,False +283,Surskit,Bug,Water,269,40,30,32,50,52,65,3,False +284,Masquerain,Bug,Flying,414,70,60,62,80,82,60,3,False +285,Shroomish,Grass,,295,60,40,60,40,60,35,3,False +286,Breloom,Grass,Fighting,460,60,130,80,60,60,70,3,False +287,Slakoth,Normal,,280,60,60,60,35,35,30,3,False +288,Vigoroth,Normal,,440,80,80,80,55,55,90,3,False +289,Slaking,Normal,,670,150,160,100,95,65,100,3,False +290,Nincada,Bug,Ground,266,31,45,90,30,30,40,3,False +291,Ninjask,Bug,Flying,456,61,90,45,50,50,160,3,False +292,Shedinja,Bug,Ghost,236,1,90,45,30,30,40,3,False +293,Whismur,Normal,,240,64,51,23,51,23,28,3,False +294,Loudred,Normal,,360,84,71,43,71,43,48,3,False +295,Exploud,Normal,,490,104,91,63,91,73,68,3,False +296,Makuhita,Fighting,,237,72,60,30,20,30,25,3,False +297,Hariyama,Fighting,,474,144,120,60,40,60,50,3,False +298,Azurill,Normal,Fairy,190,50,20,40,20,40,20,3,False +299,Nosepass,Rock,,375,30,45,135,45,90,30,3,False +300,Skitty,Normal,,260,50,45,45,35,35,50,3,False +301,Delcatty,Normal,,380,70,65,65,55,55,70,3,False +302,Sableye,Dark,Ghost,380,50,75,75,65,65,50,3,False +302,SableyeMega Sableye,Dark,Ghost,480,50,85,125,85,115,20,3,False +303,Mawile,Steel,Fairy,380,50,85,85,55,55,50,3,False +303,MawileMega Mawile,Steel,Fairy,480,50,105,125,55,95,50,3,False +304,Aron,Steel,Rock,330,50,70,100,40,40,30,3,False +305,Lairon,Steel,Rock,430,60,90,140,50,50,40,3,False +306,Aggron,Steel,Rock,530,70,110,180,60,60,50,3,False +306,AggronMega Aggron,Steel,,630,70,140,230,60,80,50,3,False +307,Meditite,Fighting,Psychic,280,30,40,55,40,55,60,3,False +308,Medicham,Fighting,Psychic,410,60,60,75,60,75,80,3,False +308,MedichamMega Medicham,Fighting,Psychic,510,60,100,85,80,85,100,3,False +309,Electrike,Electric,,295,40,45,40,65,40,65,3,False +310,Manectric,Electric,,475,70,75,60,105,60,105,3,False +310,ManectricMega Manectric,Electric,,575,70,75,80,135,80,135,3,False +311,Plusle,Electric,,405,60,50,40,85,75,95,3,False +312,Minun,Electric,,405,60,40,50,75,85,95,3,False +313,Volbeat,Bug,,400,65,73,55,47,75,85,3,False +314,Illumise,Bug,,400,65,47,55,73,75,85,3,False +315,Roselia,Grass,Poison,400,50,60,45,100,80,65,3,False +316,Gulpin,Poison,,302,70,43,53,43,53,40,3,False +317,Swalot,Poison,,467,100,73,83,73,83,55,3,False +318,Carvanha,Water,Dark,305,45,90,20,65,20,65,3,False +319,Sharpedo,Water,Dark,460,70,120,40,95,40,95,3,False +319,SharpedoMega Sharpedo,Water,Dark,560,70,140,70,110,65,105,3,False +320,Wailmer,Water,,400,130,70,35,70,35,60,3,False +321,Wailord,Water,,500,170,90,45,90,45,60,3,False +322,Numel,Fire,Ground,305,60,60,40,65,45,35,3,False +323,Camerupt,Fire,Ground,460,70,100,70,105,75,40,3,False +323,CameruptMega Camerupt,Fire,Ground,560,70,120,100,145,105,20,3,False +324,Torkoal,Fire,,470,70,85,140,85,70,20,3,False +325,Spoink,Psychic,,330,60,25,35,70,80,60,3,False +326,Grumpig,Psychic,,470,80,45,65,90,110,80,3,False +327,Spinda,Normal,,360,60,60,60,60,60,60,3,False +328,Trapinch,Ground,,290,45,100,45,45,45,10,3,False +329,Vibrava,Ground,Dragon,340,50,70,50,50,50,70,3,False +330,Flygon,Ground,Dragon,520,80,100,80,80,80,100,3,False +331,Cacnea,Grass,,335,50,85,40,85,40,35,3,False +332,Cacturne,Grass,Dark,475,70,115,60,115,60,55,3,False +333,Swablu,Normal,Flying,310,45,40,60,40,75,50,3,False +334,Altaria,Dragon,Flying,490,75,70,90,70,105,80,3,False +334,AltariaMega Altaria,Dragon,Fairy,590,75,110,110,110,105,80,3,False +335,Zangoose,Normal,,458,73,115,60,60,60,90,3,False +336,Seviper,Poison,,458,73,100,60,100,60,65,3,False +337,Lunatone,Rock,Psychic,440,70,55,65,95,85,70,3,False +338,Solrock,Rock,Psychic,440,70,95,85,55,65,70,3,False +339,Barboach,Water,Ground,288,50,48,43,46,41,60,3,False +340,Whiscash,Water,Ground,468,110,78,73,76,71,60,3,False +341,Corphish,Water,,308,43,80,65,50,35,35,3,False +342,Crawdaunt,Water,Dark,468,63,120,85,90,55,55,3,False +343,Baltoy,Ground,Psychic,300,40,40,55,40,70,55,3,False +344,Claydol,Ground,Psychic,500,60,70,105,70,120,75,3,False +345,Lileep,Rock,Grass,355,66,41,77,61,87,23,3,False +346,Cradily,Rock,Grass,495,86,81,97,81,107,43,3,False +347,Anorith,Rock,Bug,355,45,95,50,40,50,75,3,False +348,Armaldo,Rock,Bug,495,75,125,100,70,80,45,3,False +349,Feebas,Water,,200,20,15,20,10,55,80,3,False +350,Milotic,Water,,540,95,60,79,100,125,81,3,False +351,Castform,Normal,,420,70,70,70,70,70,70,3,False +352,Kecleon,Normal,,440,60,90,70,60,120,40,3,False +353,Shuppet,Ghost,,295,44,75,35,63,33,45,3,False +354,Banette,Ghost,,455,64,115,65,83,63,65,3,False +354,BanetteMega Banette,Ghost,,555,64,165,75,93,83,75,3,False +355,Duskull,Ghost,,295,20,40,90,30,90,25,3,False +356,Dusclops,Ghost,,455,40,70,130,60,130,25,3,False +357,Tropius,Grass,Flying,460,99,68,83,72,87,51,3,False +358,Chimecho,Psychic,,425,65,50,70,95,80,65,3,False +359,Absol,Dark,,465,65,130,60,75,60,75,3,False +359,AbsolMega Absol,Dark,,565,65,150,60,115,60,115,3,False +360,Wynaut,Psychic,,260,95,23,48,23,48,23,3,False +361,Snorunt,Ice,,300,50,50,50,50,50,50,3,False +362,Glalie,Ice,,480,80,80,80,80,80,80,3,False +362,GlalieMega Glalie,Ice,,580,80,120,80,120,80,100,3,False +363,Spheal,Ice,Water,290,70,40,50,55,50,25,3,False +364,Sealeo,Ice,Water,410,90,60,70,75,70,45,3,False +365,Walrein,Ice,Water,530,110,80,90,95,90,65,3,False +366,Clamperl,Water,,345,35,64,85,74,55,32,3,False +367,Huntail,Water,,485,55,104,105,94,75,52,3,False +368,Gorebyss,Water,,485,55,84,105,114,75,52,3,False +369,Relicanth,Water,Rock,485,100,90,130,45,65,55,3,False +370,Luvdisc,Water,,330,43,30,55,40,65,97,3,False +371,Bagon,Dragon,,300,45,75,60,40,30,50,3,False +372,Shelgon,Dragon,,420,65,95,100,60,50,50,3,False +373,Salamence,Dragon,Flying,600,95,135,80,110,80,100,3,False +373,SalamenceMega Salamence,Dragon,Flying,700,95,145,130,120,90,120,3,False +374,Beldum,Steel,Psychic,300,40,55,80,35,60,30,3,False +375,Metang,Steel,Psychic,420,60,75,100,55,80,50,3,False +376,Metagross,Steel,Psychic,600,80,135,130,95,90,70,3,False +376,MetagrossMega Metagross,Steel,Psychic,700,80,145,150,105,110,110,3,False +377,Regirock,Rock,,580,80,100,200,50,100,50,3,True +378,Regice,Ice,,580,80,50,100,100,200,50,3,True +379,Registeel,Steel,,580,80,75,150,75,150,50,3,True +380,Latias,Dragon,Psychic,600,80,80,90,110,130,110,3,True +380,LatiasMega Latias,Dragon,Psychic,700,80,100,120,140,150,110,3,True +381,Latios,Dragon,Psychic,600,80,90,80,130,110,110,3,True +381,LatiosMega Latios,Dragon,Psychic,700,80,130,100,160,120,110,3,True +382,Kyogre,Water,,670,100,100,90,150,140,90,3,True +382,KyogrePrimal Kyogre,Water,,770,100,150,90,180,160,90,3,True +383,Groudon,Ground,,670,100,150,140,100,90,90,3,True +383,GroudonPrimal Groudon,Ground,Fire,770,100,180,160,150,90,90,3,True +384,Rayquaza,Dragon,Flying,680,105,150,90,150,90,95,3,True +384,RayquazaMega Rayquaza,Dragon,Flying,780,105,180,100,180,100,115,3,True +385,Jirachi,Steel,Psychic,600,100,100,100,100,100,100,3,True +386,DeoxysNormal Forme,Psychic,,600,50,150,50,150,50,150,3,True +386,DeoxysAttack Forme,Psychic,,600,50,180,20,180,20,150,3,True +386,DeoxysDefense Forme,Psychic,,600,50,70,160,70,160,90,3,True +386,DeoxysSpeed Forme,Psychic,,600,50,95,90,95,90,180,3,True +387,Turtwig,Grass,,318,55,68,64,45,55,31,4,False +388,Grotle,Grass,,405,75,89,85,55,65,36,4,False +389,Torterra,Grass,Ground,525,95,109,105,75,85,56,4,False +390,Chimchar,Fire,,309,44,58,44,58,44,61,4,False +391,Monferno,Fire,Fighting,405,64,78,52,78,52,81,4,False +392,Infernape,Fire,Fighting,534,76,104,71,104,71,108,4,False +393,Piplup,Water,,314,53,51,53,61,56,40,4,False +394,Prinplup,Water,,405,64,66,68,81,76,50,4,False +395,Empoleon,Water,Steel,530,84,86,88,111,101,60,4,False +396,Starly,Normal,Flying,245,40,55,30,30,30,60,4,False +397,Staravia,Normal,Flying,340,55,75,50,40,40,80,4,False +398,Staraptor,Normal,Flying,485,85,120,70,50,60,100,4,False +399,Bidoof,Normal,,250,59,45,40,35,40,31,4,False +400,Bibarel,Normal,Water,410,79,85,60,55,60,71,4,False +401,Kricketot,Bug,,194,37,25,41,25,41,25,4,False +402,Kricketune,Bug,,384,77,85,51,55,51,65,4,False +403,Shinx,Electric,,263,45,65,34,40,34,45,4,False +404,Luxio,Electric,,363,60,85,49,60,49,60,4,False +405,Luxray,Electric,,523,80,120,79,95,79,70,4,False +406,Budew,Grass,Poison,280,40,30,35,50,70,55,4,False +407,Roserade,Grass,Poison,515,60,70,65,125,105,90,4,False +408,Cranidos,Rock,,350,67,125,40,30,30,58,4,False +409,Rampardos,Rock,,495,97,165,60,65,50,58,4,False +410,Shieldon,Rock,Steel,350,30,42,118,42,88,30,4,False +411,Bastiodon,Rock,Steel,495,60,52,168,47,138,30,4,False +412,Burmy,Bug,,224,40,29,45,29,45,36,4,False +413,WormadamPlant Cloak,Bug,Grass,424,60,59,85,79,105,36,4,False +413,WormadamSandy Cloak,Bug,Ground,424,60,79,105,59,85,36,4,False +413,WormadamTrash Cloak,Bug,Steel,424,60,69,95,69,95,36,4,False +414,Mothim,Bug,Flying,424,70,94,50,94,50,66,4,False +415,Combee,Bug,Flying,244,30,30,42,30,42,70,4,False +416,Vespiquen,Bug,Flying,474,70,80,102,80,102,40,4,False +417,Pachirisu,Electric,,405,60,45,70,45,90,95,4,False +418,Buizel,Water,,330,55,65,35,60,30,85,4,False +419,Floatzel,Water,,495,85,105,55,85,50,115,4,False +420,Cherubi,Grass,,275,45,35,45,62,53,35,4,False +421,Cherrim,Grass,,450,70,60,70,87,78,85,4,False +422,Shellos,Water,,325,76,48,48,57,62,34,4,False +423,Gastrodon,Water,Ground,475,111,83,68,92,82,39,4,False +424,Ambipom,Normal,,482,75,100,66,60,66,115,4,False +425,Drifloon,Ghost,Flying,348,90,50,34,60,44,70,4,False +426,Drifblim,Ghost,Flying,498,150,80,44,90,54,80,4,False +427,Buneary,Normal,,350,55,66,44,44,56,85,4,False +428,Lopunny,Normal,,480,65,76,84,54,96,105,4,False +428,LopunnyMega Lopunny,Normal,Fighting,580,65,136,94,54,96,135,4,False +429,Mismagius,Ghost,,495,60,60,60,105,105,105,4,False +430,Honchkrow,Dark,Flying,505,100,125,52,105,52,71,4,False +431,Glameow,Normal,,310,49,55,42,42,37,85,4,False +432,Purugly,Normal,,452,71,82,64,64,59,112,4,False +433,Chingling,Psychic,,285,45,30,50,65,50,45,4,False +434,Stunky,Poison,Dark,329,63,63,47,41,41,74,4,False +435,Skuntank,Poison,Dark,479,103,93,67,71,61,84,4,False +436,Bronzor,Steel,Psychic,300,57,24,86,24,86,23,4,False +437,Bronzong,Steel,Psychic,500,67,89,116,79,116,33,4,False +438,Bonsly,Rock,,290,50,80,95,10,45,10,4,False +439,Mime Jr.,Psychic,Fairy,310,20,25,45,70,90,60,4,False +440,Happiny,Normal,,220,100,5,5,15,65,30,4,False +441,Chatot,Normal,Flying,411,76,65,45,92,42,91,4,False +442,Spiritomb,Ghost,Dark,485,50,92,108,92,108,35,4,False +443,Gible,Dragon,Ground,300,58,70,45,40,45,42,4,False +444,Gabite,Dragon,Ground,410,68,90,65,50,55,82,4,False +445,Garchomp,Dragon,Ground,600,108,130,95,80,85,102,4,False +445,GarchompMega Garchomp,Dragon,Ground,700,108,170,115,120,95,92,4,False +446,Munchlax,Normal,,390,135,85,40,40,85,5,4,False +447,Riolu,Fighting,,285,40,70,40,35,40,60,4,False +448,Lucario,Fighting,Steel,525,70,110,70,115,70,90,4,False +448,LucarioMega Lucario,Fighting,Steel,625,70,145,88,140,70,112,4,False +449,Hippopotas,Ground,,330,68,72,78,38,42,32,4,False +450,Hippowdon,Ground,,525,108,112,118,68,72,47,4,False +451,Skorupi,Poison,Bug,330,40,50,90,30,55,65,4,False +452,Drapion,Poison,Dark,500,70,90,110,60,75,95,4,False +453,Croagunk,Poison,Fighting,300,48,61,40,61,40,50,4,False +454,Toxicroak,Poison,Fighting,490,83,106,65,86,65,85,4,False +455,Carnivine,Grass,,454,74,100,72,90,72,46,4,False +456,Finneon,Water,,330,49,49,56,49,61,66,4,False +457,Lumineon,Water,,460,69,69,76,69,86,91,4,False +458,Mantyke,Water,Flying,345,45,20,50,60,120,50,4,False +459,Snover,Grass,Ice,334,60,62,50,62,60,40,4,False +460,Abomasnow,Grass,Ice,494,90,92,75,92,85,60,4,False +460,AbomasnowMega Abomasnow,Grass,Ice,594,90,132,105,132,105,30,4,False +461,Weavile,Dark,Ice,510,70,120,65,45,85,125,4,False +462,Magnezone,Electric,Steel,535,70,70,115,130,90,60,4,False +463,Lickilicky,Normal,,515,110,85,95,80,95,50,4,False +464,Rhyperior,Ground,Rock,535,115,140,130,55,55,40,4,False +465,Tangrowth,Grass,,535,100,100,125,110,50,50,4,False +466,Electivire,Electric,,540,75,123,67,95,85,95,4,False +467,Magmortar,Fire,,540,75,95,67,125,95,83,4,False +468,Togekiss,Fairy,Flying,545,85,50,95,120,115,80,4,False +469,Yanmega,Bug,Flying,515,86,76,86,116,56,95,4,False +470,Leafeon,Grass,,525,65,110,130,60,65,95,4,False +471,Glaceon,Ice,,525,65,60,110,130,95,65,4,False +472,Gliscor,Ground,Flying,510,75,95,125,45,75,95,4,False +473,Mamoswine,Ice,Ground,530,110,130,80,70,60,80,4,False +474,Porygon-Z,Normal,,535,85,80,70,135,75,90,4,False +475,Gallade,Psychic,Fighting,518,68,125,65,65,115,80,4,False +475,GalladeMega Gallade,Psychic,Fighting,618,68,165,95,65,115,110,4,False +476,Probopass,Rock,Steel,525,60,55,145,75,150,40,4,False +477,Dusknoir,Ghost,,525,45,100,135,65,135,45,4,False +478,Froslass,Ice,Ghost,480,70,80,70,80,70,110,4,False +479,Rotom,Electric,Ghost,440,50,50,77,95,77,91,4,False +479,RotomHeat Rotom,Electric,Fire,520,50,65,107,105,107,86,4,False +479,RotomWash Rotom,Electric,Water,520,50,65,107,105,107,86,4,False +479,RotomFrost Rotom,Electric,Ice,520,50,65,107,105,107,86,4,False +479,RotomFan Rotom,Electric,Flying,520,50,65,107,105,107,86,4,False +479,RotomMow Rotom,Electric,Grass,520,50,65,107,105,107,86,4,False +480,Uxie,Psychic,,580,75,75,130,75,130,95,4,True +481,Mesprit,Psychic,,580,80,105,105,105,105,80,4,True +482,Azelf,Psychic,,580,75,125,70,125,70,115,4,True +483,Dialga,Steel,Dragon,680,100,120,120,150,100,90,4,True +484,Palkia,Water,Dragon,680,90,120,100,150,120,100,4,True +485,Heatran,Fire,Steel,600,91,90,106,130,106,77,4,True +486,Regigigas,Normal,,670,110,160,110,80,110,100,4,True +487,GiratinaAltered Forme,Ghost,Dragon,680,150,100,120,100,120,90,4,True +487,GiratinaOrigin Forme,Ghost,Dragon,680,150,120,100,120,100,90,4,True +488,Cresselia,Psychic,,600,120,70,120,75,130,85,4,False +489,Phione,Water,,480,80,80,80,80,80,80,4,False +490,Manaphy,Water,,600,100,100,100,100,100,100,4,False +491,Darkrai,Dark,,600,70,90,90,135,90,125,4,True +492,ShayminLand Forme,Grass,,600,100,100,100,100,100,100,4,True +492,ShayminSky Forme,Grass,Flying,600,100,103,75,120,75,127,4,True +493,Arceus,Normal,,720,120,120,120,120,120,120,4,True +494,Victini,Psychic,Fire,600,100,100,100,100,100,100,5,True +495,Snivy,Grass,,308,45,45,55,45,55,63,5,False +496,Servine,Grass,,413,60,60,75,60,75,83,5,False +497,Serperior,Grass,,528,75,75,95,75,95,113,5,False +498,Tepig,Fire,,308,65,63,45,45,45,45,5,False +499,Pignite,Fire,Fighting,418,90,93,55,70,55,55,5,False +500,Emboar,Fire,Fighting,528,110,123,65,100,65,65,5,False +501,Oshawott,Water,,308,55,55,45,63,45,45,5,False +502,Dewott,Water,,413,75,75,60,83,60,60,5,False +503,Samurott,Water,,528,95,100,85,108,70,70,5,False +504,Patrat,Normal,,255,45,55,39,35,39,42,5,False +505,Watchog,Normal,,420,60,85,69,60,69,77,5,False +506,Lillipup,Normal,,275,45,60,45,25,45,55,5,False +507,Herdier,Normal,,370,65,80,65,35,65,60,5,False +508,Stoutland,Normal,,500,85,110,90,45,90,80,5,False +509,Purrloin,Dark,,281,41,50,37,50,37,66,5,False +510,Liepard,Dark,,446,64,88,50,88,50,106,5,False +511,Pansage,Grass,,316,50,53,48,53,48,64,5,False +512,Simisage,Grass,,498,75,98,63,98,63,101,5,False +513,Pansear,Fire,,316,50,53,48,53,48,64,5,False +514,Simisear,Fire,,498,75,98,63,98,63,101,5,False +515,Panpour,Water,,316,50,53,48,53,48,64,5,False +516,Simipour,Water,,498,75,98,63,98,63,101,5,False +517,Munna,Psychic,,292,76,25,45,67,55,24,5,False +518,Musharna,Psychic,,487,116,55,85,107,95,29,5,False +519,Pidove,Normal,Flying,264,50,55,50,36,30,43,5,False +520,Tranquill,Normal,Flying,358,62,77,62,50,42,65,5,False +521,Unfezant,Normal,Flying,488,80,115,80,65,55,93,5,False +522,Blitzle,Electric,,295,45,60,32,50,32,76,5,False +523,Zebstrika,Electric,,497,75,100,63,80,63,116,5,False +524,Roggenrola,Rock,,280,55,75,85,25,25,15,5,False +525,Boldore,Rock,,390,70,105,105,50,40,20,5,False +526,Gigalith,Rock,,515,85,135,130,60,80,25,5,False +527,Woobat,Psychic,Flying,313,55,45,43,55,43,72,5,False +528,Swoobat,Psychic,Flying,425,67,57,55,77,55,114,5,False +529,Drilbur,Ground,,328,60,85,40,30,45,68,5,False +530,Excadrill,Ground,Steel,508,110,135,60,50,65,88,5,False +531,Audino,Normal,,445,103,60,86,60,86,50,5,False +531,AudinoMega Audino,Normal,Fairy,545,103,60,126,80,126,50,5,False +532,Timburr,Fighting,,305,75,80,55,25,35,35,5,False +533,Gurdurr,Fighting,,405,85,105,85,40,50,40,5,False +534,Conkeldurr,Fighting,,505,105,140,95,55,65,45,5,False +535,Tympole,Water,,294,50,50,40,50,40,64,5,False +536,Palpitoad,Water,Ground,384,75,65,55,65,55,69,5,False +537,Seismitoad,Water,Ground,509,105,95,75,85,75,74,5,False +538,Throh,Fighting,,465,120,100,85,30,85,45,5,False +539,Sawk,Fighting,,465,75,125,75,30,75,85,5,False +540,Sewaddle,Bug,Grass,310,45,53,70,40,60,42,5,False +541,Swadloon,Bug,Grass,380,55,63,90,50,80,42,5,False +542,Leavanny,Bug,Grass,500,75,103,80,70,80,92,5,False +543,Venipede,Bug,Poison,260,30,45,59,30,39,57,5,False +544,Whirlipede,Bug,Poison,360,40,55,99,40,79,47,5,False +545,Scolipede,Bug,Poison,485,60,100,89,55,69,112,5,False +546,Cottonee,Grass,Fairy,280,40,27,60,37,50,66,5,False +547,Whimsicott,Grass,Fairy,480,60,67,85,77,75,116,5,False +548,Petilil,Grass,,280,45,35,50,70,50,30,5,False +549,Lilligant,Grass,,480,70,60,75,110,75,90,5,False +550,Basculin,Water,,460,70,92,65,80,55,98,5,False +551,Sandile,Ground,Dark,292,50,72,35,35,35,65,5,False +552,Krokorok,Ground,Dark,351,60,82,45,45,45,74,5,False +553,Krookodile,Ground,Dark,519,95,117,80,65,70,92,5,False +554,Darumaka,Fire,,315,70,90,45,15,45,50,5,False +555,DarmanitanStandard Mode,Fire,,480,105,140,55,30,55,95,5,False +555,DarmanitanZen Mode,Fire,Psychic,540,105,30,105,140,105,55,5,False +556,Maractus,Grass,,461,75,86,67,106,67,60,5,False +557,Dwebble,Bug,Rock,325,50,65,85,35,35,55,5,False +558,Crustle,Bug,Rock,475,70,95,125,65,75,45,5,False +559,Scraggy,Dark,Fighting,348,50,75,70,35,70,48,5,False +560,Scrafty,Dark,Fighting,488,65,90,115,45,115,58,5,False +561,Sigilyph,Psychic,Flying,490,72,58,80,103,80,97,5,False +562,Yamask,Ghost,,303,38,30,85,55,65,30,5,False +563,Cofagrigus,Ghost,,483,58,50,145,95,105,30,5,False +564,Tirtouga,Water,Rock,355,54,78,103,53,45,22,5,False +565,Carracosta,Water,Rock,495,74,108,133,83,65,32,5,False +566,Archen,Rock,Flying,401,55,112,45,74,45,70,5,False +567,Archeops,Rock,Flying,567,75,140,65,112,65,110,5,False +568,Trubbish,Poison,,329,50,50,62,40,62,65,5,False +569,Garbodor,Poison,,474,80,95,82,60,82,75,5,False +570,Zorua,Dark,,330,40,65,40,80,40,65,5,False +571,Zoroark,Dark,,510,60,105,60,120,60,105,5,False +572,Minccino,Normal,,300,55,50,40,40,40,75,5,False +573,Cinccino,Normal,,470,75,95,60,65,60,115,5,False +574,Gothita,Psychic,,290,45,30,50,55,65,45,5,False +575,Gothorita,Psychic,,390,60,45,70,75,85,55,5,False +576,Gothitelle,Psychic,,490,70,55,95,95,110,65,5,False +577,Solosis,Psychic,,290,45,30,40,105,50,20,5,False +578,Duosion,Psychic,,370,65,40,50,125,60,30,5,False +579,Reuniclus,Psychic,,490,110,65,75,125,85,30,5,False +580,Ducklett,Water,Flying,305,62,44,50,44,50,55,5,False +581,Swanna,Water,Flying,473,75,87,63,87,63,98,5,False +582,Vanillite,Ice,,305,36,50,50,65,60,44,5,False +583,Vanillish,Ice,,395,51,65,65,80,75,59,5,False +584,Vanilluxe,Ice,,535,71,95,85,110,95,79,5,False +585,Deerling,Normal,Grass,335,60,60,50,40,50,75,5,False +586,Sawsbuck,Normal,Grass,475,80,100,70,60,70,95,5,False +587,Emolga,Electric,Flying,428,55,75,60,75,60,103,5,False +588,Karrablast,Bug,,315,50,75,45,40,45,60,5,False +589,Escavalier,Bug,Steel,495,70,135,105,60,105,20,5,False +590,Foongus,Grass,Poison,294,69,55,45,55,55,15,5,False +591,Amoonguss,Grass,Poison,464,114,85,70,85,80,30,5,False +592,Frillish,Water,Ghost,335,55,40,50,65,85,40,5,False +593,Jellicent,Water,Ghost,480,100,60,70,85,105,60,5,False +594,Alomomola,Water,,470,165,75,80,40,45,65,5,False +595,Joltik,Bug,Electric,319,50,47,50,57,50,65,5,False +596,Galvantula,Bug,Electric,472,70,77,60,97,60,108,5,False +597,Ferroseed,Grass,Steel,305,44,50,91,24,86,10,5,False +598,Ferrothorn,Grass,Steel,489,74,94,131,54,116,20,5,False +599,Klink,Steel,,300,40,55,70,45,60,30,5,False +600,Klang,Steel,,440,60,80,95,70,85,50,5,False +601,Klinklang,Steel,,520,60,100,115,70,85,90,5,False +602,Tynamo,Electric,,275,35,55,40,45,40,60,5,False +603,Eelektrik,Electric,,405,65,85,70,75,70,40,5,False +604,Eelektross,Electric,,515,85,115,80,105,80,50,5,False +605,Elgyem,Psychic,,335,55,55,55,85,55,30,5,False +606,Beheeyem,Psychic,,485,75,75,75,125,95,40,5,False +607,Litwick,Ghost,Fire,275,50,30,55,65,55,20,5,False +608,Lampent,Ghost,Fire,370,60,40,60,95,60,55,5,False +609,Chandelure,Ghost,Fire,520,60,55,90,145,90,80,5,False +610,Axew,Dragon,,320,46,87,60,30,40,57,5,False +611,Fraxure,Dragon,,410,66,117,70,40,50,67,5,False +612,Haxorus,Dragon,,540,76,147,90,60,70,97,5,False +613,Cubchoo,Ice,,305,55,70,40,60,40,40,5,False +614,Beartic,Ice,,485,95,110,80,70,80,50,5,False +615,Cryogonal,Ice,,485,70,50,30,95,135,105,5,False +616,Shelmet,Bug,,305,50,40,85,40,65,25,5,False +617,Accelgor,Bug,,495,80,70,40,100,60,145,5,False +618,Stunfisk,Ground,Electric,471,109,66,84,81,99,32,5,False +619,Mienfoo,Fighting,,350,45,85,50,55,50,65,5,False +620,Mienshao,Fighting,,510,65,125,60,95,60,105,5,False +621,Druddigon,Dragon,,485,77,120,90,60,90,48,5,False +622,Golett,Ground,Ghost,303,59,74,50,35,50,35,5,False +623,Golurk,Ground,Ghost,483,89,124,80,55,80,55,5,False +624,Pawniard,Dark,Steel,340,45,85,70,40,40,60,5,False +625,Bisharp,Dark,Steel,490,65,125,100,60,70,70,5,False +626,Bouffalant,Normal,,490,95,110,95,40,95,55,5,False +627,Rufflet,Normal,Flying,350,70,83,50,37,50,60,5,False +628,Braviary,Normal,Flying,510,100,123,75,57,75,80,5,False +629,Vullaby,Dark,Flying,370,70,55,75,45,65,60,5,False +630,Mandibuzz,Dark,Flying,510,110,65,105,55,95,80,5,False +631,Heatmor,Fire,,484,85,97,66,105,66,65,5,False +632,Durant,Bug,Steel,484,58,109,112,48,48,109,5,False +633,Deino,Dark,Dragon,300,52,65,50,45,50,38,5,False +634,Zweilous,Dark,Dragon,420,72,85,70,65,70,58,5,False +635,Hydreigon,Dark,Dragon,600,92,105,90,125,90,98,5,False +636,Larvesta,Bug,Fire,360,55,85,55,50,55,60,5,False +637,Volcarona,Bug,Fire,550,85,60,65,135,105,100,5,False +638,Cobalion,Steel,Fighting,580,91,90,129,90,72,108,5,True +639,Terrakion,Rock,Fighting,580,91,129,90,72,90,108,5,True +640,Virizion,Grass,Fighting,580,91,90,72,90,129,108,5,True +641,TornadusIncarnate Forme,Flying,,580,79,115,70,125,80,111,5,True +641,TornadusTherian Forme,Flying,,580,79,100,80,110,90,121,5,True +642,ThundurusIncarnate Forme,Electric,Flying,580,79,115,70,125,80,111,5,True +642,ThundurusTherian Forme,Electric,Flying,580,79,105,70,145,80,101,5,True +643,Reshiram,Dragon,Fire,680,100,120,100,150,120,90,5,True +644,Zekrom,Dragon,Electric,680,100,150,120,120,100,90,5,True +645,LandorusIncarnate Forme,Ground,Flying,600,89,125,90,115,80,101,5,True +645,LandorusTherian Forme,Ground,Flying,600,89,145,90,105,80,91,5,True +646,Kyurem,Dragon,Ice,660,125,130,90,130,90,95,5,True +646,KyuremBlack Kyurem,Dragon,Ice,700,125,170,100,120,90,95,5,True +646,KyuremWhite Kyurem,Dragon,Ice,700,125,120,90,170,100,95,5,True +647,KeldeoOrdinary Forme,Water,Fighting,580,91,72,90,129,90,108,5,False +647,KeldeoResolute Forme,Water,Fighting,580,91,72,90,129,90,108,5,False +648,MeloettaAria Forme,Normal,Psychic,600,100,77,77,128,128,90,5,False +648,MeloettaPirouette Forme,Normal,Fighting,600,100,128,90,77,77,128,5,False +649,Genesect,Bug,Steel,600,71,120,95,120,95,99,5,False +650,Chespin,Grass,,313,56,61,65,48,45,38,6,False +651,Quilladin,Grass,,405,61,78,95,56,58,57,6,False +652,Chesnaught,Grass,Fighting,530,88,107,122,74,75,64,6,False +653,Fennekin,Fire,,307,40,45,40,62,60,60,6,False +654,Braixen,Fire,,409,59,59,58,90,70,73,6,False +655,Delphox,Fire,Psychic,534,75,69,72,114,100,104,6,False +656,Froakie,Water,,314,41,56,40,62,44,71,6,False +657,Frogadier,Water,,405,54,63,52,83,56,97,6,False +658,Greninja,Water,Dark,530,72,95,67,103,71,122,6,False +659,Bunnelby,Normal,,237,38,36,38,32,36,57,6,False +660,Diggersby,Normal,Ground,423,85,56,77,50,77,78,6,False +661,Fletchling,Normal,Flying,278,45,50,43,40,38,62,6,False +662,Fletchinder,Fire,Flying,382,62,73,55,56,52,84,6,False +663,Talonflame,Fire,Flying,499,78,81,71,74,69,126,6,False +664,Scatterbug,Bug,,200,38,35,40,27,25,35,6,False +665,Spewpa,Bug,,213,45,22,60,27,30,29,6,False +666,Vivillon,Bug,Flying,411,80,52,50,90,50,89,6,False +667,Litleo,Fire,Normal,369,62,50,58,73,54,72,6,False +668,Pyroar,Fire,Normal,507,86,68,72,109,66,106,6,False +669,Flabébé,Fairy,,303,44,38,39,61,79,42,6,False +670,Floette,Fairy,,371,54,45,47,75,98,52,6,False +671,Florges,Fairy,,552,78,65,68,112,154,75,6,False +672,Skiddo,Grass,,350,66,65,48,62,57,52,6,False +673,Gogoat,Grass,,531,123,100,62,97,81,68,6,False +674,Pancham,Fighting,,348,67,82,62,46,48,43,6,False +675,Pangoro,Fighting,Dark,495,95,124,78,69,71,58,6,False +676,Furfrou,Normal,,472,75,80,60,65,90,102,6,False +677,Espurr,Psychic,,355,62,48,54,63,60,68,6,False +678,MeowsticMale,Psychic,,466,74,48,76,83,81,104,6,False +678,MeowsticFemale,Psychic,,466,74,48,76,83,81,104,6,False +679,Honedge,Steel,Ghost,325,45,80,100,35,37,28,6,False +680,Doublade,Steel,Ghost,448,59,110,150,45,49,35,6,False +681,AegislashBlade Forme,Steel,Ghost,520,60,150,50,150,50,60,6,False +681,AegislashShield Forme,Steel,Ghost,520,60,50,150,50,150,60,6,False +682,Spritzee,Fairy,,341,78,52,60,63,65,23,6,False +683,Aromatisse,Fairy,,462,101,72,72,99,89,29,6,False +684,Swirlix,Fairy,,341,62,48,66,59,57,49,6,False +685,Slurpuff,Fairy,,480,82,80,86,85,75,72,6,False +686,Inkay,Dark,Psychic,288,53,54,53,37,46,45,6,False +687,Malamar,Dark,Psychic,482,86,92,88,68,75,73,6,False +688,Binacle,Rock,Water,306,42,52,67,39,56,50,6,False +689,Barbaracle,Rock,Water,500,72,105,115,54,86,68,6,False +690,Skrelp,Poison,Water,320,50,60,60,60,60,30,6,False +691,Dragalge,Poison,Dragon,494,65,75,90,97,123,44,6,False +692,Clauncher,Water,,330,50,53,62,58,63,44,6,False +693,Clawitzer,Water,,500,71,73,88,120,89,59,6,False +694,Helioptile,Electric,Normal,289,44,38,33,61,43,70,6,False +695,Heliolisk,Electric,Normal,481,62,55,52,109,94,109,6,False +696,Tyrunt,Rock,Dragon,362,58,89,77,45,45,48,6,False +697,Tyrantrum,Rock,Dragon,521,82,121,119,69,59,71,6,False +698,Amaura,Rock,Ice,362,77,59,50,67,63,46,6,False +699,Aurorus,Rock,Ice,521,123,77,72,99,92,58,6,False +700,Sylveon,Fairy,,525,95,65,65,110,130,60,6,False +701,Hawlucha,Fighting,Flying,500,78,92,75,74,63,118,6,False +702,Dedenne,Electric,Fairy,431,67,58,57,81,67,101,6,False +703,Carbink,Rock,Fairy,500,50,50,150,50,150,50,6,False +704,Goomy,Dragon,,300,45,50,35,55,75,40,6,False +705,Sliggoo,Dragon,,452,68,75,53,83,113,60,6,False +706,Goodra,Dragon,,600,90,100,70,110,150,80,6,False +707,Klefki,Steel,Fairy,470,57,80,91,80,87,75,6,False +708,Phantump,Ghost,Grass,309,43,70,48,50,60,38,6,False +709,Trevenant,Ghost,Grass,474,85,110,76,65,82,56,6,False +710,PumpkabooAverage Size,Ghost,Grass,335,49,66,70,44,55,51,6,False +710,PumpkabooSmall Size,Ghost,Grass,335,44,66,70,44,55,56,6,False +710,PumpkabooLarge Size,Ghost,Grass,335,54,66,70,44,55,46,6,False +710,PumpkabooSuper Size,Ghost,Grass,335,59,66,70,44,55,41,6,False +711,GourgeistAverage Size,Ghost,Grass,494,65,90,122,58,75,84,6,False +711,GourgeistSmall Size,Ghost,Grass,494,55,85,122,58,75,99,6,False +711,GourgeistLarge Size,Ghost,Grass,494,75,95,122,58,75,69,6,False +711,GourgeistSuper Size,Ghost,Grass,494,85,100,122,58,75,54,6,False +712,Bergmite,Ice,,304,55,69,85,32,35,28,6,False +713,Avalugg,Ice,,514,95,117,184,44,46,28,6,False +714,Noibat,Flying,Dragon,245,40,30,35,45,40,55,6,False +715,Noivern,Flying,Dragon,535,85,70,80,97,80,123,6,False +716,Xerneas,Fairy,,680,126,131,95,131,98,99,6,True +717,Yveltal,Dark,Flying,680,126,131,95,131,98,99,6,True +718,Zygarde50% Forme,Dragon,Ground,600,108,100,121,81,95,95,6,True +719,Diancie,Rock,Fairy,600,50,100,150,100,150,50,6,True +719,DiancieMega Diancie,Rock,Fairy,700,50,160,110,160,110,110,6,True +720,HoopaHoopa Confined,Psychic,Ghost,600,80,110,60,150,130,70,6,True +720,HoopaHoopa Unbound,Psychic,Dark,680,80,160,60,170,130,80,6,True +721,Volcanion,Fire,Water,600,80,110,120,130,90,70,6,True \ No newline at end of file diff --git a/materials/python/py_worksheet_inference2/data/tripadvisor_review.csv b/materials/python/py_worksheet_inference2/data/tripadvisor_review.csv new file mode 100644 index 0000000..21676b7 --- /dev/null +++ b/materials/python/py_worksheet_inference2/data/tripadvisor_review.csv @@ -0,0 +1,981 @@ +User ID,Category 1,Category 2,Category 3,Category 4,Category 5,Category 6,Category 7,Category 8,Category 9,Category 10 +User 1,0.93,1.8,2.29,0.62,0.8,2.42,3.19,2.79,1.82,2.42 +User 2,1.02,2.2,2.66,0.64,1.42,3.18,3.21,2.63,1.86,2.32 +User 3,1.22,0.8,0.54,0.53,0.24,1.54,3.18,2.8,1.31,2.5 +User 4,0.45,1.8,0.29,0.57,0.46,1.52,3.18,2.96,1.57,2.86 +User 5,0.51,1.2,1.18,0.57,1.54,2.02,3.18,2.78,1.18,2.54 +User 6,0.99,1.28,0.72,0.27,0.74,1.26,3.17,2.89,1.66,3.66 +User 7,0.9,1.36,0.26,0.32,0.86,1.58,3.17,2.66,1.22,3.22 +User 8,0.74,1.4,0.22,0.41,0.82,1.5,3.17,2.81,1.54,2.88 +User 9,1.12,1.76,1.04,0.64,0.82,2.14,3.18,2.79,1.41,2.54 +User 10,0.7,1.36,0.22,0.26,1.5,1.54,3.17,2.82,2.24,3.12 +User 11,1.47,1,0.7,0.75,1.66,2.76,3.18,2.89,1.66,2.62 +User 12,0.96,2.96,0.29,0.38,0.88,2.08,3.17,2.93,1.66,3.42 +User 13,0.74,1.44,2.75,0.45,0.98,1.74,3.2,2.87,1.38,2.34 +User 14,0.58,1.64,2.27,0.45,1.26,1.72,3.19,2.91,2.3,2.74 +User 15,0.96,1.68,2.29,0.51,1.2,2.84,3.2,2.82,2.02,2.46 +User 16,1.25,2.52,1.76,0.5,1.46,2.08,3.19,2.74,1.41,2.32 +User 17,0.86,1.04,1.76,0.34,0.06,1.1,3.18,2.73,1.15,2.98 +User 18,0.61,1.96,2.49,0.66,1.34,1.78,3.2,3.04,1.15,2.42 +User 19,0.67,1.36,1.36,0.38,0.82,3.38,3.18,2.86,1.79,2.8 +User 20,0.8,1.04,2.1,0.58,1.18,1.98,3.19,2.93,1.22,2.48 +User 21,0.86,1.44,1.12,0.41,1.2,2.18,3.18,2.7,1.06,2.94 +User 22,0.96,1.44,0.14,0.42,1.06,2.08,3.17,2.74,1.15,3.22 +User 23,0.93,1.16,0.29,0.41,1.02,1.36,3.16,2.74,1.34,3.66 +User 24,0.54,1.44,0.3,0.41,1.02,1.46,3.17,2.71,1.73,3.04 +User 25,1.22,0.96,1.15,0.54,1.1,2.02,3.18,2.77,1.92,2.46 +User 26,0.61,2.84,2.8,0.48,0.56,1.52,3.19,2.54,1.6,2.54 +User 27,0.77,1.68,2.24,0.75,1.28,2.64,3.19,2.57,1.34,2.38 +User 28,0.99,1.28,1.22,0.59,0.94,1.9,3.18,2.79,1.22,2.4 +User 29,0.58,1.2,0.18,0.38,0.54,0.76,3.17,2.69,1.63,2.94 +User 30,0.64,1.16,3.12,0.45,1.84,3.16,3.2,2.75,1.54,2.46 +User 31,0.74,1.28,2.14,0.5,0.94,2.26,3.2,2.78,1.5,2.34 +User 32,0.7,2.24,2.32,0.63,0.72,2.12,3.19,2.65,1.28,2.42 +User 33,0.64,2,1.6,0.41,2.08,2.22,3.19,2.8,1.76,2.72 +User 34,1.06,1.12,0.21,0.58,0.98,2.5,3.18,2.9,1.92,2.74 +User 35,0.96,1.16,0.45,0.29,0.98,1.42,3.18,2.94,2.02,3.02 +User 36,0.88,0.96,1.18,0.43,0.74,1.52,3.18,3.01,1.63,2.94 +User 37,0.7,1.28,1.15,0.32,0.4,1.1,3.18,2.78,1.76,2.9 +User 38,1.02,1.36,0.91,0.5,0.72,1.22,3.18,2.91,1.92,3.2 +User 39,0.7,1.52,2.37,0.62,0.86,1.68,3.2,2.86,1.6,2.58 +User 40,1.38,1.08,0.18,0.62,0.14,1.46,3.18,2.88,1.66,2.42 +User 41,0.99,1.24,0.15,0.24,1.38,1.98,3.17,2.61,1.02,3.06 +User 42,0.58,1.48,0.19,0.41,0.5,0.98,3.16,2.74,1.57,3.38 +User 43,0.67,1.24,0.61,0.24,1.06,1.9,3.18,2.82,1.25,2.88 +User 44,1.02,2,0.42,0.56,0.46,2.06,3.18,2.86,2.05,2.66 +User 45,0.64,1.64,0.34,0.62,0.64,2.22,3.18,3.1,1.98,2.8 +User 46,1.7,1.4,0.61,0.39,0.7,1.46,3.17,2.9,1.82,3.38 +User 47,0.38,1.08,0.77,0.34,1.06,1.46,3.18,3.15,2.18,3.22 +User 48,0.9,1.2,1.24,0.35,0.88,1.86,3.18,2.86,1.47,2.94 +User 49,0.45,2.96,0.26,0.4,0.56,1.68,3.18,2.9,1.44,2.72 +User 50,0.61,1.08,2.22,0.65,1.2,2.06,3.19,2.62,1.31,2.34 +User 51,1.02,1.2,0.3,0.38,1.1,1.9,3.17,2.93,1.34,3.42 +User 52,0.42,1.48,2.06,0.48,0.96,1.4,3.18,2.71,1.76,2.86 +User 53,0.8,1.88,0.66,0.47,2.54,2.18,3.18,2.59,1.89,3.02 +User 54,1.02,0.64,1.12,0.51,0.8,1.82,3.18,2.82,1.5,2.56 +User 55,1.02,1.2,0.37,0.58,0.54,1.7,3.17,2.78,1.66,3.42 +User 56,0.61,1.68,0.46,0.37,0.86,1.1,3.17,2.94,1.31,3.12 +User 57,0.8,1.16,2.43,0.54,1.06,2.28,3.19,2.86,1.44,2.48 +User 58,0.93,1.48,0.78,0.39,0.7,1.7,3.18,2.82,1.41,2.88 +User 59,0.64,1.2,2.27,0.64,1.42,2.83,3.2,2.79,1.47,2.38 +User 60,0.83,1.4,1.23,0.64,1.2,2.54,3.18,2.81,1.6,2.54 +User 61,1.06,1.92,3.11,0.55,1.46,3.24,3.2,2.62,1.28,2.34 +User 62,1.98,0.96,0.18,0.45,0.16,0.82,3.18,3.03,1.02,2.78 +User 63,0.9,1.12,0.22,0.45,0.32,1.1,3.18,2.82,2.08,2.96 +User 64,0.51,1.6,0.37,0.42,0.48,1.36,3.18,3.1,1.34,3.04 +User 65,1.41,1.12,0.68,0.37,1.14,1.76,3.18,2.9,1.5,3.01 +User 66,1.47,0.72,0.53,0.62,0.48,1.9,3.18,2.78,1.63,2.88 +User 67,0.99,1.28,2.32,0.43,0.16,1.06,3.18,2.79,1.09,3.34 +User 68,0.93,1,0.61,0.5,0.8,1.52,3.18,2.77,1.28,2.94 +User 69,0.51,1.08,1.92,0.34,1.04,1.3,3.18,2.8,1.09,2.88 +User 70,0.54,1.44,0.72,0.48,0.7,1.36,3.18,2.74,1.5,2.54 +User 71,1.6,0.8,0.38,0.67,0.5,1.5,3.18,2.82,1.28,2.46 +User 72,0.83,1.04,2.94,0.96,0.88,1.86,3.2,2.82,1.25,2.34 +User 73,0.74,2.24,0.14,0.47,1.22,1.88,3.17,2.81,1.98,2.58 +User 74,0.9,1.08,2.48,0.41,0.82,1.78,3.18,2.83,1.41,3.46 +User 75,1.31,1.36,1.47,0.56,0.78,2,3.19,2.86,1.63,2.42 +User 76,0.99,2.96,1.71,0.45,1.36,1.96,3.19,2.69,1.38,2.32 +User 77,1.28,1.12,1.04,0.42,0.7,1.3,3.18,2.81,1.86,3.36 +User 78,0.8,1.76,2.53,0.65,1.04,2.22,3.19,2.79,1.63,2.46 +User 79,0.83,1.08,0.67,0.35,0.54,1.06,3.17,2.78,1.25,3.06 +User 80,0.7,1.04,0.19,0.47,0.78,2.42,3.17,2.7,1.12,2.98 +User 81,2.08,0.92,0.8,0.4,0.54,1.7,3.17,3.07,1.54,3.42 +User 82,0.74,1.32,0.93,0.46,0.66,1.82,3.18,2.83,1.86,2.54 +User 83,0.7,1.52,0.45,1.65,0.32,0.86,3.17,2.62,2.05,3.04 +User 84,1.25,0.92,0.86,0.58,0.66,1.98,3.18,2.88,1.12,2.66 +User 85,1.92,0.28,1.12,0.5,0.88,1.96,3.18,2.96,1.86,2.58 +User 86,0.74,1.84,0.24,0.34,0.8,1.66,3.17,2.87,1.5,3.34 +User 87,0.7,0.76,0.72,1.1,0.42,1.54,3.18,2.69,1.41,2.56 +User 88,0.64,1.08,0.19,0.39,0.5,0.9,3.17,2.79,1.18,3.12 +User 89,0.64,2.36,0.14,1.68,1.02,1.76,3.18,2.71,1.22,2.42 +User 90,0.67,2.08,1.04,0.54,0.74,1.64,3.18,2.86,1.57,2.64 +User 91,1.38,1.12,0.72,0.53,0.88,1.36,3.18,2.81,1.79,3.26 +User 92,0.56,1.16,0.13,0.49,0.54,0.9,3.17,2.91,1.54,2.64 +User 93,1.1,2.04,2.45,0.54,1.44,2.28,3.19,2.74,1.63,2.42 +User 94,0.64,1.2,2.27,0.64,1.42,2.83,3.2,2.79,1.47,2.38 +User 95,0.99,2,2.13,0.64,1.82,2.6,3.19,2.67,1.5,2.46 +User 96,1.12,0.96,0.3,0.46,0.56,1.92,3.18,2.98,1.22,2.94 +User 97,0.9,1.44,2.34,0.55,0.94,2.14,3.19,2.79,1.79,2.82 +User 98,0.9,0.56,1.38,0.37,0.8,1.9,3.18,2.91,1.41,2.54 +User 99,1.02,0.88,2.67,0.53,1.02,1.78,3.19,2.86,2.14,2.78 +User 100,0.67,1.6,0.21,0.47,2.16,1.96,3.17,2.86,3.04,3.1 +User 101,0.9,0.96,0.38,0.5,0.78,2.1,3.18,2.9,1.79,2.82 +User 102,0.64,1.12,0.4,0.37,0.64,1.12,3.18,2.94,1.76,3.06 +User 103,0.99,2.12,1.41,0.65,0.96,2.94,3.19,2.82,1.41,2.42 +User 104,0.88,1.2,0.16,0.45,0.5,1,3.18,2.67,1.79,2.86 +User 105,1.47,0.84,0.64,0.39,0.32,1.18,3.17,2.9,1.73,3.46 +User 106,0.86,0.88,2.85,0.39,0.42,1.54,3.2,2.73,1.7,2.46 +User 107,1.07,0.56,0.93,0.53,1.3,2.62,3.18,2.94,2.27,2.74 +User 108,0.99,1.2,0.38,0.43,0.8,1.1,3.16,2.74,1.15,3.42 +User 109,1.76,0.04,0.43,0.39,1.5,1.62,3.17,2.8,0.96,3.18 +User 110,0.8,2.16,1.12,0.53,1.54,2.34,3.18,2.83,2.24,2.78 +User 111,0.9,1.8,1.25,0.67,0.86,1.86,3.19,2.96,2.46,2.98 +User 112,0.9,1.08,1.65,0.34,0.7,1.44,3.18,2.85,1.15,2.86 +User 113,0.9,1.84,0.51,0.66,1.04,1.78,3.18,2.79,1.86,2.54 +User 114,0.35,1.36,1.41,0.49,1.1,1.5,3.18,3.04,1.28,2.48 +User 115,0.83,1.04,2.94,0.96,0.88,1.86,3.2,2.82,1.25,2.34 +User 116,1.15,1.28,0.18,0.61,0.7,2.3,3.18,3.01,1.73,2.34 +User 117,0.64,1.72,1.25,0.51,0.72,2.04,3.19,2.83,1.76,2.4 +User 118,0.61,1.32,0.78,0.54,1.12,1.74,3.18,2.78,1.79,2.94 +User 119,0.54,1.2,1.17,0.45,1.04,1.38,3.18,2.58,1.82,2.94 +User 120,1.06,1.6,1.1,0.43,0.86,1.84,3.18,2.7,0.96,3.18 +User 121,0.86,1.96,1.25,0.56,1.66,2.9,3.18,2.82,1.44,2.5 +User 122,0.77,1.04,0.26,0.66,1.42,2,3.18,2.82,1.6,2.64 +User 123,0.93,2.68,1.3,0.42,1.42,2.22,3.19,2.58,1.31,2.38 +User 124,1.98,0.48,0.75,0.69,0.88,2.62,3.18,2.86,1.54,2.38 +User 125,0.74,1.52,1.38,0.59,1.1,2,3.18,2.72,1.47,2.74 +User 126,0.64,1.36,0.19,0.46,0.78,1.58,3.18,2.79,1.31,2.82 +User 127,0.51,1.44,0.42,0.33,0.74,1.3,3.18,2.77,1.18,2.98 +User 128,1.06,1.68,1.02,0.66,0.72,2.02,3.18,2.81,1.41,2.56 +User 129,1.09,1.48,0.99,0.35,1.12,1.78,3.17,2.89,1.31,3.34 +User 130,0.54,1.2,0.45,0.39,0.88,1.66,3.18,2.7,1.57,2.78 +User 131,0.9,0.88,1.52,0.46,0.8,1.48,3.18,2.71,0.99,2.88 +User 132,0.83,1.68,1.14,0.51,1.66,2.78,3.18,2.85,1.7,2.54 +User 133,0.93,1.64,1.73,0.55,1.46,1.98,3.18,2.74,1.89,2.94 +User 134,0.38,1.28,1.54,0.62,1.7,2.16,3.18,3.02,1.31,2.5 +User 135,0.51,1.64,0.27,0.3,0.78,1.86,3.17,2.69,2.5,3.34 +User 136,0.8,0.96,0.73,0.61,1.1,2.82,3.18,2.99,2.14,2.54 +User 137,1.15,1.72,1.62,0.61,0.78,1.94,3.19,3.02,1.47,2.54 +User 138,0.51,1.16,1.66,0.53,1.58,1.9,3.18,2.85,1.28,2.88 +User 139,0.96,1.4,0.74,0.37,0.86,1.98,3.18,2.8,1.44,3.06 +User 140,1.09,1.32,0.74,0.39,0.5,1.06,3.18,3.01,1.86,3.2 +User 141,0.74,1.28,0.26,0.3,1.14,1.96,3.17,2.93,1.73,3.34 +User 142,0.8,1.12,0.19,0.46,0.82,1.48,3.18,2.82,1.7,2.96 +User 143,0.86,1.96,0.61,0.42,1.22,1.86,3.17,2.7,1.22,3.1 +User 144,0.61,1.04,0.34,0.45,0.22,1.9,3.18,2.71,2.37,2.62 +User 145,0.9,1.4,0.19,0.59,1.04,1.88,3.17,3.06,2.21,3.02 +User 146,0.96,2.96,0.29,0.38,0.88,2.08,3.17,2.93,1.66,3.42 +User 147,1.09,0.6,0.19,0.61,1.62,2.44,3.18,2.74,1.38,2.46 +User 148,0.8,1.24,1.98,0.67,1.38,2.42,3.19,3.12,1.5,2.62 +User 149,0.86,1.28,1.01,0.55,1.26,2.12,3.18,2.86,1.92,2.94 +User 150,0.77,1.52,1.33,0.51,1.34,2.46,3.18,2.8,1.6,2.54 +User 151,1.18,1.12,1.01,0.39,1.2,2.02,3.18,2.93,1.47,3.1 +User 152,0.74,1.64,0.18,0.55,0.94,2,3.18,2.74,1.5,2.98 +User 153,0.64,1.6,0.21,0.54,0.62,1.22,3.18,2.85,1.44,2.66 +User 154,0.64,1.56,0.22,0.57,0.5,2.02,3.18,2.66,1.34,2.78 +User 155,1.09,1.44,0.22,0.37,0.34,1.94,3.18,2.73,1.66,2.62 +User 156,1.02,1.16,1.22,0.29,0.94,1.66,3.18,2.8,2.08,3.42 +User 157,0.9,1.64,0.32,0.5,1.34,2.02,3.18,3.06,1.57,2.86 +User 158,2.05,1.12,0.7,0.37,0.5,1.04,3.17,2.77,1.98,3.44 +User 159,1.18,2.04,1.89,0.5,1.66,2.18,3.19,2.83,1.41,2.34 +User 160,1.06,1.76,1.02,0.27,0.24,1.16,3.18,2.63,1.28,3.36 +User 161,0.58,1.12,1.57,0.45,0.78,1.5,3.18,2.77,1.44,2.9 +User 162,1.15,1.08,0.51,0.37,0.34,0.98,3.17,2.58,2.21,3.36 +User 163,0.9,1.84,0.51,0.66,1.04,1.78,3.18,2.79,1.86,2.54 +User 164,0.7,1.28,0.93,0.47,0.54,1.58,3.18,2.82,1.76,2.98 +User 165,0.8,1.16,1.09,0.23,0.82,1.5,3.18,2.78,0.93,2.88 +User 166,0.9,1.64,0.21,0.5,0.3,1.68,3.18,2.91,1.44,2.74 +User 167,0.7,0.8,2.56,0.5,1.1,1.5,3.19,2.86,1.47,2.38 +User 168,0.61,1.04,0.83,0.46,0.82,1.86,3.18,2.9,2.18,2.54 +User 169,0.67,2.04,2.82,0.51,0.9,1.66,3.2,2.85,1.5,2.34 +User 170,0.7,1.28,1.49,0.46,0.58,1.46,3.18,2.97,1.73,2.86 +User 171,0.93,1.16,0.26,0.51,1.42,2.4,3.18,2.97,2.18,2.8 +User 172,1.9,0.4,0.45,0.48,0.7,1.06,3.18,2.98,1.22,2.48 +User 173,0.74,1.96,0.14,0.65,0.4,0.98,3.18,2.73,1.22,2.78 +User 174,1.06,1.28,0.22,0.49,0.74,1.24,3.17,2.94,1.6,3.28 +User 175,0.96,1.08,0.8,0.66,0.72,2.02,3.18,2.86,1.57,3.26 +User 176,0.42,1.88,0.26,1.05,1.06,2.1,3.18,2.86,1.15,2.62 +User 177,1.02,1.16,0.78,0.41,1.1,2,3.18,3.01,1.38,3.26 +User 178,0.99,1.08,0.93,0.41,0.62,1.46,3.18,2.97,1.73,2.94 +User 179,0.7,0.96,0.22,0.47,0.46,2.12,3.18,2.89,1.7,2.98 +User 180,0.77,1.24,0.21,0.54,0.88,1.42,3.18,2.86,1.76,2.88 +User 181,0.58,1.44,0.19,0.53,0.24,0.94,3.18,3.29,2.18,2.9 +User 182,0.8,1.2,1.25,0.43,1.78,2.62,3.18,2.75,1.6,2.7 +User 183,1.28,1.48,1.42,0.61,0.96,1.98,3.18,2.81,1.6,2.48 +User 184,1.38,1.12,1.8,0.37,0.82,1.16,3.18,2.69,1.22,3.3 +User 185,1.06,1.04,2.5,0.56,1.78,2.8,3.2,2.72,2.18,2.54 +User 186,0.96,1.2,0.36,0.43,0.22,2.8,3.18,2.85,1.98,2.64 +User 187,0.58,1.12,0.27,0.47,1.42,2.14,3.18,2.78,1.44,2.72 +User 188,1.41,1.32,0.19,0.56,0.32,1.56,3.18,3.07,1.41,3.06 +User 189,1.02,1.04,1.33,0.61,0.86,2.4,3.19,2.89,1.63,2.46 +User 190,0.93,0.6,0.18,0.33,0.32,1.1,3.17,2.94,1.28,3.04 +User 191,0.51,1.08,2.48,0.57,0.66,1.8,3.19,2.58,1.38,2.32 +User 192,0.83,1.32,1.89,0.65,1.28,1.7,3.19,2.75,1.76,2.66 +User 193,1.7,0.64,0.43,0.41,0.9,1.7,3.16,2.85,1.7,3.52 +User 194,0.9,1.56,0.22,0.35,1.26,1.96,3.16,2.74,2.05,3.44 +User 195,0.34,1.16,0.18,0.4,1.18,1.86,3.18,2.82,1.76,2.86 +User 196,0.8,1,0.22,0.34,0.94,1.4,3.17,2.94,1.41,2.96 +User 197,0.7,1.04,1.41,0.31,0.62,1.5,3.18,2.65,1.31,3.04 +User 198,1.28,0.68,2.06,0.38,1.58,2.48,3.19,2.74,1.57,2.5 +User 199,0.64,1.48,0.99,0.31,0.64,1.3,3.18,3.01,1.57,3.26 +User 200,1.25,2.16,0.22,1.79,0.9,1.76,3.18,2.77,1.7,2.4 +User 201,1.06,1.28,2.5,0.62,1.66,3.02,3.19,2.89,1.79,2.78 +User 202,1.12,1.56,0.38,0.55,0.66,2.1,3.18,2.85,1.73,2.96 +User 203,0.7,0.92,2.77,0.54,0.98,1.58,3.2,2.74,1.47,2.34 +User 204,1.06,1.12,0.22,0.39,0.7,1.46,3.18,2.91,1.82,2.82 +User 205,0.83,0.88,0.82,0.42,0.62,1.74,3.18,2.93,1.02,2.7 +User 206,0.99,2.08,0.27,0.33,0.14,0.82,3.18,2.73,1.38,2.78 +User 207,0.99,1.28,0.19,0.27,0.54,2.22,3.18,2.71,1.73,2.62 +User 208,0.8,0.84,0.24,0.5,0.56,1.44,3.18,2.94,1.89,2.94 +User 209,0.77,0.88,1.71,0.48,0.7,1.08,3.18,2.54,1.15,2.58 +User 210,1.06,1.12,0.98,0.21,1.1,1.38,3.17,2.88,1.02,3.26 +User 211,0.54,1.44,1.31,0.32,1.18,1.48,3.18,2.79,1.31,3.3 +User 212,0.93,1.36,1.94,0.34,0.9,2.36,3.19,2.78,1.5,2.82 +User 213,0.83,2.04,0.42,0.51,0.7,2.12,3.18,2.66,1.6,2.98 +User 214,0.51,1.32,0.24,0.38,0.42,1.3,3.18,2.79,1.34,2.58 +User 215,0.61,1.56,0.16,0.37,0.38,0.94,3.17,2.94,1.22,3.46 +User 216,0.7,1.28,1.66,0.49,1.68,2.68,3.19,2.77,1.7,2.54 +User 217,0.61,1.52,0.18,0.26,0.8,1.4,3.17,2.77,1.22,3.04 +User 218,0.9,1.2,0.5,0.45,0.64,1.54,3.18,2.71,1.38,2.3 +User 219,1.02,0.72,1.2,0.47,1.9,2.98,3.18,2.79,1.31,2.38 +User 220,0.9,0.88,2.05,0.45,1.36,2,3.18,2.87,1.38,2.86 +User 221,0.77,1.08,0.29,0.58,1.38,2.54,3.18,2.87,1.6,2.88 +User 222,1.25,1.12,1.47,0.41,0.26,1.22,3.18,2.73,1.12,3.22 +User 223,1.15,2.32,2.4,0.5,1.12,1.54,3.19,2.8,1.63,2.4 +User 224,0.93,1.32,0.14,0.47,0.54,1.56,3.17,2.86,1.6,3.04 +User 225,0.61,1.2,2.05,0.61,1.3,3.06,3.19,2.79,1.57,2.42 +User 226,1.02,1.96,0.27,0.35,1.18,1.46,3.17,2.73,1.47,3.34 +User 227,0.9,2.24,0.27,1.78,1.3,1.42,3.18,2.75,1.18,2.46 +User 228,0.67,1.2,1.39,0.41,1.26,1.7,3.18,2.82,1.25,2.82 +User 229,0.54,2.96,0.58,0.57,0.78,1.7,3.18,2.91,1.28,3.3 +User 230,0.61,1.04,1.98,0.55,1.34,1.96,3.19,2.94,1.15,2.38 +User 231,0.61,1,0.22,0.58,1.1,1.42,3.18,3.14,2.11,2.8 +User 232,0.58,1.44,2.1,0.64,1.92,2.18,3.2,3.04,1.12,2.42 +User 233,0.83,1.96,0.51,0.31,0.74,1.16,3.18,2.7,1.02,3.02 +User 234,0.48,1.96,0.24,0.35,0.46,1.62,3.18,2.7,1.28,2.74 +User 235,0.61,0.84,0.15,0.38,2.38,2.12,3.18,2.97,1.34,2.14 +User 236,0.34,1.16,0.18,0.4,1.18,1.86,3.18,2.82,1.76,2.86 +User 237,1.41,1.08,1.34,0.65,1.6,2.14,3.18,2.81,1.15,3.14 +User 238,0.58,1.84,0.22,0.73,0.98,2.14,3.18,2.99,1.44,2.96 +User 239,0.96,0.88,1.02,0.64,1.18,2.24,3.18,2.78,1.12,2.7 +User 240,2.08,0.48,0.18,0.15,0.1,0.14,3.18,2.95,1.15,3.6 +User 241,0.7,0.92,2.77,0.54,0.98,1.58,3.2,2.74,1.47,2.34 +User 242,1.25,2.48,1.76,0.54,1.76,2.38,3.19,2.81,1.6,2.32 +User 243,0.74,1.6,1.2,0.56,0.32,1.02,3.19,2.72,2.69,2.58 +User 244,0.74,1.84,1.02,0.41,0.46,1.14,3.18,2.75,2.5,3.12 +User 245,0.83,1.56,0.22,0.23,0.32,0.88,3.17,2.89,2.4,3.02 +User 246,0.64,1.2,0.98,0.42,0.82,1.6,3.18,2.88,1.63,2.88 +User 247,1.33,0.52,0.22,0.46,0.3,0.86,3.18,2.93,1.66,2.8 +User 248,1.5,1.96,2.08,2.73,1.12,2.94,3.2,2.63,1.63,2.46 +User 249,0.96,0.64,0.67,0.33,0.98,1.34,3.17,2.94,1.15,3.14 +User 250,0.34,1.16,0.18,0.4,1.18,1.86,3.18,2.82,1.76,2.86 +User 251,0.51,1,1.57,0.56,1.58,1.82,3.18,2.81,1.22,2.66 +User 252,0.67,1.16,0.26,0.39,0.78,1.58,3.18,2.94,1.6,2.94 +User 253,0.51,1.28,2,0.4,0.48,2.08,3.19,2.56,1.15,2.4 +User 254,0.58,1.2,2.05,0.71,0.5,2.28,3.19,2.66,1.66,2.4 +User 255,0.61,2.4,0.64,0.42,0.16,1.62,3.18,2.59,1.89,2.78 +User 256,1.09,1.76,0.67,0.54,1.36,1.92,3.17,2.67,2.43,3.28 +User 257,0.9,0.88,0.29,0.39,0.86,1.54,3.17,2.98,1.41,3.36 +User 258,0.93,1.96,0.22,1.62,1.38,1.98,3.18,2.74,1.57,2.4 +User 259,2.22,0.24,1.09,0.48,0.24,1.12,3.18,3.06,1.41,2.72 +User 260,0.61,1.32,1.62,0.72,1.68,1.78,3.18,2.54,1.31,2.42 +User 261,0.77,0.72,1.07,0.53,0.88,2.14,3.19,2.85,1.79,2.62 +User 262,0.96,1.44,1.09,0.63,1.18,3.12,3.19,3.1,2.05,2.72 +User 263,1.58,0.88,0.29,0.53,0.82,1.86,3.18,3.02,1.73,2.78 +User 264,0.61,1.72,1.74,0.51,1.42,2.06,3.19,3.13,2.46,2.78 +User 265,1.06,1.2,0.48,0.41,0.8,1.66,3.17,2.94,1.28,3.5 +User 266,1.22,1.36,1.33,0.59,1.18,2.24,3.19,2.77,1.66,2.46 +User 267,1.12,1.16,2.3,0.5,1.44,2.36,3.2,2.82,1.86,2.38 +User 268,1.09,1.96,1.17,0.59,0.8,1.94,3.19,2.82,1.95,2.72 +User 269,0.45,1.4,0.22,0.45,0.64,1.7,3.18,2.64,2.18,2.78 +User 270,0.77,1.52,1.28,0.48,1.5,2.5,3.18,2.86,1.47,2.46 +User 271,0.8,1.64,0.29,0.42,1.38,2.2,3.17,2.93,1.25,3.26 +User 272,0.58,1.28,1.15,0.54,0.46,1.46,3.18,3.04,1.41,2.78 +User 273,0.7,1.12,1.92,0.64,1.82,1.9,3.19,2.66,0.96,2.46 +User 274,0.77,1.6,2.86,0.56,1.34,2.46,3.2,2.97,1.34,2.56 +User 275,1.15,1.76,1.33,2.91,0.74,1.9,3.18,2.78,1.38,2.72 +User 276,0.93,1,0.22,0.38,0.8,1.52,3.16,2.74,1.38,3.52 +User 277,0.83,1.68,1.55,0.5,0.8,1.86,3.18,2.82,1.5,2.42 +User 278,0.83,1.24,0.38,0.49,1.54,2.38,3.18,3.04,2.18,2.82 +User 279,1.12,1.56,0.14,0.48,0.4,0.82,3.18,2.63,0.9,2.78 +User 280,0.99,0.36,0.22,0.46,1.5,1.94,3.18,2.83,1.47,2.66 +User 281,1.15,1.28,1.68,0.51,0.94,1.8,3.18,2.74,1.06,3.1 +User 282,0.51,1.2,1.07,0.49,1.14,2.04,3.18,3.22,1.47,2.82 +User 283,0.58,1.84,2.18,0.59,1.02,1.58,3.19,2.8,1.6,2.66 +User 284,0.74,1.28,1.36,0.66,1.26,2.48,3.18,2.83,1.28,2.64 +User 285,0.9,1.52,0.32,0.59,0.62,2.08,3.17,2.78,1.66,2.96 +User 286,0.51,1.44,0.26,0.48,0.34,0.82,3.18,2.86,1.73,2.88 +User 287,0.93,1.76,0.58,2.25,2,2.44,3.18,2.67,1.22,2.42 +User 288,0.77,1.96,0.93,0.61,0.66,1.6,3.18,2.67,3.14,2.8 +User 289,1.18,1.2,0.99,0.46,1.3,1.86,3.17,2.82,0.86,3.62 +User 290,0.96,1.32,0.56,0.42,0.98,2.06,3.17,2.82,1.18,3.3 +User 291,1.09,1.12,2.35,0.54,1.3,2.64,3.19,2.87,1.47,2.54 +User 292,1.09,1.16,0.35,0.41,0.66,1.34,3.17,2.72,1.41,3.14 +User 293,0.67,1.52,0.35,0.3,1.06,1.38,3.18,2.89,1.28,2.96 +User 294,0.77,0.76,0.8,0.49,0.46,1.34,3.18,3.26,1.82,2.66 +User 295,0.58,1.2,0.18,0.38,0.54,0.76,3.17,2.69,1.63,2.94 +User 296,0.67,0.84,0.82,1.11,0.56,1.4,3.18,2.73,1.47,2.56 +User 297,0.7,1.28,0.26,0.51,1.06,1.6,3.18,2.65,1.41,2.8 +User 298,0.77,1.16,1.62,0.57,0.56,1.4,3.18,2.78,1.12,2.54 +User 299,1.79,0.88,1.42,0.39,0.72,1.78,3.19,2.85,1.63,2.42 +User 300,0.8,1.92,0.35,0.48,0.74,2.18,3.19,2.83,1.89,2.58 +User 301,0.61,1.12,0.22,0.53,0.58,1.2,3.17,2.82,1.63,3.12 +User 302,0.42,1.16,2.22,0.64,0.88,1.26,3.19,2.82,1.25,2.5 +User 303,0.74,0.96,2.27,0.61,0.5,1.26,3.19,2.82,1.6,2.56 +User 304,0.61,1.4,0.27,0.41,0.88,1.34,3.18,2.86,1.73,2.88 +User 305,1.02,1.04,1.97,0.5,0.64,2.74,3.18,2.77,1.86,2.64 +User 306,0.83,1.64,0.35,0.56,0.78,1.48,3.18,2.63,1.41,2.66 +User 307,1.02,1.28,0.77,0.47,1.06,2.48,3.18,2.86,1.73,2.94 +User 308,0.7,1.48,2.43,0.58,1.82,2.38,3.2,3.02,2.72,2.48 +User 309,1.55,0,0.24,0.74,0.22,1.38,3.18,3.22,1.28,2.58 +User 310,0.51,1.2,2.19,0.64,0.88,2.24,3.19,2.58,1.41,2.32 +User 311,0.51,1.76,0.22,0.49,0.66,1.46,3.18,2.77,2.4,2.74 +User 312,0.54,1.52,0.24,0.37,0.74,1.5,3.18,2.89,1.76,3.04 +User 313,0.38,1.16,1.65,0.45,1.1,1.3,3.18,2.83,1.22,2.62 +User 314,0.77,1.48,1.19,0.49,1.58,2.5,3.18,2.85,1.6,2.5 +User 315,0.58,1.8,0.7,0.53,1.52,2.22,3.18,2.78,1.98,2.98 +User 316,1.09,0.76,0.93,0.47,0.58,1.94,3.18,2.8,2.02,2.64 +User 317,0.96,1.32,2.05,0.47,1.6,2.24,3.19,2.75,1.79,2.62 +User 318,0.67,1.28,0.14,0.43,1.02,1.62,3.17,2.88,1.47,2.82 +User 319,0.74,1,2.77,0.53,0.4,1.46,3.19,2.8,1.34,2.46 +User 320,0.93,1.2,0.18,0.25,0.54,1.46,3.16,2.97,1.22,3.42 +User 321,1.02,1,0.27,0.39,0.98,1.82,3.18,3.09,1.6,2.88 +User 322,1.09,1,0.77,0.43,0.42,1.62,3.18,2.98,2.27,3.36 +User 323,3.22,1.84,0.22,0.53,0.9,2.46,3.19,2.69,1.57,2.72 +User 324,0.48,1.16,0.21,0.33,0.26,0.86,3.18,2.98,1.25,2.7 +User 325,0.45,1.2,0.86,0.51,0.7,1.4,3.18,2.95,1.44,2.48 +User 326,0.96,0.88,1.63,0.56,1.52,2.54,3.19,2.74,1.28,2.48 +User 327,0.54,1.6,2.33,0.54,1.26,2.08,3.2,2.97,2.5,2.42 +User 328,0.86,1.72,1.2,0.56,1.74,3.24,3.18,2.78,1.5,2.4 +User 329,1.41,1.96,1.23,0.51,0.42,2.26,3.18,2.77,1.18,2.32 +User 330,0.8,1.16,1.2,0.56,1.02,2.1,3.19,3.05,1.22,2.56 +User 331,0.74,1.44,0.24,0.34,1.98,1.62,3.17,2.88,3.17,3.22 +User 332,0.67,1.36,1.9,0.45,1.46,1.86,3.18,2.69,0.99,2.74 +User 333,1.47,0.72,0.53,0.62,0.48,1.9,3.18,2.78,1.63,2.88 +User 334,0.7,0.76,0.18,0.73,0.96,2.54,3.18,2.71,1.6,2.54 +User 335,0.74,1.84,0.16,0.62,0.24,0.96,3.18,2.62,1.57,2.42 +User 336,0.74,1.08,1.57,0.63,1.98,1.78,3.18,2.81,1.28,2.72 +User 337,0.48,1.88,1.82,0.4,1.3,1.7,3.18,2.7,1.09,2.8 +User 338,0.38,1.32,0.46,0.5,0.56,0.98,3.17,2.82,1.02,3.44 +User 339,0.77,1.36,0.43,0.54,1.72,2.91,3.18,2.94,1.86,2.58 +User 340,1.57,1.28,0.83,0.49,0.48,1.38,3.18,2.88,1.44,2.86 +User 341,0.77,2.2,1.3,0.46,1.78,2.88,3.18,2.88,1.6,2.46 +User 342,0.64,1.52,1.89,0.63,1.36,2.26,3.2,2.97,2.62,2.38 +User 343,0.99,1.52,1.68,0.35,1.42,1.86,3.18,2.97,1.47,3.12 +User 344,1.25,1.24,2.3,0.49,0.74,2.16,3.2,2.82,1.73,2.42 +User 345,0.7,0.96,0.74,0.5,1.04,2.12,3.18,2.66,0.9,3.06 +User 346,0.58,1.2,0.16,0.35,0.62,0.98,3.17,2.87,1.66,3.02 +User 347,0.93,1.88,0.48,0.59,1.26,1.94,3.18,2.93,2.4,2.66 +User 348,0.54,1.32,0.96,0.41,0.8,1.48,3.18,2.95,1.86,2.7 +User 349,0.67,1.08,2.9,0.48,1.1,1.94,3.2,2.94,1.15,2.32 +User 350,0.8,1.12,2.3,0.63,1.46,2.74,3.19,2.78,1.22,2.4 +User 351,1.57,0.92,1.06,0.39,0.16,2.1,3.18,2.71,1.54,2.98 +User 352,0.99,1.12,0.24,0.42,0.32,1.58,3.18,2.95,1.63,2.78 +User 353,1.18,0.88,1.33,0.29,0.96,2.88,3.19,2.96,1.92,2.56 +User 354,0.58,0.88,0.88,0.42,0.26,1.14,3.18,3.07,1.41,3.26 +User 355,0.83,1.48,0.88,0.29,0.82,1.4,3.17,2.72,1.06,3.36 +User 356,0.86,1.04,0.56,0.81,0.7,0.92,3.17,2.75,1.22,3.06 +User 357,0.54,1.36,0.24,1.04,1.12,1.8,3.18,2.89,1.57,2.56 +User 358,1.09,1.36,2.02,0.55,0.18,0.54,3.18,2.83,1.28,3.12 +User 359,0.67,0.96,0.37,0.54,1.6,2.52,3.18,3.25,2.3,2.7 +User 360,1.76,1.2,1.3,0.3,0.38,0.94,3.18,2.62,1.15,3.14 +User 361,0.58,1.48,0.19,0.56,0.16,1.26,3.18,2.82,1.66,2.7 +User 362,1.09,1.6,1.3,0.53,1.82,2.26,3.18,2.8,1.6,2.54 +User 363,0.99,2,2.13,0.64,1.82,2.6,3.19,2.67,1.5,2.46 +User 364,0.83,1.16,0.16,0.37,0.72,1.28,3.17,3.01,1.41,3.28 +User 365,0.46,1.96,0.86,0.55,1.44,2.18,3.18,3.17,1.41,2.88 +User 366,1.12,2.12,1.62,0.61,0.98,2.02,3.19,2.73,1.28,2.5 +User 367,1.31,0.88,0.77,0.59,1.3,1.9,3.18,2.79,1.98,2.46 +User 368,0.74,1,0.22,0.56,1.14,1.88,3.18,3.04,1.73,2.72 +User 369,0.93,1,1.7,0.45,0.86,1.6,3.18,2.94,1.09,2.7 +User 370,0.58,1.2,0.19,0.53,1.3,2.66,3.18,2.7,1.22,2.48 +User 371,1.02,0.92,1.54,0.3,0.7,1.58,3.18,2.82,1.7,3.26 +User 372,0.35,1.36,2.25,0.46,1.1,1.52,3.19,2.73,1.89,2.94 +User 373,1.47,1.04,1.01,1.68,1.3,2.12,3.18,2.79,1.5,2.66 +User 374,1.79,1.04,1.74,0.69,1.46,2.58,3.19,2.86,1.41,2.5 +User 375,0.74,1.24,0.72,0.53,1.12,1.66,3.18,2.94,2.05,2.88 +User 376,0.9,1.84,2.46,0.67,0.86,2.36,3.2,2.9,1.86,2.4 +User 377,1.41,0.96,1.94,0.64,1.82,2.8,3.19,2.71,1.6,2.54 +User 378,0.7,2.96,0.43,0.5,1.12,1.92,3.17,2.94,1.31,3.26 +User 379,0.77,0.96,0.29,0.54,0.78,1.22,3.18,2.94,1.38,2.64 +User 380,0.48,1.68,0.27,0.51,1.3,2.06,3.18,2.66,1.92,2.78 +User 381,0.67,1.48,0.51,0.24,0.54,1.06,3.17,3.02,1.5,3.2 +User 382,0.64,1.6,0.3,0.17,0.54,1.3,3.17,2.99,1.76,3.22 +User 383,0.86,1.6,0.19,0.87,1.12,1.66,3.18,2.95,1.5,2.7 +User 384,0.83,2,1.82,0.33,0.66,1.24,3.18,2.87,1.57,2.8 +User 385,0.64,1.2,0.14,0.22,0.1,0.38,3.17,2.85,1.15,3.2 +User 386,0.8,1.48,2.16,0.69,1.38,2.56,3.19,2.66,1.41,2.42 +User 387,0.8,2,1.22,0.54,1.44,2.46,3.18,2.82,1.44,2.46 +User 388,1.06,0.84,0.16,0.61,1.04,1.98,3.18,2.78,1.44,2.5 +User 389,0.8,1.48,0.42,0.57,0.64,1.76,3.18,2.7,1.7,2.98 +User 390,0.64,1.76,0.16,0.65,0.64,1.48,3.18,2.74,1.02,2.98 +User 391,0.8,1.96,1.44,0.5,0.82,2.46,3.19,2.97,1.57,2.66 +User 392,0.83,1.24,0.58,0.29,0.58,1.34,3.17,2.66,1.5,3.22 +User 393,0.96,1.96,1.31,0.63,1.3,2.5,3.19,3.13,1.86,2.58 +User 394,0.86,0.96,0.19,0.5,0.54,1.36,3.18,2.91,1.34,2.9 +User 395,1.76,0.56,1.33,0.37,0.94,2.18,3.18,3.14,1.63,3.34 +User 396,0.74,1.4,1.65,0.48,1.44,1.86,3.19,2.87,1.5,2.46 +User 397,1.15,1.4,1.38,0.43,0.98,1.66,3.18,2.66,1.02,3.3 +User 398,1.57,1.96,1.12,0.49,0.78,1.98,3.18,2.86,1.06,2.66 +User 399,0.74,1.16,0.5,0.26,0.5,1.18,3.17,2.89,1.63,2.98 +User 400,0.77,1.64,1.39,0.41,0.78,1.98,3.18,2.86,1.98,2.64 +User 401,0.9,1.04,0.27,0.48,0.9,1.74,3.18,3.05,1.6,2.86 +User 402,0.77,1.12,1.84,0.57,0.9,2.18,3.19,2.94,1.44,2.54 +User 403,0.8,1.16,0.18,0.78,1.04,1.66,3.18,2.97,1.86,2.94 +User 404,0.45,1.52,0.16,0.47,0.58,1.08,3.17,2.7,1.73,3.04 +User 405,0.96,1.96,1.97,0.56,1.34,1.92,3.19,2.74,1.82,2.72 +User 406,1.06,1.76,1.42,0.63,1.38,2.18,3.18,2.75,1.54,2.56 +User 407,0.64,1.08,1.74,0.43,0.78,1.74,3.18,2.77,1.41,2.8 +User 408,0.8,1.12,2.3,0.63,1.46,2.74,3.19,2.78,1.22,2.4 +User 409,1.18,2.8,1.94,0.45,0.56,2.1,3.19,2.66,2.34,2.48 +User 410,0.64,1.72,2.4,0.61,1.6,2.46,3.2,2.91,2.53,2.34 +User 411,0.7,1.24,1.01,0.33,1.1,1.74,3.18,2.74,1.57,2.88 +User 412,0.96,1.88,0.22,0.56,1.34,2.5,3.18,2.83,1.44,2.54 +User 413,0.74,2.72,1.76,0.54,0.98,1.78,3.19,2.66,1.22,2.34 +User 414,1.44,2.6,1.55,0.91,0.3,2.12,3.18,2.7,1.54,2.5 +User 415,0.9,1.24,0.34,0.53,0.74,2.78,3.18,2.87,2.05,2.62 +User 416,0.58,1.24,2.77,0.63,0.86,2.62,3.2,2.78,1.47,2.4 +User 417,0.77,1.8,0.61,0.31,0.56,1.7,3.18,3.15,1.57,2.98 +User 418,0.86,1.48,0.14,0.29,0.3,0.66,3.16,2.93,1.06,3.5 +User 419,0.64,1.24,0.26,0.43,0.9,1.54,3.17,2.89,1.25,3.2 +User 420,1.39,1.52,1.47,0.66,1.76,3.24,3.19,2.87,1.73,2.42 +User 421,0.8,1.56,3.03,0.43,1.12,2.06,3.2,2.64,1.5,2.4 +User 422,1.12,1,0.9,0.37,0.62,1.6,3.18,2.61,2.11,2.74 +User 423,0.51,2.92,0.16,1.58,1.54,2,3.18,2.74,0.96,2.46 +User 424,0.64,1.6,0.24,0.42,0.94,1.42,3.18,3.07,1.6,3.04 +User 425,0.64,1.6,1.23,0.37,1.36,2.34,3.18,2.86,0.86,3.04 +User 426,1.97,0.4,0.22,0.78,0.66,2.06,3.18,2.85,1.54,2.58 +User 427,1.02,2.48,1.7,0.41,1.5,2.04,3.19,2.78,1.41,2.38 +User 428,0.7,1.28,0.35,0.32,0.96,1.22,3.17,2.9,1.89,3.18 +User 429,0.9,1.32,0.19,0.45,0.42,1.3,3.17,2.73,1.25,3.12 +User 430,1.02,1.2,0.3,0.38,1.1,1.9,3.17,2.93,1.34,3.42 +User 431,0.42,0.88,2.03,0.66,0.64,2.44,3.18,2.95,1.34,3.12 +User 432,0.99,1.36,1.09,0.67,1.36,2.86,3.18,2.96,1.79,2.74 +User 433,0.74,2,1.66,0.49,1.62,1.76,3.18,2.54,1.47,2.42 +User 434,1.31,2.64,1.73,0.58,2.06,2.58,3.19,2.71,1.47,2.32 +User 435,0.83,2.32,1.26,0.47,1.66,2.4,3.19,2.73,1.22,2.4 +User 436,1.12,1.44,0.26,0.43,0.3,1.66,3.18,2.89,1.54,2.94 +User 437,0.54,1.36,0.32,0.46,1.02,1.48,3.17,2.88,1.44,3.44 +User 438,1.06,1.08,0.13,2.11,0.32,2.5,3.18,2.78,1.98,2.5 +User 439,0.48,1.56,0.29,0.49,0.56,2.12,3.18,3.13,1.5,2.66 +User 440,0.8,0.72,0.22,0.64,0.34,1.82,3.18,2.77,1.34,2.54 +User 441,0.93,1.28,0.93,0.46,0.42,1.5,3.18,2.7,1.86,2.98 +User 442,0.77,1.2,0.19,0.42,0.3,1.26,3.17,2.63,1.15,3.34 +User 443,0.77,1.4,0.19,0.43,0.58,2.22,3.17,2.75,1.54,2.82 +User 444,1.06,1.36,0.32,0.5,1.62,2.28,3.17,2.89,1.7,3.54 +User 445,0.72,0.96,1.57,0.62,1.58,1.86,3.18,2.82,1.25,2.72 +User 446,1.25,0.96,0.43,0.19,0.58,1.06,3.17,2.7,1.18,3.06 +User 447,0.7,2.88,1.09,0.48,0.88,2.24,3.18,2.78,1.15,2.46 +User 448,0.74,1.12,1.54,0.29,0.7,1.62,3.18,2.91,1.22,3.02 +User 449,0.61,1.04,1.42,0.45,1.12,2.42,3.18,2.82,1.47,2.64 +User 450,0.86,1,0.93,0.43,1.38,2.06,3.18,2.91,1.22,2.5 +User 451,0.42,1.08,0.42,0.4,0.86,1.02,3.18,2.86,2.43,3.02 +User 452,0.54,1.08,0.74,0.57,0.62,1.3,3.18,2.74,1.5,2.54 +User 453,1.09,0.92,1.01,0.45,0.98,1.9,3.18,2.83,2.08,2.66 +User 454,0.67,1.36,1.9,0.49,0.98,2.84,3.18,2.74,1.6,2.56 +User 455,1.22,0.92,1.04,0.57,0.48,1.36,3.18,2.75,1.76,2.98 +User 456,0.96,1.68,1.18,0.29,1.36,2.34,3.18,2.7,1.02,3.04 +User 457,0.96,0.68,0.45,0.46,0.64,1.66,3.18,2.67,1.47,2.4 +User 458,0.9,1.04,0.3,0.56,0.32,1.14,3.18,2.8,1.22,2.5 +User 459,0.9,1.04,2,0.53,1.28,2.38,3.19,2.75,1.66,2.4 +User 460,0.7,1.96,0.61,0.48,0.7,1.4,3.18,2.75,1.25,2.8 +User 461,0.67,1.2,0.9,0.5,1.14,2.14,3.18,3.2,1.31,2.82 +User 462,0.99,1.24,0.15,0.24,1.38,1.98,3.17,2.61,1.02,3.06 +User 463,0.83,1.32,0.24,0.54,1.18,2.22,3.18,2.78,1.41,2.8 +User 464,0.99,1.24,1.58,0.46,0.26,2.34,3.18,3.07,1.76,3.04 +User 465,1.78,1.04,0.72,0.61,0.46,1.68,3.18,2.88,1.47,2.42 +User 466,0.74,1.32,2.05,0.64,1.18,2.26,3.19,3.04,1.34,2.62 +User 467,1.55,1.16,0.66,0.3,0.5,1.34,3.18,2.67,1.22,3.3 +User 468,0.7,1.36,0.29,0.65,0.78,1.38,3.18,3.38,1.82,2.74 +User 469,1.31,0.96,0.86,0.4,0.88,1.54,3.17,2.78,1.41,3.44 +User 470,1.09,1.4,0.29,0.48,0.22,2.22,3.17,2.77,1.31,3.22 +User 471,0.74,1.08,2.26,0.38,1.2,2.22,3.2,2.42,1.38,2.58 +User 472,0.74,1.28,0.3,0.43,1.06,1.58,3.17,2.95,1.7,3.14 +User 473,0.58,1.48,0.21,0.46,0.4,1.28,3.17,2.72,1.95,3.22 +User 474,0.72,1.52,0.19,0.85,1.26,1.74,3.18,2.94,1.28,2.74 +User 475,0.96,1.08,1.86,0.32,0.58,1.3,3.18,2.63,1.22,3.12 +User 476,1.38,1.12,1.92,0.64,0.62,2.32,3.19,2.94,1.76,2.48 +User 477,0.64,1.16,1.89,0.4,0.56,1.24,3.18,2.82,1.09,3.18 +User 478,0.8,1.12,1.16,0.32,0.38,1.04,3.18,2.62,1.18,3.06 +User 479,0.83,0.84,2.59,0.85,1.1,2.62,3.19,2.69,1.6,2.62 +User 480,0.77,1.16,1.36,0.42,3.3,2.78,3.18,2.58,1.22,2.94 +User 481,0.64,0.6,1.06,0.53,0.7,1.5,3.18,2.66,1.86,2.64 +User 482,0.42,1.36,1.49,0.71,1.06,1.68,3.19,2.86,1.25,2.56 +User 483,1.38,1.28,0.22,0.55,0.26,0.9,3.18,2.74,1.31,3.04 +User 484,0.58,2.96,1.9,0.53,1.44,2.24,3.19,3.18,2.18,2.7 +User 485,0.83,1.72,1.88,0.51,1.42,2.64,3.19,2.9,1.76,2.54 +User 486,0.7,1.2,1.42,0.27,0.46,1.58,3.18,2.66,1.09,2.8 +User 487,0.96,1.28,0.21,0.62,0.72,2.44,3.18,2.94,1.38,2.7 +User 488,0.7,1,0.18,0.57,2.58,2.34,3.17,3.06,1.98,2.96 +User 489,1.18,1.32,0.62,0.31,1.06,1.74,3.17,2.91,1.25,3.38 +User 490,0.99,0.92,0.32,0.79,0.78,1.78,3.18,2.77,1.98,2.62 +User 491,1.38,1.12,1.8,0.37,0.82,1.16,3.18,2.69,1.22,3.3 +User 492,1.18,1.28,0.26,0.33,1.1,1.36,3.17,3.03,1.76,3.38 +User 493,0.7,1.16,0.14,0.39,0.9,1.18,3.17,2.79,1.15,2.96 +User 494,1.09,2.64,2.54,0.53,0.7,2.18,3.19,2.79,1.6,2.34 +User 495,0.93,2.2,0.35,0.57,0.46,1.58,3.18,2.78,2.21,2.74 +User 496,0.77,1.36,0.18,0.39,1.3,2.1,3.16,2.95,1.02,3.5 +User 497,0.51,0.88,0.26,0.48,0.96,1.42,3.17,2.88,1.02,3.04 +User 498,0.61,1.24,2.32,0.51,1.04,2.58,3.19,2.75,1.6,2.46 +User 499,0.77,1.16,2.13,0.45,1.3,1.74,3.18,2.96,1.47,2.94 +User 500,0.9,1.12,0.67,0.5,1.38,2.1,3.18,2.98,1.41,2.86 +User 501,0.96,2,1.94,0.51,1.02,1.7,3.19,2.7,1.7,2.38 +User 502,2.72,1.96,1.39,0.32,1.06,2.46,3.18,2.86,1.15,2.86 +User 503,0.9,1.08,2.48,0.41,0.82,1.78,3.18,2.83,1.41,3.46 +User 504,0.64,1.28,0.48,0.35,0.7,1.58,3.18,3.01,2.18,2.98 +User 505,0.99,1.04,0.35,0.58,0.74,2.22,3.18,2.99,1.5,2.78 +User 506,2.5,2,0.24,0.51,0.8,1.78,3.17,2.89,1.54,3.12 +User 507,0.86,1.04,1.31,0.48,0.56,1.78,3.18,3.05,2.05,2.62 +User 508,0.7,1,1.78,0.64,2.98,2.36,3.18,2.74,1.15,2.5 +User 509,0.86,0.76,1.06,0.51,2.62,2.34,3.18,2.81,1.09,2.7 +User 510,1.12,2.04,0.19,0.33,0.26,1.36,3.17,3.07,1.34,3.18 +User 511,1.22,1.16,2.18,0.55,1.38,2.52,3.19,2.66,1.92,2.54 +User 512,0.96,1.2,0.19,0.33,0.66,1.24,3.16,2.94,1.28,3.62 +User 513,0.67,1.24,0.96,0.53,0.78,1.44,3.18,2.9,1.6,2.88 +User 514,0.77,1.88,2.43,0.65,1.06,3.12,3.2,2.69,2.11,2.4 +User 515,0.86,1.2,0.35,0.42,0.96,1.72,3.17,2.57,0.96,3.06 +User 516,0.9,1,2.84,0.5,1.28,2.14,3.2,2.97,1.54,2.54 +User 517,1.31,0,0.26,0.72,0.96,1.16,3.18,2.9,2.14,2.88 +User 518,0.64,1.04,2.03,0.53,1.6,1.9,3.18,2.9,1.12,2.88 +User 519,0.96,1.28,0.22,0.37,0.82,2.14,3.18,2.62,1.34,2.8 +User 520,0.77,1.08,0.3,0.55,1.06,2.26,3.18,3.23,1.73,2.66 +User 521,0.51,1.36,0.13,0.33,0.7,1.02,3.18,2.89,1.63,2.7 +User 522,0.86,1.04,1.89,0.61,1.46,2.3,3.19,2.77,1.92,2.62 +User 523,0.51,1.08,2.48,0.57,0.66,1.8,3.19,2.58,1.38,2.32 +User 524,0.74,0.96,0.26,0.42,0.86,1.54,3.17,2.86,1.63,3.04 +User 525,0.7,1.64,2.46,0.57,1.46,2.54,3.2,2.95,1.89,2.38 +User 526,0.86,1.36,1.68,0.49,1.3,3.04,3.19,2.7,1.31,2.78 +User 527,0.7,1.12,1.23,0.49,1.52,2.34,3.18,2.78,1.76,2.66 +User 528,0.77,1.4,0.16,0.59,0.94,1.94,3.18,3.06,1.41,2.66 +User 529,1.34,1.64,0.37,0.39,0.58,1.94,3.18,2.72,1.66,2.94 +User 530,0.53,0.96,0.18,0.58,0.66,1.4,3.18,2.95,1.5,2.42 +User 531,0.86,0.6,0.24,0.64,0.94,1.7,3.18,2.78,1.44,2.34 +User 532,1.12,0.16,0.19,0.69,0.62,1.44,3.18,2.9,1.73,2.46 +User 533,0.83,1.2,1.25,0.56,1.04,2.02,3.18,2.66,1.86,2.66 +User 534,0.8,1.08,1.45,0.45,0.98,1.7,3.18,2.9,1.09,3.02 +User 535,0.9,0.88,1.84,0.41,0.72,2,3.18,2.66,1.06,2.82 +User 536,0.58,1.12,1.57,0.45,0.78,1.5,3.18,2.77,1.44,2.9 +User 537,0.74,2.24,2.63,0.72,1.4,3.76,3.2,2.75,1.63,2.48 +User 538,0.64,1.04,2.35,0.51,1.42,1.66,3.19,2.66,2.21,2.5 +User 539,0.61,1.84,0.61,0.47,2.18,2.5,3.18,2.83,1.92,2.98 +User 540,0.96,1.16,0.36,0.42,0.22,2.8,3.18,2.83,1.98,2.64 +User 541,0.8,1.36,0.75,0.35,0.9,1.78,3.18,2.86,1.22,2.82 +User 542,1.44,0.28,0.18,0.34,0.26,1.74,3.17,2.64,0.9,2.88 +User 543,0.83,1.08,0.24,0.46,0.5,1.52,3.18,2.98,1.98,2.8 +User 544,0.7,1.56,0.96,0.4,1.18,1.88,3.17,2.77,1.06,3.34 +User 545,0.99,1.04,1.17,0.57,0.98,2.1,3.19,2.74,1.38,2.4 +User 546,0.86,2.96,0.24,0.41,0.72,1.62,3.18,2.98,1.54,2.98 +User 547,0.61,1.64,0.18,0.46,1.02,1.9,3.17,2.59,1.34,3.04 +User 548,0.96,1.48,0.21,0.58,0.42,1.28,3.18,2.95,1.98,2.66 +User 549,0.96,1.92,1.18,0.61,0.9,1.98,3.18,2.82,1.7,2.62 +User 550,0.96,1.32,0.34,0.48,0.82,1.7,3.17,2.95,1.34,3.34 +User 551,1.23,1,0.59,0.35,1.02,1.62,3.18,2.85,2.02,2.98 +User 552,1.06,1.04,2.5,0.56,1.78,2.8,3.2,2.72,2.18,2.54 +User 553,0.9,0.88,1.17,0.47,0.7,2.1,3.18,3.06,2.05,2.62 +User 554,1.63,1.2,0.67,0.75,1.02,2.2,3.18,2.85,1.34,2.42 +User 555,0.67,2.4,0.34,0.53,1.26,2.2,3.18,2.71,1.73,2.7 +User 556,0.7,0.88,2.66,0.5,1.04,1.46,3.19,2.88,1.54,2.4 +User 557,0.58,1.48,0.24,0.49,0.42,1.38,3.18,2.82,1.6,2.88 +User 558,0.96,0.88,0.22,0.53,0.42,1.8,3.18,2.74,2.46,2.78 +User 559,0.96,1,0.3,0.33,0.88,1.58,3.17,2.98,2.11,3.34 +User 560,1.06,0.8,0.29,0.35,1.3,2.12,3.18,3.03,1.7,2.94 +User 561,0.74,0.8,1.82,0.5,1.2,1.74,3.18,2.63,1.63,2.58 +User 562,0.93,1.6,3.11,0.49,0.96,2.08,3.2,2.61,1.5,2.38 +User 563,0.9,0.88,1.94,0.55,1.12,2.18,3.18,2.85,1.47,2.7 +User 564,0.7,1.52,1.46,0.5,0.94,1.7,3.18,2.64,0.96,2.94 +User 565,0.77,1.56,0.24,0.62,0.98,2.1,3.18,2.86,1.66,2.48 +User 566,0.99,1.08,1.41,0.24,1.52,2.08,3.18,2.74,1.22,2.94 +User 567,0.74,1.68,2.89,0.57,0.94,1.92,3.2,2.86,1.34,2.34 +User 568,0.7,1.6,2.36,0.48,1.18,1.73,3.2,2.98,1.31,2.42 +User 569,1.15,2.12,2.06,0.56,1.68,1.86,3.19,2.62,1.44,2.42 +User 570,0.58,1.2,0.32,0.43,1.04,2.54,3.18,2.95,1.18,3.26 +User 571,0.9,2.16,2.06,0.56,1.66,2.17,3.19,2.72,1.44,2.42 +User 572,0.74,1.36,0.21,0.29,0.62,1.48,3.17,2.98,1.18,3.38 +User 573,0.77,1.08,1.82,0.39,1.06,2.32,3.19,2.85,1.41,2.4 +User 574,0.67,1.76,0.3,0.41,0.26,1.58,3.18,2.67,2.24,3.42 +User 575,0.96,1.44,0.72,0.62,0.82,2.7,3.18,3.02,1.82,2.78 +User 576,0.74,1.28,1.36,0.66,1.26,2.48,3.18,2.83,1.28,2.64 +User 577,0.77,0.88,0.24,0.43,1.02,2.1,3.18,3.03,1.76,2.64 +User 578,0.64,1.48,0.24,0.56,0.74,1.72,3.18,2.8,1.66,2.88 +User 579,0.67,1.48,0.26,0.56,0.62,1.26,3.18,2.81,1.54,2.9 +User 580,0.86,0.96,0.74,1.12,0.96,1.7,3.18,2.8,1.57,2.56 +User 581,0.83,1.36,1.07,0.33,0.56,2.16,3.18,2.74,1.6,2.82 +User 582,0.64,1.36,1.52,0.47,1.02,2.68,3.18,2.79,1.41,2.7 +User 583,0.9,1.2,0.85,0.62,1.18,2.14,3.18,2.78,1.54,2.74 +User 584,0.67,1.6,0.19,0.45,1.02,1.42,3.18,2.86,1.73,2.88 +User 585,1.06,1.28,0.16,0.47,1.04,1.6,3.17,2.72,1.18,3.26 +User 586,1.47,1.04,0.43,0.48,0.74,1.1,3.17,3.01,1.63,3.2 +User 587,0.48,1.12,0.7,0.33,0.38,1.42,3.18,2.88,1.47,2.78 +User 588,0.96,1.6,0.29,0.32,0.62,1.62,3.18,2.79,1.25,2.9 +User 589,0.58,1.04,2.77,0.58,0.46,1.98,3.19,2.66,1.38,2.5 +User 590,0.93,2.08,0.27,0.39,1.1,2.58,3.18,2.89,1.89,2.78 +User 591,0.96,1.12,0.91,0.5,0.82,1.66,3.18,2.81,1.63,2.72 +User 592,0.83,1.32,0.18,0.31,1.22,1.5,3.17,2.98,1.38,3.04 +User 593,0.7,2.28,0.22,2.38,0.38,1.28,3.18,2.81,1.38,2.66 +User 594,0.83,1.96,1.33,0.54,1.44,2.54,3.18,2.87,1.28,2.74 +User 595,1.12,0.8,0.91,0.39,0.48,1.56,3.18,2.96,1.38,2.7 +User 596,1.76,0.6,1.57,0.35,0.5,1.66,3.18,2.98,1.5,2.72 +User 597,0.96,1.32,0.37,0.49,0.74,1.66,3.17,2.97,1.41,3.36 +User 598,0.77,1.08,0.22,0.65,0.88,2.02,3.18,2.86,1.79,2.54 +User 599,0.86,0.96,2.02,0.5,1.28,1.58,3.19,2.7,1.79,2.66 +User 600,1.12,2.96,0.16,0.5,0.48,1.76,3.18,2.78,1.76,2.72 +User 601,0.64,1.36,0.91,0.4,0.86,1.1,3.18,2.83,1.47,3.06 +User 602,1.15,0.8,0.26,3.1,0.64,1.86,3.18,2.77,2.02,2.62 +User 603,0.67,2.2,2.34,0.61,0.9,2.12,3.19,2.61,1.41,2.46 +User 604,0.77,1.48,0.29,0.35,0.16,0.82,3.17,2.94,1.09,3.26 +User 605,1.22,0.68,1.41,0.91,1.34,2.82,3.19,3.09,2.11,2.5 +User 606,0.64,1.2,0.94,0.39,0.94,2.02,3.19,3.09,1.28,2.26 +User 607,1.09,1,1.02,0.4,1.02,1.38,3.18,2.58,0.74,3.26 +User 608,1.31,1.36,0.75,0.48,0.5,1.7,3.18,2.89,1.34,2.78 +User 609,1.06,3.12,1.58,0.48,0.56,3.34,3.18,2.67,1.76,2.94 +User 610,0.7,1.32,0.34,0.59,0.4,1.02,3.18,2.85,1.31,2.82 +User 611,0.66,0.64,2.01,0.58,0.82,1.54,3.18,3.02,1.22,2.88 +User 612,0.74,1.04,1.3,0.62,1.26,2.42,3.18,2.78,1.57,2.5 +User 613,0.83,0.92,0.82,0.39,1.28,2.14,3.18,3.39,1.63,2.8 +User 614,0.67,1.28,0.26,0.51,1.02,1.26,3.17,2.87,3.01,3.3 +User 615,1.87,0.28,1.14,0.5,0.9,1.94,3.18,2.97,1.82,2.58 +User 616,0.54,1.16,0.38,0.33,1.38,1.58,3.17,2.7,1.06,3.44 +User 617,0.7,1.44,0.22,0.64,0.56,2.04,3.18,2.85,1.7,2.78 +User 618,1.82,1.56,0.62,0.39,0.58,1.62,3.18,2.93,2.14,3.42 +User 619,1.25,1.04,0.43,0.43,1.04,2.5,3.18,3.03,1.6,2.88 +User 620,0.96,1.32,0.56,0.38,0.66,1.54,3.17,2.85,1.41,3.12 +User 621,0.74,1.32,0.16,0.49,1.22,1.46,3.17,2.7,2.08,2.88 +User 622,0.8,1.8,1.25,0.55,1.38,2.5,3.18,2.85,1.7,2.42 +User 623,0.99,1.32,2.03,0.43,0.88,1.54,3.18,2.7,2.08,2.78 +User 624,0.74,0.96,0.62,0.51,0.96,1.84,3.18,2.8,2.05,3.02 +User 625,0.9,1.48,1.46,0.42,0.42,1.02,3.18,2.71,1.73,2.96 +User 626,1.66,0.24,0.43,0.59,0.8,1.06,3.18,2.95,1.38,2.48 +User 627,0.8,1.92,1.6,0.5,2.08,3.2,3.19,2.89,1.5,2.54 +User 628,0.75,1.08,1.88,0.34,0.9,1.58,3.18,2.73,1.6,2.5 +User 629,0.7,0.88,0.19,0.43,0.14,1.66,3.17,2.75,1.18,2.98 +User 630,0.58,1.44,0.21,0.41,1.06,1.56,3.18,2.9,3.04,2.54 +User 631,0.7,1.36,0.19,0.41,0.86,1.28,3.17,2.72,2.37,3.1 +User 632,2.05,1.2,0.19,0.34,0.48,1.02,3.17,2.81,1.92,3.44 +User 633,0.51,1.2,0.42,0.49,0.9,1.2,3.17,2.56,1.5,2.98 +User 634,0.61,1.2,2.05,0.61,1.3,3.06,3.19,2.79,1.57,2.42 +User 635,0.83,1.96,0.83,0.46,0.5,1.34,3.18,2.78,1.09,2.7 +User 636,0.8,1.12,1.6,0.63,1.5,1.74,3.18,2.86,1.12,2.9 +User 637,0.86,1.4,1.25,0.55,2.02,2.62,3.18,2.88,1.38,2.54 +User 638,1.38,0.96,1.07,0.66,1.06,2.18,3.18,2.85,1.31,2.64 +User 639,1.06,1.44,0.42,0.58,0.7,1.68,3.17,2.95,1.7,3.38 +User 640,0.51,1.96,0.21,0.42,0.72,1.38,3.18,2.87,1.82,2.82 +User 641,1.73,0.84,2.61,0.63,1.1,2.42,3.19,2.98,1.73,2.78 +User 642,0.54,2.96,0.38,0.61,1.62,2.42,3.18,3.22,2.43,2.8 +User 643,1.09,2.76,0.21,0.66,0.32,2.28,3.18,2.72,1.5,2.58 +User 644,0.74,1.56,0.24,0.61,0.7,1.42,3.18,2.82,1.5,2.96 +User 645,0.93,2.24,1.9,0.49,1.76,3.06,3.19,2.69,2.02,2.48 +User 646,0.61,1.56,0.19,0.41,0.86,1.14,3.18,2.81,1.6,2.8 +User 647,0.94,0.8,0.35,0.56,0.48,1.78,3.18,2.86,2.18,2.66 +User 648,0.64,1.52,0.21,0.39,0.98,1.38,3.16,2.77,1.66,3.38 +User 649,0.38,1.44,0.34,0.5,1.26,1.94,3.18,2.9,2.37,3.04 +User 650,1.09,1.96,1.17,0.51,1.62,2.74,3.18,2.74,1.28,2.4 +User 651,0.58,1.24,0.26,0.56,0.96,1.7,3.18,3.2,2.14,2.78 +User 652,0.8,1.32,0.34,0.24,0.46,1.02,3.17,2.9,1.44,3.28 +User 653,0.61,1.56,0.19,0.41,0.86,1.14,3.18,2.81,1.6,2.8 +User 654,0.7,1.32,0.32,0.51,0.82,1.34,3.18,3.04,1.76,3.04 +User 655,0.48,1.12,2.35,0.58,0.78,1.98,3.19,2.63,1.25,2.4 +User 656,0.74,1.56,2.27,0.66,1.3,2.56,3.19,2.65,1.54,2.4 +User 657,0.7,1.64,1.07,0.39,1.04,1.54,3.18,2.82,1.47,3.06 +User 658,1.34,0.76,1.1,0.47,1.66,2,3.18,2.87,1.18,2.66 +User 659,0.72,1.6,0.67,0.34,0.78,1.58,3.17,3.18,1.15,3.42 +User 660,0.8,1.8,0.37,0.51,1.06,1.58,3.17,2.81,1.54,3.18 +User 661,0.99,1.96,2.46,0.53,0.34,1.58,3.2,2.82,1.44,2.54 +User 662,1.09,0.64,1.12,0.42,0.7,1.54,3.18,3.07,1.44,2.66 +User 663,0.7,0.8,2.56,0.5,1.1,1.5,3.19,2.86,1.47,2.38 +User 664,0.93,0.92,0.18,0.5,1.02,2.4,3.17,2.91,1.09,3.18 +User 665,1.06,1.28,1.3,0.43,0.24,0.46,3.17,2.86,1.15,3.38 +User 666,1.5,1.16,2.37,0.27,0.58,1.9,3.18,2.78,1.54,3.2 +User 667,1.95,1.52,1.94,3.44,0.64,2.94,3.2,2.62,1.54,2.46 +User 668,1.25,1.04,1.58,0.67,0.88,2.42,3.18,2.7,1.34,2.9 +User 669,0.54,1.16,0.8,0.32,0.66,1.44,3.17,2.79,1.09,3.28 +User 670,0.51,1.48,0.21,0.41,1.2,1.66,3.17,2.83,1.63,3.3 +User 671,1.63,0.96,0.34,0.49,0.38,2.06,3.17,2.86,1.92,3.46 +User 672,0.77,1.6,2.46,0.59,2.16,2.64,3.19,2.85,2.21,2.5 +User 673,1.76,0.68,1.31,0.46,0.34,0.8,3.18,2.74,0.96,2.54 +User 674,0.86,1,0.29,0.47,0.24,1.46,3.18,2.74,1.73,2.4 +User 675,0.83,0.6,0.19,0.61,0.94,1.66,3.18,2.74,1.47,2.34 +User 676,0.58,1.96,0.18,0.38,0.74,1.08,3.18,2.66,2.18,2.78 +User 677,0.77,1.16,0.32,0.26,0.5,1.14,3.17,2.89,1.44,3.34 +User 678,2.26,0.4,2.08,0.5,1.18,2.86,3.19,2.75,1.6,2.42 +User 679,1.66,1.04,0.91,0.43,0.72,1.74,3.17,2.77,0.86,3.46 +User 680,0.8,1.56,0.34,0.41,0.8,1.66,3.17,2.91,1.38,3.26 +User 681,1.02,1.04,0.24,0.65,0.46,1.88,3.18,2.88,1.15,2.86 +User 682,0.96,1.16,0.45,0.29,0.98,1.42,3.18,2.94,2.02,3.02 +User 683,0.83,0.96,1.47,0.5,1.46,2.02,3.18,2.94,1.22,2.5 +User 684,0.96,1.96,0.26,0.51,0.82,1.34,3.18,3.02,1.89,2.72 +User 685,0.86,1.84,1.78,0.61,1.18,2.36,3.19,2.82,2.14,2.5 +User 686,0.9,1,2.06,0.62,0.9,2.52,3.19,2.89,1.38,2.4 +User 687,0.77,1.36,0.75,0.46,1.14,2.14,3.18,2.85,1.89,2.82 +User 688,1.02,1.4,0.22,0.57,0.22,2.18,3.18,2.88,1.34,2.86 +User 689,0.9,1.68,0.29,0.35,0.8,1.24,3.18,2.74,1.25,3.04 +User 690,0.7,1.28,0.94,0.62,1.06,2.02,3.18,2.85,1.82,2.88 +User 691,0.83,0.72,0.22,0.39,0.48,1.8,3.18,2.95,1.12,2.72 +User 692,0.77,1.48,0.98,0.31,1.02,1.5,3.17,2.83,1.09,3.3 +User 693,0.93,1.28,0.22,0.25,0.46,0.62,3.17,2.98,1.12,3.06 +User 694,0.77,1.88,0.21,0.49,0.48,1.74,3.18,2.83,1.44,2.94 +User 695,0.96,1.8,0.56,2.25,2.02,2.4,3.18,2.69,1.25,2.42 +User 696,0.7,1.32,0.27,0.47,1.78,2.18,3.18,2.95,1.79,2.78 +User 697,1.66,2.16,1.26,0.41,0.62,2.26,3.18,2.9,1.5,3.26 +User 698,1.34,0.8,0.22,0.69,0.4,2.24,3.18,2.72,1.28,2.5 +User 699,0.83,1.04,0.35,0.4,0.26,0.96,3.17,2.77,1.54,3.24 +User 700,0.74,1.96,1.25,0.4,0.58,1.26,3.18,2.7,1.09,3.2 +User 701,0.45,1.96,0.94,0.61,0.58,1.58,3.18,2.98,1.15,2.5 +User 702,0.7,1.96,1.66,0.55,1.38,2.6,3.19,2.94,1.41,2.72 +User 703,1.09,2.96,1.79,0.79,1.18,2,3.19,2.66,2.59,2.46 +User 704,0.67,1.96,0.29,0.43,1.18,2.02,3.17,2.95,1.41,3.36 +User 705,1.54,1.28,0.22,0.24,0.58,1.62,3.17,2.8,1.7,3.38 +User 706,0.64,1.52,0.16,0.42,0.56,0.98,3.18,2.86,1.18,2.94 +User 707,0.8,0.96,0.27,0.55,0.7,1.66,3.18,2.99,1.92,2.7 +User 708,0.83,0.76,1.31,0.58,1.42,2.5,3.18,2.81,1.66,2.58 +User 709,1.31,0.2,0.24,0.72,0.46,1.6,3.18,2.86,1.79,2.46 +User 710,0.7,1.44,0.88,0.33,0.8,1.4,3.18,2.85,1.5,3.14 +User 711,1.34,1.04,1.47,0.66,0.9,2.66,3.19,2.79,1.76,2.48 +User 712,0.54,1.28,0.26,0.61,1.26,2,3.18,2.93,2.43,2.56 +User 713,1.28,1.28,0.27,0.4,1.04,1.12,3.17,3.19,1.54,3.38 +User 714,1.02,1.24,0.27,0.41,1.22,2.6,3.18,2.7,1.54,2.8 +User 715,0.96,1.96,0.75,0.41,0.46,1.4,3.18,2.9,2.18,3.3 +User 716,1.06,1.64,0.32,0.31,0.38,1.06,3.17,2.9,2.02,3.3 +User 717,0.54,1.08,0.24,0.42,0.54,1.3,3.18,3.07,1.34,2.94 +User 718,0.7,2.12,2.42,0.59,0.58,1.82,3.19,2.62,1.12,2.5 +User 719,1.31,0.92,2.37,0.62,0.74,2.32,3.2,2.82,1.57,2.58 +User 720,1.02,0.92,2.59,0.63,0.96,2.34,3.19,2.9,1.73,2.42 +User 721,0.45,1.36,0.21,0.63,1.34,2.04,3.18,2.93,2.56,2.56 +User 722,0.99,1.12,0.22,0.4,0.74,1.42,3.16,2.66,1.28,3.52 +User 723,1.09,0.8,0.93,0.71,1.38,2.7,3.18,2.82,1.41,2.62 +User 724,1.22,0.56,0.62,0.69,0.72,1.5,3.18,2.73,1.09,2.46 +User 725,0.74,1.2,0.29,0.38,0.42,1.22,3.17,2.91,1.28,3.14 +User 726,0.8,2.04,1.28,0.54,1.62,2.52,3.18,2.86,1.57,2.46 +User 727,0.58,0.76,0.75,0.53,1.52,2.14,3.18,2.95,2.11,2.8 +User 728,0.99,1.36,1.18,0.67,0.96,2.32,3.19,3.07,1.98,2.96 +User 729,0.86,2.96,0.21,1.98,0.9,1.62,3.18,2.7,1.47,2.46 +User 730,1.63,1.16,1.81,0.39,1.62,2.98,3.19,2.79,1.79,2.54 +User 731,1.09,1.44,1.42,0.33,1.18,1.7,3.18,2.91,1.12,3.18 +User 732,0.61,1.24,0.26,0.71,0.82,2.3,3.18,2.98,1.41,3.12 +User 733,1.06,0.56,0.77,0.59,0.72,1.7,3.18,2.86,1.54,2.5 +User 734,0.61,1.4,2.16,0.43,1.3,1.58,3.18,2.66,2.02,2.86 +User 735,0.61,1.32,0.21,0.35,0.58,1.16,3.17,2.74,1.98,3.28 +User 736,0.7,1.08,0.26,0.65,1.2,1.3,3.18,2.93,1.41,2.64 +User 737,0.93,1.92,0.37,0.56,0.96,2.38,3.18,2.82,2.05,2.82 +User 738,0.8,1.12,1.78,0.64,1.2,2.34,3.19,3.04,1.38,2.54 +User 739,0.64,1.24,1.18,0.61,0.86,2.82,3.18,2.94,1.89,2.78 +User 740,1.18,1.36,0.51,0.32,1.12,2.16,3.17,2.67,1.06,3.3 +User 741,0.9,2.04,1.26,0.64,1.3,2.74,3.18,2.82,1.66,2.5 +User 742,0.86,0.72,1.23,0.55,1.2,2.48,3.18,2.87,1.5,2.4 +User 743,0.74,1,0.26,0.41,0.74,1.9,3.18,2.94,1.73,2.74 +User 744,1.09,1.2,0.29,0.51,1.18,1.9,3.18,2.66,1.44,2.88 +User 745,0.83,1.36,1.02,0.39,0.7,1.32,3.18,2.87,1.31,2.46 +User 746,0.82,2.6,0.19,0.9,0.46,1.82,3.18,2.85,1.34,2.5 +User 747,0.9,1.44,0.29,0.47,1.02,1.2,3.17,2.9,3.14,3.18 +User 748,0.96,2.84,0.21,1.83,1.18,1.98,3.18,2.74,1.34,2.38 +User 749,0.67,1.12,0.43,0.38,1.02,1.26,3.17,2.66,1.38,3.14 +User 750,0.99,1.04,0.77,0.42,0.96,1.98,3.18,2.86,1.31,2.78 +User 751,0.74,1.52,2.29,0.66,1.46,2.58,3.19,2.74,1.41,2.4 +User 752,1.02,1.52,0.76,0.38,0.62,1.26,3.17,3.04,1.34,3.14 +User 753,1.22,1.36,1.33,0.59,1.18,2.24,3.19,2.77,1.66,2.46 +User 754,1.12,1.04,1.09,0.39,0.96,1.6,3.18,3.01,1.28,3.06 +User 755,1.28,1.68,0.99,0.75,1.1,2.34,3.18,2.78,1.73,2.5 +User 756,1.28,1.28,0.96,0.39,1.34,1.7,3.18,3.12,1.86,3.34 +User 757,1.33,0.76,0.26,0.45,0.72,1.18,3.18,3.14,1.31,2.66 +User 758,0.7,1.12,0.35,0.46,0.64,1.66,3.18,2.83,1.54,2.8 +User 759,0.74,1.6,1.58,0.41,0.64,1.18,3.18,2.69,1.34,2.8 +User 760,1.7,0.96,0.13,0.33,0.78,1.14,3.18,2.81,1.02,2.42 +User 761,0.77,1.04,1.31,0.62,1.26,2.42,3.18,2.78,1.6,2.54 +User 762,0.99,1.48,0.99,0.59,0.34,2.18,3.18,2.88,1.25,2.34 +User 763,1.09,1.56,0.83,0.46,1.2,2.18,3.18,2.94,1.5,3.3 +User 764,1.02,1.28,1.33,0.49,0.86,1.4,3.18,2.88,1.5,2.98 +User 765,0.74,1.48,1.26,0.57,1.6,2,3.18,2.54,1.57,2.48 +User 766,1.02,1.32,1.58,0.37,0.58,1.2,3.18,2.75,1.38,3.22 +User 767,0.7,1.68,0.37,0.61,0.72,1.52,3.18,2.66,1.38,2.66 +User 768,1.02,0.96,0.99,0.55,0.82,3.04,3.18,2.87,1.98,2.5 +User 769,1.02,0.96,0.21,0.69,1.14,2.72,3.18,3.19,1.63,2.46 +User 770,1.34,0.56,1.71,0.53,0.48,1.26,3.18,2.86,1.06,2.86 +User 771,0.74,1.6,1.2,0.46,1.34,2.02,3.18,2.77,0.86,3.04 +User 772,0.64,1.4,0.98,0.29,0.26,0.54,3.18,2.48,1.66,2.9 +User 773,0.8,0.96,1.18,0.5,0.56,1.5,3.18,3.01,1.86,2.8 +User 774,0.99,1.2,0.14,0.51,0.42,1.46,3.18,2.62,1.25,2.7 +User 775,0.42,1.52,0.29,0.53,0.38,1.52,3.18,2.95,2.88,3.12 +User 776,1.41,0.72,1.23,1.1,0.74,2.8,3.19,3.17,2.3,2.46 +User 777,0.67,1.6,0.27,0.35,1.28,1.78,3.18,3.04,1.57,3.06 +User 778,0.74,1.68,1.18,0.5,1.5,2.52,3.18,2.86,1.54,2.48 +User 779,1.25,0.96,0.16,0.55,0.22,1.58,3.18,2.66,0.99,2.7 +User 780,0.74,1.36,0.21,0.29,0.62,1.48,3.17,2.98,1.18,3.38 +User 781,0.86,1.2,2.08,0.54,1.84,2.14,3.19,2.81,1.6,2.56 +User 782,0.8,1.28,1.95,0.47,1.14,1.7,3.18,2.87,1.7,2.78 +User 783,0.74,1.28,0.21,0.55,1.58,1.5,3.18,2.75,1.76,2.94 +User 784,1.01,1.08,0.25,0.3,0.4,0.94,3.17,2.99,1.28,3.18 +User 785,0.9,1.16,0.43,0.43,0.7,1.42,3.17,2.95,1.31,3.1 +User 786,0.8,0.84,2.49,0.45,0.74,2.12,3.19,3.1,2.05,2.56 +User 787,0.77,1.32,1.97,0.53,0.82,1.94,3.19,2.98,1.28,2.54 +User 788,0.51,1.96,0.19,0.63,0.48,2,3.18,2.87,1.5,2.98 +User 789,0.9,1.08,0.75,0.34,1.5,1.86,3.17,2.81,1.34,3.34 +User 790,0.74,1.24,1.71,0.43,1.58,2.48,3.19,2.78,1.76,2.54 +User 791,0.86,1.2,2.22,0.33,0.9,1.74,3.18,2.98,1.6,3.2 +User 792,0.83,1.32,2.86,0.56,1.1,2.6,3.2,2.72,1.41,2.42 +User 793,1.02,2,1.71,0.54,1.52,2.74,3.19,2.74,1.92,2.5 +User 794,1.82,1.16,0.35,0.46,0.4,1.02,3.18,2.95,2.37,2.72 +User 795,0.8,0.88,0.53,0.55,1.1,2.14,3.18,2.81,1.6,2.8 +User 796,2.14,1.92,2.02,0.59,1.52,2.96,3.19,2.82,1.66,2.48 +User 797,0.51,1.48,0.24,0.42,0.72,1.46,3.18,3.01,1.6,2.62 +User 798,0.83,1.28,0.21,0.55,0.62,1.02,3.17,2.63,1.47,3.2 +User 799,0.9,1.36,2.21,0.47,0.86,2.14,3.19,2.78,1.28,2.64 +User 800,0.67,1.44,2.9,0.53,0.86,1.78,3.2,2.9,1.54,2.34 +User 801,1.22,1.12,0.45,0.49,0.46,0.9,3.17,2.86,1.5,3.52 +User 802,1.09,1.04,1.65,0.47,1.36,2.22,3.18,2.74,1.12,3.1 +User 803,1.17,0.32,2.16,0.47,0.98,1.9,3.19,3.07,1.25,2.64 +User 804,1.31,0.04,0.98,0.55,0.54,0.94,3.18,2.83,1.34,2.66 +User 805,0.64,1.64,1.46,0.5,1.34,2.22,3.18,2.79,1.86,2.62 +User 806,0.8,1.96,2.69,0.55,1.34,3.04,3.2,2.7,1.66,2.46 +User 807,0.67,1.12,0.24,0.58,1.22,1.9,3.18,2.87,1.34,2.7 +User 808,0.8,1.04,2,0.56,1.4,1.6,3.19,2.74,1.44,2.5 +User 809,0.96,2,1.94,0.51,1.02,1.7,3.19,2.7,1.7,2.38 +User 810,1.15,2.08,1.62,0.57,0.78,1.86,3.19,2.73,1.28,2.5 +User 811,0.83,0.96,0.21,0.61,1.76,2,3.18,2.86,1.98,2.78 +User 812,0.99,1.2,1.6,0.53,1.3,2.82,3.18,3.33,1.76,3.18 +User 813,0.96,3.64,1.31,0.39,1.34,2.66,3.18,3.02,1.57,3.12 +User 814,1.25,0.96,0.77,0.42,1.2,1.84,3.18,2.87,1.38,2.98 +User 815,0.58,1.56,2.44,0.54,1.2,2.1,3.2,2.97,2.46,2.42 +User 816,0.93,1.2,1.46,0.58,0.66,2.22,3.18,2.88,1.79,3.02 +User 817,0.9,0.96,2.85,0.54,1.12,1.48,3.2,2.75,1.44,2.38 +User 818,0.58,1.32,1.28,0.58,0.42,1.74,3.19,2.91,1.41,2.32 +User 819,0.7,1,2.74,0.57,1.18,1.84,3.2,2.94,1.18,2.34 +User 820,0.51,1.08,2.48,0.57,0.66,1.8,3.19,2.58,1.38,2.32 +User 821,0.58,1.52,1.3,0.56,1.18,2.34,3.18,2.94,1.73,2.62 +User 822,0.83,1.36,1.02,0.57,0.96,2.18,3.18,2.83,2.24,3.06 +User 823,0.64,1.56,0.16,0.47,0.98,2.06,3.17,2.74,1.38,3.18 +User 824,1.47,0.96,1.84,0.58,1.5,2.28,3.18,2.74,1.79,2.62 +User 825,0.7,0.96,0.78,1.05,0.8,1.64,3.18,2.7,1.47,2.3 +User 826,0.67,1.36,1.28,0.65,0.5,1.34,3.18,2.66,1.89,2.5 +User 827,0.48,1.36,1.82,0.57,0.66,1.28,3.19,2.86,1.57,2.66 +User 828,1.18,1.24,0.75,0.43,0.08,1.7,3.18,2.58,2.3,3.22 +User 829,0.48,1.12,2.35,0.58,0.78,1.98,3.19,2.63,1.25,2.4 +User 830,0.93,1.76,0.58,2.29,2,2.42,3.18,2.69,1.31,2.42 +User 831,0.74,1,1.27,0.48,0.42,1.44,3.18,3.06,1.95,2.74 +User 832,0.67,1.68,0.19,0.51,0.64,1.68,3.18,2.74,2.78,2.9 +User 833,0.86,1.12,0.13,0.27,0.78,1.7,3.17,2.67,1.12,3.3 +User 834,1.01,1.52,0.42,0.38,0.26,0.92,3.17,2.78,1.89,2.88 +User 835,0.7,0.88,2.66,0.5,1.04,1.46,3.19,2.88,1.54,2.4 +User 836,1.02,1.44,2.38,0.47,1.26,2.54,3.19,2.74,0.99,2.66 +User 837,1.09,1.2,1.5,0.65,0.9,2.38,3.18,2.8,1.41,2.78 +User 838,1.02,1.56,0.53,1.3,0.64,1.86,3.18,2.74,1.44,2.46 +User 839,0.67,1.12,0.22,0.53,0.7,0.88,3.18,3.05,1.54,2.96 +User 840,0.64,1.2,0.75,0.47,1.06,1.98,3.18,2.81,1.12,2.72 +User 841,0.7,1.96,0.96,0.33,0.82,1.7,3.18,3.03,1.15,3.02 +User 842,0.83,1.12,1.5,0.32,0.34,1.62,3.18,2.82,1.09,3.22 +User 843,1.06,1.28,1.78,0.41,0.66,1.58,3.18,2.8,1.09,2.8 +User 844,0.64,1.24,0.16,0.35,0.58,0.98,3.17,2.88,1.66,3.02 +User 845,0.64,1.2,0.24,0.35,0.56,0.76,3.17,3.06,1.76,2.94 +User 846,0.96,1.44,1.6,0.48,0.88,2.26,3.19,2.87,1.63,2.48 +User 847,0.83,1.24,0.26,0.37,0.96,1.46,3.17,2.64,1.38,3.18 +User 848,0.9,1.36,0.74,0.62,0.58,1.74,3.18,2.85,1.47,3.2 +User 849,0.77,1.52,2.04,0.39,0.22,0.98,3.18,2.75,1.82,3.44 +User 850,0.61,1.52,0.82,0.22,0.58,1.1,3.17,2.71,1.15,3.34 +User 851,0.58,1.04,0.22,0.47,1.06,1.88,3.18,2.97,2.3,2.54 +User 852,0.96,1.96,1.5,0.53,1.26,2.5,3.19,2.79,1.54,2.66 +User 853,0.99,1.88,0.48,0.61,1.22,1.92,3.18,2.93,2.43,2.66 +User 854,1.18,0.92,1.52,0.65,1.44,2.22,3.18,2.87,1.34,2.66 +User 855,1.09,1.96,1.28,0.53,1.46,2.98,3.18,2.74,1.66,2.86 +User 856,1.54,1.44,0.56,0.34,0.82,1.8,3.17,2.79,1.22,3.26 +User 857,1.18,0.92,1.52,0.65,1.44,2.22,3.18,2.87,1.34,2.66 +User 858,0.58,1.64,2.27,0.45,1.26,1.72,3.19,2.91,2.3,2.74 +User 859,0.58,1.44,0.38,0.56,1.02,1.64,3.18,3.2,1.47,2.74 +User 860,1.09,1.24,2.62,0.58,0.54,1.94,3.19,2.72,1.73,2.42 +User 861,1.09,1.12,1.94,0.56,0.82,1.98,3.19,2.86,1.57,2.74 +User 862,0.64,1.56,0.42,0.5,0.8,2.4,3.18,3.07,1.41,2.88 +User 863,0.7,1.52,2.37,0.62,0.86,1.68,3.2,2.86,1.6,2.58 +User 864,0.77,1.04,0.27,0.38,1.62,1.78,3.17,2.83,2.59,3.18 +User 865,1.09,1.84,0.75,0.33,0.56,1.26,3.17,2.93,1.98,3.28 +User 866,0.51,1,0.21,0.39,0.74,1.64,3.18,2.9,1.76,3.04 +User 867,0.77,1.16,2.19,0.4,1.42,1.78,3.18,2.82,1.22,2.82 +User 868,0.93,0.64,0.22,0.43,3.26,3.13,3.18,2.8,1.5,2.66 +User 869,0.45,1.64,0.14,0.42,0.58,1.26,3.18,2.89,1.38,2.9 +User 870,1.89,0.28,1.12,0.51,0.96,1.96,3.18,2.97,1.82,2.58 +User 871,1.02,1.32,0.4,0.59,1.06,2.93,3.18,2.8,1.92,2.66 +User 872,0.83,1.12,0.27,0.49,0.64,1.3,3.17,2.79,1.41,3.34 +User 873,1.41,0.96,1.79,0.35,1.1,2.22,3.18,2.78,1.38,3.02 +User 874,0.48,1.16,0.8,0.66,0.74,1.4,3.18,3.13,1.41,2.72 +User 875,0.8,1.28,0.14,0.39,1.06,1.52,3.17,2.94,1.86,2.88 +User 876,0.48,1.32,0.75,0.67,0.82,1.58,3.18,3.05,1.25,2.4 +User 877,0.9,1.96,1.23,0.51,1.28,2.6,3.18,2.7,1.76,2.94 +User 878,1.34,1.36,0.38,0.25,0.9,1.3,3.17,2.86,1.22,3.42 +User 879,0.99,1.16,0.22,0.42,0.88,1.7,3.17,2.78,1.15,3.26 +User 880,0.86,1.28,1.09,0.54,1.26,2.58,3.18,2.87,1.25,3.04 +User 881,0.67,1.28,0.35,0.42,0.74,1.88,3.18,2.85,1.82,2.66 +User 882,0.38,1.52,0.14,0.39,0.96,1.14,3.17,2.49,1.76,3.2 +User 883,0.96,2.96,0.74,0.47,0.96,2.12,3.18,2.86,1.44,2.64 +User 884,0.58,1.2,2.05,0.71,0.5,2.28,3.19,2.66,1.66,2.4 +User 885,1.18,1.48,0.78,0.47,1.06,2.89,3.18,2.75,1.6,2.62 +User 886,0.9,1.4,2.45,0.64,0.82,1.56,3.2,2.9,1.6,2.56 +User 887,0.7,1.28,0.38,0.51,0.78,1.34,3.18,2.74,1.92,3.02 +User 888,0.58,1.68,0.82,0.41,0.18,1.02,3.18,2.81,1.66,3.12 +User 889,1.5,2.6,1.33,0.95,0.72,2.42,3.19,2.66,1.12,2.46 +User 890,0.83,1.6,0.18,0.48,0.24,0.8,3.18,2.57,1.6,2.82 +User 891,0.7,1.4,0.88,0.62,0.98,2.44,3.18,2.74,1.6,2.74 +User 892,1.02,1.68,0.21,0.53,0.38,2.48,3.18,2.74,1.54,2.56 +User 893,0.77,1.64,2.85,0.53,1.04,1.94,3.2,2.95,1.25,2.32 +User 894,0.48,1.96,0.18,0.55,0.56,1.3,3.18,2.83,1.54,2.46 +User 895,0.51,1.76,0.22,0.49,0.66,1.46,3.18,2.77,2.4,2.74 +User 896,0.8,0.96,0.29,0.61,0.16,1.62,3.18,2.87,2.24,3.04 +User 897,1.09,0.72,1.02,0.94,1.26,3.2,3.19,3.04,1.54,2.46 +User 898,1.02,1.04,0.74,0.35,0.7,1.6,3.18,3.02,2.34,3.34 +User 899,0.8,1.08,0.75,0.35,0.82,1.22,3.18,2.67,1.06,3.2 +User 900,0.54,1.36,1.02,0.48,0.42,1.48,3.18,2.66,1.28,2.88 +User 901,1.12,1.28,1.44,0.37,0.78,1.5,3.18,2.78,2.08,3.44 +User 902,0.67,1.4,2.32,0.55,0.94,2.38,3.19,2.71,1.5,2.38 +User 903,1.22,0.72,1.18,1.09,0.74,2.6,3.19,3.14,2.27,2.46 +User 904,0.67,2.88,0.26,1.91,1.74,1.6,3.18,2.64,1.63,2.46 +User 905,0.7,1.04,1.47,0.31,0.98,1.62,3.18,2.72,1.09,3.34 +User 906,1.79,0.6,1.6,0.42,1.02,2.1,3.19,2.91,1.66,2.5 +User 907,0.7,1.68,0.3,0.59,0.26,1.16,3.18,2.94,1.57,3.14 +User 908,0.77,1.64,2.85,0.53,1.04,1.94,3.2,2.95,1.25,2.32 +User 909,0.51,1.2,1.07,0.49,1.14,2.04,3.18,3.22,1.47,2.82 +User 910,0.74,1.4,1.1,0.34,1.2,1.54,3.18,2.49,1.73,2.94 +User 911,0.83,1.36,0.21,0.53,0.16,0.38,3.18,2.93,2.02,2.78 +User 912,0.9,1.24,1.15,0.46,1.26,2.24,3.18,2.93,1.82,2.82 +User 913,1.15,0.96,0.29,0.29,0.86,1.36,3.17,2.97,1.89,3.42 +User 914,0.7,1.52,1.65,0.67,0.74,1.32,3.19,2.78,1.5,2.66 +User 915,0.42,1.08,0.74,0.91,0.9,2.3,3.18,2.87,1.25,2.96 +User 916,0.7,1.8,3.62,1.37,1.46,1.62,3.19,2.75,1.12,3.42 +User 917,0.77,1.2,1.63,0.8,1.18,2.38,3.19,2.54,1.47,2.38 +User 918,0.77,1.28,1.01,0.34,0.9,1.72,3.18,3.13,1.31,2.78 +User 919,0.93,1.08,0.27,0.27,0.34,1.02,3.17,2.86,1.63,3.36 +User 920,0.61,1.28,0.59,0.47,0.7,1.02,3.18,2.58,1.82,2.8 +User 921,1.25,1.36,1.6,0.64,0.94,2.38,3.19,2.9,1.92,2.72 +User 922,1.18,1.32,0.19,0.32,0.34,1.08,3.17,2.99,1.22,3.12 +User 923,1.06,0.88,0.83,0.54,0.64,2.02,3.18,2.86,1.5,2.74 +User 924,0.9,1.36,1.42,0.55,0.86,1.48,3.18,2.89,1.73,2.94 +User 925,0.74,1.44,2.75,0.45,0.98,1.74,3.2,2.87,1.38,2.34 +User 926,0.83,1.36,2.3,0.77,0.94,2.52,3.19,2.73,1.7,2.42 +User 927,0.77,2.48,1.7,0.51,1.36,2.04,3.19,2.81,1.41,2.34 +User 928,0.99,1.2,0.14,0.51,0.42,1.46,3.18,2.62,1.25,2.7 +User 929,0.64,1.32,0.27,0.57,0.74,2.38,3.18,2.81,1.38,2.4 +User 930,0.83,1.24,0.35,0.5,0.78,1.7,3.18,2.97,2.05,2.9 +User 931,1.12,1.6,1.01,0.45,0.94,2.16,3.18,2.8,1.09,3.18 +User 932,0.83,1.08,2.91,0.55,1.38,2.24,3.2,2.98,1.41,2.5 +User 933,0.9,1.2,1.33,0.3,0.98,1.5,3.18,2.66,1.22,3.28 +User 934,0.67,1.12,0.43,0.39,0.62,1.48,3.18,2.98,2.05,2.72 +User 935,0.61,1.16,0.19,0.53,0.78,1.22,3.17,2.86,1.7,3.02 +User 936,0.64,1.08,1.54,0.42,0.5,1.4,3.18,2.7,1.18,2.8 +User 937,0.83,0.96,1.15,0.43,0.74,1.82,3.18,2.98,1.92,2.78 +User 938,0.9,1.64,1.12,0.53,1.58,2.58,3.18,2.79,1.54,2.5 +User 939,0.8,1.52,1.26,0.51,1.44,2.78,3.18,2.82,1.47,2.42 +User 940,0.74,1.2,1.14,0.42,1.68,3.14,3.18,2.72,1.09,2.46 +User 941,1.22,1,1.57,0.46,0.74,2.54,3.19,2.91,1.95,2.46 +User 942,0.35,1.96,0.72,0.55,0.72,1.78,3.18,2.88,1.34,2.82 +User 943,0.7,1.8,2.27,0.43,1.42,1.88,3.2,2.7,1.47,2.46 +User 944,0.64,1.68,0.24,0.47,0.94,1.66,3.18,2.77,1.57,3.04 +User 945,0.67,1.48,0.4,0.55,1.86,1.84,3.18,2.96,2.4,3.04 +User 946,0.58,0.88,0.24,0.49,1.2,2.06,3.18,2.83,1.54,2.72 +User 947,1.15,1.48,0.77,0.22,1.04,1.52,3.17,2.74,1.57,3.38 +User 948,0.54,1.28,0.24,0.57,0.46,1.34,3.18,2.79,1.86,2.54 +User 949,0.93,2.12,0.27,0.46,1.1,2.56,3.18,2.9,1.89,2.78 +User 950,0.83,1.72,1.42,0.95,1.34,2.28,3.19,2.54,1.6,2.4 +User 951,0.64,1.28,0.8,0.18,0.82,1.34,3.18,2.66,1.25,2.94 +User 952,1.06,0.96,2.57,0.51,0.82,1.96,3.19,2.74,1.66,2.46 +User 953,0.93,2.08,1.26,0.56,0.94,2.56,3.18,2.81,1.63,2.54 +User 954,1.87,0.8,1.66,0.98,0.46,1.26,3.19,2.78,1.28,2.5 +User 955,1.25,0.84,1.71,1.12,0.34,1.22,3.19,2.7,1.5,2.48 +User 956,0.61,1.08,2.22,0.65,1.2,2.06,3.19,2.62,1.31,2.34 +User 957,0.86,1.8,1.33,0.57,1.38,2.62,3.18,2.82,1.54,2.54 +User 958,1.34,1.16,0.66,0.34,0.82,1.34,3.17,2.66,1.02,3.42 +User 959,0.61,1.44,0.3,0.4,0.8,1.28,3.18,2.8,1.73,2.88 +User 960,1.41,1.04,0.32,0.62,0.54,2.4,3.18,3.18,1.82,2.66 +User 961,0.58,1.24,1.95,0.61,1.22,1.86,3.19,2.72,1.7,2.38 +User 962,0.85,1.12,1.1,0.41,1.22,2,3.18,2.98,1.41,2.88 +User 963,0.61,1.4,0.24,0.42,0.98,1.42,3.17,2.82,2.18,3.2 +User 964,0.96,1.16,2.7,0.62,0.62,1.8,3.2,2.81,1.22,2.4 +User 965,1.25,1.24,0.43,0.62,0.72,2.7,3.18,3.07,1.82,2.8 +User 966,0.64,0.96,0.22,0.38,1.74,2.26,3.17,3.19,1.79,3.28 +User 967,0.91,1.96,1.82,0.4,1.52,1.82,3.19,2.74,1.73,2.38 +User 968,0.74,1.36,0.64,0.54,0.64,1.7,3.18,2.85,1.66,2.58 +User 969,0.51,1.2,0.22,0.73,0.9,2.22,3.18,2.77,1.34,3.05 +User 970,0.8,1.32,0.4,0.61,0.32,0.96,3.18,2.57,1.54,2.54 +User 971,0.58,1.96,0.24,0.47,1.04,1.74,3.18,2.7,1.57,2.62 +User 972,1.28,1.24,0.14,0.55,0.62,2.26,3.18,2.86,2.46,2.54 +User 973,1.22,1.16,0.38,1.55,0.4,1.24,3.18,2.82,1.92,2.54 +User 974,0.38,1.96,0.19,0.48,1.14,2.14,3.18,2.78,1.54,2.58 +User 975,1.02,2.44,1.89,0.47,1.76,2.5,3.19,2.66,1.73,2.48 +User 976,0.74,1.12,0.3,0.53,0.88,1.38,3.17,2.78,0.99,3.2 +User 977,1.25,0.92,1.12,0.38,0.78,1.68,3.18,2.79,1.34,2.8 +User 978,0.61,1.32,0.67,0.43,1.3,1.78,3.17,2.81,1.34,3.02 +User 979,0.93,0.2,0.13,0.43,0.3,0.4,3.18,2.98,1.12,2.46 +User 980,0.93,0.56,1.13,0.51,1.34,2.36,3.18,2.87,1.34,2.4 diff --git a/materials/python/py_worksheet_inference2/py_worksheet_inference2.ipynb b/materials/python/py_worksheet_inference2/py_worksheet_inference2.ipynb new file mode 100644 index 0000000..f8b14a8 --- /dev/null +++ b/materials/python/py_worksheet_inference2/py_worksheet_inference2.ipynb @@ -0,0 +1,2161 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "d79f41ef0204beaa753e32623c9017e4", + "grade": false, + "grade_id": "cell-f863750069537ead", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "# Worksheet 12 - The Bootstrap\n", + "\n", + "### Lecture and Tutorial Learning Goals:\n", + "\n", + "After completing this week's lecture and tutorial work, you will be able to:\n", + "- Explain why we don't have a sampling distribution in practice/real life.\n", + "- Define bootstrapping.\n", + "- Use Python to create a bootstrap distribution to approximate a sampling distribution.\n", + "- Contrast bootstrap and sampling distributions.\n", + "\n", + "This worksheet covers parts of [Chapter 10](https://python.datasciencebook.ca/inference) of the online textbook. You should read this chapter before attempting this assignment. Any place you see `___`, you must fill in the function, variable, or data to complete the code. Substitute the `raise NotImplementedError` with your completed code and answers then proceed to run the cell." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "f5492ab327f894773a7e522f3ef0e51d", + "grade": false, + "grade_id": "cell-55b5050a0a343a4f", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "### Run this cell before continuing.\n", + "import altair as alt\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "# Simplify working with large datasets in Altair\n", + "alt.data_transformers.disable_max_rows()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "45827f1d33373e875656a0a097fbe1ef", + "grade": false, + "grade_id": "cell-b0098728d66708d2", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 1.1** True/False:\n", + "
{points: 1}\n", + "\n", + "In real life, we typically take many samples from the population and create a sampling distribution when we perform estimation. True or false?\n", + "\n", + "*Assign your answer to an object called `answer1_1`. Your answer should be a boolean. i.e. `True` or `False`.*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "579b8b2a8396e609a0433b4d4864a97c", + "grade": false, + "grade_id": "cell-03cc711477e4baf7", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "049d2d2aa0a95ce23becd0e14ba44947", + "grade": true, + "grade_id": "cell-e8aa24da1ef5f535", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(answer1_1)).encode(\"utf-8\")+b\"7dab1\").hexdigest() == \"9bb5b27272228a3327500df88a38482cb437b5a3\", \"type of answer1_1 is not bool. answer1_1 should be a bool\"\n", + "assert sha1(str(answer1_1).encode(\"utf-8\")+b\"7dab1\").hexdigest() == \"f2d04d359c7fe55f58eba98627f41f84c123e7df\", \"boolean value of answer1_1 is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "0210bbb99abf687e877faf85810a29c8", + "grade": false, + "grade_id": "cell-05b19510ad97aeb3", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 1.2** Ordering\n", + "
{points: 1}\n", + "\n", + "Correctly re-order the steps for creating a bootstrap sample from those listed below. \n", + "\n", + "1. record the observation's value\n", + "2. repeat the above the same number of times as there are observations in the original sample \n", + "3. return the observation to the original sample\n", + "4. randomly draw an observation from the original sample (which was drawn from the population)\n", + "\n", + "Create your answer by reordering values below in the `answer1_2` list with the correct order for the steps above for creating a bootstrap sample." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "5524eabbbbec4190912c0d4962f5eebc", + "grade": false, + "grade_id": "cell-dbdb7facfc6bda43", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "answer1_2 = [1, 2, 3, 4] # reorder the values!\n", + "# your code here\n", + "raise NotImplementedError" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "61128bfc4be2d70ee4555da071d5121c", + "grade": true, + "grade_id": "cell-8a257d7535ce46fe", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(\"\".join(map(str, answer1_2)))).encode(\"utf-8\")+b\"a4b69\").hexdigest() == \"fcb0e77b930c9c9ff41b1fb69dfc8f881ab4739c\", \"type of \\\"\\\".join(map(str, answer1_2)) is not str. \\\"\\\".join(map(str, answer1_2)) should be an str\"\n", + "assert sha1(str(len(\"\".join(map(str, answer1_2)))).encode(\"utf-8\")+b\"a4b69\").hexdigest() == \"d641cf4c1efc0c23deb37c52f153eb908ca1c146\", \"length of \\\"\\\".join(map(str, answer1_2)) is not correct\"\n", + "assert sha1(str(\"\".join(map(str, answer1_2)).lower()).encode(\"utf-8\")+b\"a4b69\").hexdigest() == \"ae636edaf5bcf99d2f7c22428ef2eadceac9613a\", \"value of \\\"\\\".join(map(str, answer1_2)) is not correct\"\n", + "assert sha1(str(\"\".join(map(str, answer1_2))).encode(\"utf-8\")+b\"a4b69\").hexdigest() == \"ae636edaf5bcf99d2f7c22428ef2eadceac9613a\", \"correct string value of \\\"\\\".join(map(str, answer1_2)) but incorrect case of letters\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "83650d768909b0827002ccde84fb13c7", + "grade": false, + "grade_id": "cell-a612ade2b8ba83fc", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 1.3** Multiple choice\n", + "
{points: 1}\n", + "\n", + "From the list below, choose the correct description of a bootstrap distribution for a point estimate:\n", + "\n", + "A. a list of point estimates calculated from many samples drawn with replacement from the population\n", + "\n", + "B. a list of point estimates calculated from many samples drawn without replacement from the population\n", + "\n", + "C. a list of point estimates calculated from bootstrap samples drawn with replacement from a single sample (that was drawn from the population)\n", + "\n", + "D. a list of point estimates calculated from bootstrap samples drawn without replacement from a single sample (that was drawn from the population)\n", + "\n", + "*Assign your answer to an object called `answer1_3`. Your answer should be an uppercase letter and is surrounded by quotes. (e.g. `\"F\"`)*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "2b5e205723a8c4fce7632c22a3fd7766", + "grade": false, + "grade_id": "cell-fe8959defed4a439", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "5549f1cfd68cba1b078b1eb50eb996c2", + "grade": true, + "grade_id": "cell-59dbb6a427a133c5", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(answer1_3)).encode(\"utf-8\")+b\"8eaae\").hexdigest() == \"8236806b120b8f3c719364f30c03cf980d1bd5ef\", \"type of answer1_3 is not str. answer1_3 should be an str\"\n", + "assert sha1(str(len(answer1_3)).encode(\"utf-8\")+b\"8eaae\").hexdigest() == \"0ef18e313e6525dc4d10b34e4a8a25d96ee21a05\", \"length of answer1_3 is not correct\"\n", + "assert sha1(str(answer1_3.lower()).encode(\"utf-8\")+b\"8eaae\").hexdigest() == \"33397f53e6d9277b44226cd58359c46214c631f2\", \"value of answer1_3 is not correct\"\n", + "assert sha1(str(answer1_3).encode(\"utf-8\")+b\"8eaae\").hexdigest() == \"9f0839d3bb14517938815ff856704e4f3b3b4fcc\", \"correct string value of answer1_3 but incorrect case of letters\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "027e1dbd9f5d9eae8827885d72bfcecb", + "grade": false, + "grade_id": "cell-1df2a1ba39ccc80d", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 1.4** Multiple choice\n", + "
{points: 1}\n", + "\n", + "From the list below, choose the correct explanation of why, when performing estimation, we want to report a plausible **range** for the true population quantity we are trying to estimate along with the point estimate:\n", + "\n", + "A. The point estimate is our best guess at the true population quantity we are trying to estimate\n", + "\n", + "B. The point estimate will often not be the exact value of the true population quantity we are trying to estimate\n", + "\n", + "C. The value of a point estimate from one sample might very well be different than the value of a point estimate from another sample.\n", + "\n", + "D. B & C\n", + "\n", + "F. A & C\n", + "\n", + "E. None of the above\n", + "\n", + "*Assign your answer to an object called `answer1_4`. Your answer should be an uppercase letter and is surrounded by quotes (e.g. `\"F\"`).*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "2637a738c7a900e4e9c741a57d77c698", + "grade": false, + "grade_id": "cell-fd7e89338bbb71ca", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "0de4fbdfd6b13fdb565e7452d0282581", + "grade": true, + "grade_id": "cell-9448b3731eccbe8c", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(answer1_4)).encode(\"utf-8\")+b\"cfdac\").hexdigest() == \"5d910baffabead6858a437a24199aa5008e1d0d8\", \"type of answer1_4 is not str. answer1_4 should be an str\"\n", + "assert sha1(str(len(answer1_4)).encode(\"utf-8\")+b\"cfdac\").hexdigest() == \"b4b93585cea3569021ea55ce1104209d9d06228e\", \"length of answer1_4 is not correct\"\n", + "assert sha1(str(answer1_4.lower()).encode(\"utf-8\")+b\"cfdac\").hexdigest() == \"598be569f19acf1c430da7689763029b50e28806\", \"value of answer1_4 is not correct\"\n", + "assert sha1(str(answer1_4).encode(\"utf-8\")+b\"cfdac\").hexdigest() == \"f4c339df3717ca1512ad9ee61c66d13bdf039628\", \"correct string value of answer1_4 but incorrect case of letters\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "0a40a5c35842025d17e27bb17bb691e8", + "grade": false, + "grade_id": "cell-76363f7f1f56807e", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "### Continuing with our virtual population of Canadian seniors from last worksheet\n", + "\n", + "Here we re-create the virtual population (ages of all Canadian seniors) we used in the last worksheet. It was bounded by realistic values ($\\geq$ 65 and $\\leq$ 118):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "be29c9e37a8fd4060ff21b414be3e106", + "grade": false, + "grade_id": "cell-522aafd1e9430ef3", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "# Run this cell to simulate a large finite population\n", + "# Don't change the seed!\n", + "np.random.seed(4321)\n", + "\n", + "can_seniors = pd.DataFrame({\n", + " 'age': np.random.exponential(1 / 0.1, 2000000) ** 2 + 65,\n", + "}).query(\n", + " \"65 <= age <= 118\"\n", + ")\n", + "can_seniors" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "5561245d433c1e817a99ae2a8ba5d19c", + "grade": false, + "grade_id": "cell-557951d5cb618c2c", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Let's remind ourselves of what this population looks like:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "ba419372cc1f1da4c4107ab41ed8772d", + "grade": false, + "grade_id": "cell-ac4865a9c4709bbb", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "# Run this cell\n", + "pop_dist = alt.Chart(can_seniors, title='Population distribution').mark_bar().encode(\n", + " x=alt.X(\"age\")\n", + " .title(\"Age (years)\")\n", + " .bin(maxbins=30),\n", + " y=\"count()\"\n", + ")\n", + "pop_dist" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "80ca92fd78203ba5c6755adb306bb512", + "grade": false, + "grade_id": "cell-f2e798c845edc3ee", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "### Estimate the mean age of Canadian Seniors\n", + "\n", + "Let's say we are interested in estimating the mean age of Canadian Seniors. Given that we have the population (we created it) we could just calculate the mean age from this population data. However in real life, we usually only have one small-ish sample from the population. Also, from our experimentation with sampling distributions, we know that different random samples will give us different point estimates. We also know from these experiments that the point estimates from different random samples will mostly be close to the true population quanitity we are trying to estimate, and how close depends on the sample size.\n", + "\n", + "What about in real life though, when we only have one sample? Can we say how close? Or at least give some plausible range of where we would expect the population quanitity we are trying to estimate to fall? Yes! We can do this using a method called bootstrapping! Let's explore how to create a bootstrap distribution from a single sample using Python and then we will discuss how the bootstrap distribution relates to the sampling distribution, and what it can tell us about the true population quantity we are trying to estimate." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "5c79b5dab23b2d6c7cf9cf3d3f3ab343", + "grade": false, + "grade_id": "cell-9282c2797da1931b", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Let's draw a single sample of size 40 from the population and visualize it:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "cd14628713ad4442b4df17a7b5050b85", + "grade": false, + "grade_id": "cell-01de9069dec4f4e5", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "# Run this cell\n", + "one_sample = can_seniors.sample(40, random_state=12345)\n", + "one_sample" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "bb65312fd841597bc6cf7c912c0c436a", + "grade": false, + "grade_id": "cell-1468c684182d5b3b", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "# Run this cell\n", + "one_sample_dist = alt.Chart(one_sample, title=\"Distribution of one sample\").mark_bar().encode(\n", + " x=alt.X(\"age\")\n", + " .title(\"Age (years)\")\n", + " .bin(maxbins=30),\n", + " y=\"count()\"\n", + ")\n", + "one_sample_dist" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "d2b8dbe1add87bc2a28074fb65ec08e0", + "grade": false, + "grade_id": "cell-aaf103d19b9fba0d", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 1.5** \n", + "
{points: 1}\n", + "\n", + "Calculate the mean age (our point estimate of interest) from the random sample you just took (`one_sample`). Assign the result to a variable called `one_sample_estimates`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "f28104353e674cf54cd5099322303646", + "grade": false, + "grade_id": "cell-443a7d1dcaf35e9a", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError\n", + "one_sample_estimates" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "e6e36e603af6336ab2f8e2c531fc96cb", + "grade": true, + "grade_id": "cell-8e9e83895e2967dd", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(one_sample_estimates.shape[0])).encode(\"utf-8\")+b\"69c8b\").hexdigest() == \"c30e61e32612d6d19ccaad8b9637cf86f83e27bc\", \"type of one_sample_estimates.shape[0] is not int. Please make sure it is int and not np.int64, etc. You can cast your value into an int using int()\"\n", + "assert sha1(str(one_sample_estimates.shape[0]).encode(\"utf-8\")+b\"69c8b\").hexdigest() == \"e87449233cd75cb168767604f951fc421e71a4d8\", \"value of one_sample_estimates.shape[0] is not correct\"\n", + "\n", + "assert sha1(str(type(round(one_sample_estimates, 2))).encode(\"utf-8\")+b\"69c8c\").hexdigest() == \"b53adc0fef715dc44cc86e74f179b68917951689\", \"type of round(one_sample_estimates, 2) is not correct\"\n", + "assert sha1(str(round(one_sample_estimates, 2)).encode(\"utf-8\")+b\"69c8c\").hexdigest() == \"d3ff7ac06a48e06bf831b0d91503a15ed76408e8\", \"value of round(one_sample_estimates, 2) is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "61586671f8e28198caa1f4ebf885cc74", + "grade": false, + "grade_id": "cell-5575d82939196fc9", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 1.6** \n", + "
{points: 1}\n", + "\n", + "To generate a single bootstrap sample in Python, we can use the `sample` method with `frac=1` to indicate that the bootstrap sample size is the same as the original sample. In contrast to when we created a sampling distribution from a population, we will set `replace=True` to ensure we don't end up with the exact same sample each time when perfroming the bootstrap.\n", + "\n", + "Use `sample` to take a single bootstrap sample from the sample you drew from the population. Use 4321 as the `random_state` and name this bootstrap sample `boot1`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "8b7b9cbb599a436317f9e8d58395cf41", + "grade": false, + "grade_id": "cell-239c20c4566f1f3c", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# ___ = one_sample.___(frac=___, replace=___, random_state=4321)\n", + "\n", + "# your code here\n", + "raise NotImplementedError\n", + "boot1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "b5f2f784513793c5f80790cefc49068b", + "grade": true, + "grade_id": "cell-af716b8959aee1ac", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(\"\".join(boot1.columns))).encode(\"utf-8\")+b\"24280\").hexdigest() == \"55590431376ea711d4ae8f61bbd4634cb6ff1871\", \"type of \\\"\\\".join(boot1.columns) is not str. \\\"\\\".join(boot1.columns) should be an str\"\n", + "assert sha1(str(len(\"\".join(boot1.columns))).encode(\"utf-8\")+b\"24280\").hexdigest() == \"47b8c7df4101c80d6bb728cc2ca67a78f0d45771\", \"length of \\\"\\\".join(boot1.columns) is not correct\"\n", + "assert sha1(str(\"\".join(boot1.columns).lower()).encode(\"utf-8\")+b\"24280\").hexdigest() == \"99c1df075799c51842dc7d34265671b3366c9082\", \"value of \\\"\\\".join(boot1.columns) is not correct\"\n", + "assert sha1(str(\"\".join(boot1.columns)).encode(\"utf-8\")+b\"24280\").hexdigest() == \"99c1df075799c51842dc7d34265671b3366c9082\", \"correct string value of \\\"\\\".join(boot1.columns) but incorrect case of letters\"\n", + "\n", + "assert sha1(str(type(boot1.shape[0])).encode(\"utf-8\")+b\"24281\").hexdigest() == \"c13151ae770ac15e1ed75c3a07067276a9a4e5ef\", \"type of boot1.shape[0] is not int. Please make sure it is int and not np.int64, etc. You can cast your value into an int using int()\"\n", + "assert sha1(str(boot1.shape[0]).encode(\"utf-8\")+b\"24281\").hexdigest() == \"5f88d6b14c734e049fface3670735f90b2dfa3b9\", \"value of boot1.shape[0] is not correct\"\n", + "\n", + "assert sha1(str(type(round(sum(boot1.age), 2))).encode(\"utf-8\")+b\"24282\").hexdigest() == \"0f2f563a8ab32ebe98425aadd14d54c6097fd209\", \"type of round(sum(boot1.age), 2) is not float. Please make sure it is float and not np.float64, etc. You can cast your value into a float using float()\"\n", + "assert sha1(str(round(round(sum(boot1.age), 2), 2)).encode(\"utf-8\")+b\"24282\").hexdigest() == \"f84e22734002b1c6441526997f3d1c4ad1bc105e\", \"value of round(sum(boot1.age), 2) is not correct (rounded to 2 decimal places)\"\n", + "\n", + "assert sha1(str(type(sum(range(boot1.shape[0])))).encode(\"utf-8\")+b\"24283\").hexdigest() == \"1e626cc484c7c45152505e3cbb32a45dad72d8d7\", \"type of sum(range(boot1.shape[0])) is not int. Please make sure it is int and not np.int64, etc. You can cast your value into an int using int()\"\n", + "assert sha1(str(sum(range(boot1.shape[0]))).encode(\"utf-8\")+b\"24283\").hexdigest() == \"304a9eb714b650a38f762e0eebdb9f0cda120d4a\", \"value of sum(range(boot1.shape[0])) is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "6b31a0ff4438ccff63a746d6d0600cb2", + "grade": false, + "grade_id": "cell-7760b102574e0887", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 1.7** Multiple choice\n", + "
{points: 1}\n", + "\n", + "Why do we change `replace` to `TRUE`?\n", + "\n", + "A. Taking a bootstrap sample involves drawing observations from the original population without replacement\n", + "\n", + "B. Taking a bootstrap sample involves drawing observations from the original population with replacement\n", + "\n", + "C. Taking a bootstrap sample involves drawing observations from the original sample without replacement\n", + "\n", + "D. Taking a bootstrap sample involves drawing observations from the original sample with replacement\n", + "\n", + "*Assign your answer to an object called `answer1_7`. Your answer should be an uppercase letter and is surrounded by quotes (e.g. `\"F\"`).*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "c9a0b9c0c32e57ee03fed8db30f605cd", + "grade": false, + "grade_id": "cell-ba91c2de68609fe7", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "5ff78ace2d87384478c04a7f04789875", + "grade": true, + "grade_id": "cell-1b79e9b905b70215", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(answer1_7)).encode(\"utf-8\")+b\"522a\").hexdigest() == \"09043d02fa40b8de2026c66f3a769c0f2134511d\", \"type of answer1_7 is not str. answer1_7 should be an str\"\n", + "assert sha1(str(len(answer1_7)).encode(\"utf-8\")+b\"522a\").hexdigest() == \"55dde6885df787c3468219416d60cf5ad2e955e5\", \"length of answer1_7 is not correct\"\n", + "assert sha1(str(answer1_7.lower()).encode(\"utf-8\")+b\"522a\").hexdigest() == \"1f974b80e79a76217cf5e02f8c44938902cf954c\", \"value of answer1_7 is not correct\"\n", + "assert sha1(str(answer1_7).encode(\"utf-8\")+b\"522a\").hexdigest() == \"1e2453c20b80aaf43373782b1d42f49d2d4bf97a\", \"correct string value of answer1_7 but incorrect case of letters\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "fa0e2f824c4681092e7cb0541d7c9650", + "grade": false, + "grade_id": "cell-93ea2b7d26e0e137", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 1.8** \n", + "
{points: 1}\n", + "\n", + "Visualize the distribution of the bootstrap sample you just took (`boot1`). Set `maxbins=30`, name the plot `boot1_dist`, and give the plot and the x-axis a descriptive title." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "84c2d8fb78a780441b5146d6c17ca260", + "grade": false, + "grade_id": "cell-389271affd1fc5af", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError\n", + "boot1_dist" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "cf915b13d16fbb0b09e67a777eca4642", + "grade": true, + "grade_id": "cell-3b7b4b4c4cc4971e", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(boot1_dist.encoding.x['shorthand'])).encode(\"utf-8\")+b\"63385\").hexdigest() == \"a3e95260e4b84484531fb67f918a3d91f1b437da\", \"type of boot1_dist.encoding.x['shorthand'] is not str. boot1_dist.encoding.x['shorthand'] should be an str\"\n", + "assert sha1(str(len(boot1_dist.encoding.x['shorthand'])).encode(\"utf-8\")+b\"63385\").hexdigest() == \"cf4ad25d4e56232b52eb2b8fa6fea0976723b228\", \"length of boot1_dist.encoding.x['shorthand'] is not correct\"\n", + "assert sha1(str(boot1_dist.encoding.x['shorthand'].lower()).encode(\"utf-8\")+b\"63385\").hexdigest() == \"b620a126677d8cce956a94ede4a79d4b840ceaa2\", \"value of boot1_dist.encoding.x['shorthand'] is not correct\"\n", + "assert sha1(str(boot1_dist.encoding.x['shorthand']).encode(\"utf-8\")+b\"63385\").hexdigest() == \"b620a126677d8cce956a94ede4a79d4b840ceaa2\", \"correct string value of boot1_dist.encoding.x['shorthand'] but incorrect case of letters\"\n", + "\n", + "assert sha1(str(type(boot1_dist.encoding.y['shorthand'])).encode(\"utf-8\")+b\"63386\").hexdigest() == \"501858feb6e97df0ec4b800f3dd4458e68fa42bb\", \"type of boot1_dist.encoding.y['shorthand'] is not str. boot1_dist.encoding.y['shorthand'] should be an str\"\n", + "assert sha1(str(len(boot1_dist.encoding.y['shorthand'])).encode(\"utf-8\")+b\"63386\").hexdigest() == \"1f9ebde3b2e1fd53b2100fa12ef507f6f4bbbb31\", \"length of boot1_dist.encoding.y['shorthand'] is not correct\"\n", + "assert sha1(str(boot1_dist.encoding.y['shorthand'].lower()).encode(\"utf-8\")+b\"63386\").hexdigest() == \"862fbfd915802dcac92e7eed80fd701e9f56c406\", \"value of boot1_dist.encoding.y['shorthand'] is not correct\"\n", + "assert sha1(str(boot1_dist.encoding.y['shorthand']).encode(\"utf-8\")+b\"63386\").hexdigest() == \"862fbfd915802dcac92e7eed80fd701e9f56c406\", \"correct string value of boot1_dist.encoding.y['shorthand'] but incorrect case of letters\"\n", + "\n", + "assert sha1(str(type(boot1_dist.mark)).encode(\"utf-8\")+b\"63387\").hexdigest() == \"e34bde974fa6d8fbf139facc182257ef7c308299\", \"type of boot1_dist.mark is not str. boot1_dist.mark should be an str\"\n", + "assert sha1(str(len(boot1_dist.mark)).encode(\"utf-8\")+b\"63387\").hexdigest() == \"90035ab0026133e11530bf28218c083fae3cf7c7\", \"length of boot1_dist.mark is not correct\"\n", + "assert sha1(str(boot1_dist.mark.lower()).encode(\"utf-8\")+b\"63387\").hexdigest() == \"0054fa843eff40960817aeb555dfa1d19d1a6ee2\", \"value of boot1_dist.mark is not correct\"\n", + "assert sha1(str(boot1_dist.mark).encode(\"utf-8\")+b\"63387\").hexdigest() == \"0054fa843eff40960817aeb555dfa1d19d1a6ee2\", \"correct string value of boot1_dist.mark but incorrect case of letters\"\n", + "\n", + "assert sha1(str(type(boot1_dist.data.shape[0])).encode(\"utf-8\")+b\"63388\").hexdigest() == \"f2971f93317f47222c9ac882f7b3ade86f5795a9\", \"type of boot1_dist.data.shape[0] is not int. Please make sure it is int and not np.int64, etc. You can cast your value into an int using int()\"\n", + "assert sha1(str(boot1_dist.data.shape[0]).encode(\"utf-8\")+b\"63388\").hexdigest() == \"89b20ac9fd99155d7e4fd4357117ec7a18b8c72d\", \"value of boot1_dist.data.shape[0] is not correct\"\n", + "\n", + "assert sha1(str(type(round(boot1_dist.data.sum(), 2))).encode(\"utf-8\")+b\"63389\").hexdigest() == \"ae038b97e8b8d13ba6f85d765b1af861933a8e43\", \"type of round(boot1_dist.data.sum(), 2) is not correct\"\n", + "assert sha1(str(round(boot1_dist.data.sum(), 2)).encode(\"utf-8\")+b\"63389\").hexdigest() == \"b005978a399740fa17acf86c47d2f245ad77bb81\", \"value of round(boot1_dist.data.sum(), 2) is not correct\"\n", + "\n", + "assert sha1(str(type(isinstance(boot1_dist.encoding.x['title'], str))).encode(\"utf-8\")+b\"6338a\").hexdigest() == \"24e01786aaa798d27799f3ecda326b69fd3ee2f6\", \"type of isinstance(boot1_dist.encoding.x['title'], str) is not bool. isinstance(boot1_dist.encoding.x['title'], str) should be a bool\"\n", + "assert sha1(str(isinstance(boot1_dist.encoding.x['title'], str)).encode(\"utf-8\")+b\"6338a\").hexdigest() == \"ff2f0a6065f536133d05b33c5c45ead89e17ab8a\", \"boolean value of isinstance(boot1_dist.encoding.x['title'], str) is not correct\"\n", + "\n", + "assert sha1(str(type(isinstance(boot1_dist.encoding.y['title'], str))).encode(\"utf-8\")+b\"6338b\").hexdigest() == \"42e63268ea461c85058342f79a636e33d5a4c2cd\", \"type of isinstance(boot1_dist.encoding.y['title'], str) is not bool. isinstance(boot1_dist.encoding.y['title'], str) should be a bool\"\n", + "assert sha1(str(isinstance(boot1_dist.encoding.y['title'], str)).encode(\"utf-8\")+b\"6338b\").hexdigest() == \"a801ed71a6625b89ff12387f5ec1b8095afc8cd4\", \"boolean value of isinstance(boot1_dist.encoding.y['title'], str) is not correct\"\n", + "\n", + "assert sha1(str(type(boot1_dist.title is not None)).encode(\"utf-8\")+b\"6338c\").hexdigest() == \"94ddd5b1c93ff666ae074f84c49e72174deef330\", \"type of boot1_dist.title is not None is not bool. boot1_dist.title is not None should be a bool\"\n", + "assert sha1(str(boot1_dist.title is not None).encode(\"utf-8\")+b\"6338c\").hexdigest() == \"f67953963f638d9bda3870e8ef52d2a37a4d7567\", \"boolean value of boot1_dist.title is not None is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "c691f81e9028349e41fe15d875710e53", + "grade": false, + "grade_id": "cell-84ed6755705e4eee", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Let's now compare our bootstrap sample to the original random sample that we drew from the population:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "b01b59bf18198c2762c01fd12f2171fe", + "grade": false, + "grade_id": "cell-afd154dc6f0c3e39", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "# Run this code cell\n", + "one_sample_dist & boot1_dist" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "47f3c85bb420a44735999d664286e765", + "grade": false, + "grade_id": "cell-fa64eb1f98987c99", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Earlier we calculate the mean of our original sample to be about 79.6 years. What is the mean of our bootstrap sample?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "d1a518041a9676d4efadd284fb7ae750", + "grade": false, + "grade_id": "cell-77b326e307cf1cf6", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "# Run this cell\n", + "boot1.mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "a6a6f6afe4ff8ff4ffe61ab9de6af88b", + "grade": false, + "grade_id": "cell-c33dd58cb3c572af", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "We see that original sample distrbution and the bootstrap sample distribution are of similar shape, but not identical. They also have different means. The difference of the frequency of the values in the bootstrap sample (and the difference of the value of the mean) comes from sampling from the original sample with replacement. Why sample with replacement? If we didn't we would end up with the original sample again. What we are trying to do with bootstrapping is to mimic drawing another sample from the population, without actually doing that. \n", + "\n", + "Why are we doing this? As mentioned earlier, in real life we typically only have one sample and thus we cannot create a sampling distribution that we can use to tell us about how we might expect our point estimate to behave if we took another sample. What we can do instead, is to use our sample as an estimate of our population, and sample from that with replacement (i.e., bootstrapping) many times to create many bootstrap samples. We can then calculate point estimates for each bootstrap sample and create a bootstrap distribution of our point estimates and use this as a proxy for a sampling distribution. We can finally use this bootstrap distribution of our point estimates to suggest how we might expected our point estimate to behave if we took another sample." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "b8d7a4a6b1c82473537c091b8fedb5dc", + "grade": false, + "grade_id": "cell-f5b5d685693ffe7f", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 1.9** \n", + "
{points: 1}\n", + "\n", + "What do 6 different bootstrap samples look like? Use the `sample` method to create a single data frame with 6 bootstrap samples drawn from the original sample we drew from the population, `one_sample`. Assign a new column called `replicate` to mark the sample number `(from 0 to 5)`. Name the data frame `boot6`.\n", + "\n", + "Set the seed as `1234`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "cb7b5423e04df399831cce7bc0ce223d", + "grade": false, + "grade_id": "cell-6607b2dec92a2913", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "np.random.seed(1234) # DO NOT CHANGE!\n", + "# your code here\n", + "raise NotImplementedError\n", + "boot6" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "747da8ad3d457e23ffa9db7c3991139d", + "grade": true, + "grade_id": "cell-e57717e45df34f9a", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(\"\".join(boot6.columns))).encode(\"utf-8\")+b\"d186b\").hexdigest() == \"c66e716694966b3c4e846b3d2821c0d99316f8ae\", \"type of \\\"\\\".join(boot6.columns) is not str. \\\"\\\".join(boot6.columns) should be an str\"\n", + "assert sha1(str(len(\"\".join(boot6.columns))).encode(\"utf-8\")+b\"d186b\").hexdigest() == \"1e2e4c8f5b4b5040d60b12497bf4b67722bc43fb\", \"length of \\\"\\\".join(boot6.columns) is not correct\"\n", + "assert sha1(str(\"\".join(boot6.columns).lower()).encode(\"utf-8\")+b\"d186b\").hexdigest() == \"2d27e032defa29039882d70b9edd9647a3987a0a\", \"value of \\\"\\\".join(boot6.columns) is not correct\"\n", + "assert sha1(str(\"\".join(boot6.columns)).encode(\"utf-8\")+b\"d186b\").hexdigest() == \"2d27e032defa29039882d70b9edd9647a3987a0a\", \"correct string value of \\\"\\\".join(boot6.columns) but incorrect case of letters\"\n", + "\n", + "assert sha1(str(type(boot6.shape[0])).encode(\"utf-8\")+b\"d186c\").hexdigest() == \"aaa03f354dbb97b4ab50c9556b86d480ef2827a5\", \"type of boot6.shape[0] is not int. Please make sure it is int and not np.int64, etc. You can cast your value into an int using int()\"\n", + "assert sha1(str(boot6.shape[0]).encode(\"utf-8\")+b\"d186c\").hexdigest() == \"41414090be6bc4fb76f32d3091c547b25da2d125\", \"value of boot6.shape[0] is not correct\"\n", + "\n", + "assert sha1(str(type(round(sum(boot6.age), 2))).encode(\"utf-8\")+b\"d186d\").hexdigest() == \"f05313692b21aaedd6d49c690539e87e6f175d67\", \"type of round(sum(boot6.age), 2) is not float. Please make sure it is float and not np.float64, etc. You can cast your value into a float using float()\"\n", + "assert sha1(str(round(round(sum(boot6.age), 2), 2)).encode(\"utf-8\")+b\"d186d\").hexdigest() == \"3ba4225f57f7dde91ea8d235584bfef8b64248cd\", \"value of round(sum(boot6.age), 2) is not correct (rounded to 2 decimal places)\"\n", + "\n", + "assert sha1(str(type(sum(boot6.replicate.unique()))).encode(\"utf-8\")+b\"d186e\").hexdigest() == \"129f0dbb09ab5cb525a334571083e48b4f6ec8b7\", \"type of sum(boot6.replicate.unique()) is not correct\"\n", + "assert sha1(str(sum(boot6.replicate.unique())).encode(\"utf-8\")+b\"d186e\").hexdigest() == \"2bbddc28354d82deeb0fcadcc5a12cd159efdb53\", \"value of sum(boot6.replicate.unique()) is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "b33288b01f7520dc423fb584d6d1e9b3", + "grade": false, + "grade_id": "cell-558b102565ddf4ae", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 2.0** \n", + "
{points: 1}\n", + "\n", + "Now visualize the six bootstrap sample distributions from `boot6` by faceting the `replicate` column. To facilitate comparing the distribution, lay the plots out in a single column and set each plot's height to 100. Name the plot object `boot6_dist` and give the plot and the x-axis a descriptive title." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "ad477d6f7ba270038b1d49988251c079", + "grade": false, + "grade_id": "cell-d1d36a4806776c6c", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# ___ = alt.Chart(___, title=___).___().___(\n", + "# x=alt.X(___)\n", + "# .title(___)\n", + "# .___(maxbins=30),\n", + "# y=___\n", + "# ).___(\n", + "# ___=100\n", + "# ).facet(\n", + "# ___,\n", + "# ___=1\n", + "# )\n", + "\n", + "# your code here\n", + "raise NotImplementedError\n", + "boot6_dist" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "1bbb6693d4860c6821d432f20eb44da8", + "grade": true, + "grade_id": "cell-38e6f9e544c5ce17", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(boot6_dist.facet['shorthand'])).encode(\"utf-8\")+b\"e35d0\").hexdigest() == \"aa0db619f76fbb9a5aca61561b8c2489a3ebcf3d\", \"type of boot6_dist.facet['shorthand'] is not str. boot6_dist.facet['shorthand'] should be an str\"\n", + "assert sha1(str(len(boot6_dist.facet['shorthand'])).encode(\"utf-8\")+b\"e35d0\").hexdigest() == \"a7f999a61e0bd4e652511622b6e8f58985f90d89\", \"length of boot6_dist.facet['shorthand'] is not correct\"\n", + "assert sha1(str(boot6_dist.facet['shorthand'].lower()).encode(\"utf-8\")+b\"e35d0\").hexdigest() == \"6c6b5c697188316c8bb4a59d167100ab4f5e0b8d\", \"value of boot6_dist.facet['shorthand'] is not correct\"\n", + "assert sha1(str(boot6_dist.facet['shorthand']).encode(\"utf-8\")+b\"e35d0\").hexdigest() == \"6c6b5c697188316c8bb4a59d167100ab4f5e0b8d\", \"correct string value of boot6_dist.facet['shorthand'] but incorrect case of letters\"\n", + "\n", + "assert sha1(str(type(boot6_dist.data.shape[0])).encode(\"utf-8\")+b\"e35d1\").hexdigest() == \"fdd9be6136ee9728e6276365aa197f71429990d4\", \"type of boot6_dist.data.shape[0] is not int. Please make sure it is int and not np.int64, etc. You can cast your value into an int using int()\"\n", + "assert sha1(str(boot6_dist.data.shape[0]).encode(\"utf-8\")+b\"e35d1\").hexdigest() == \"565bf1da03c8279168e6f52a83d9e2c8347019d7\", \"value of boot6_dist.data.shape[0] is not correct\"\n", + "\n", + "assert sha1(str(type(boot6_dist.title is not None)).encode(\"utf-8\")+b\"e35d2\").hexdigest() == \"1ad6f5ede7a7c1bbc761b78285ba793ac5703960\", \"type of boot6_dist.title is not None is not bool. boot6_dist.title is not None should be a bool\"\n", + "assert sha1(str(boot6_dist.title is not None).encode(\"utf-8\")+b\"e35d2\").hexdigest() == \"a9fde62d062b7e400afdd70bf763993b655daf8d\", \"boolean value of boot6_dist.title is not None is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "f61883754408e8b6af7f9c50916d6f83", + "grade": false, + "grade_id": "cell-8c48012a69725219", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 2.1** \n", + "
{points: 1}\n", + "\n", + "Calculate the mean of these 6 bootstrap samples using `groupby` and `mean` and save result into a column called `mean_age`. Use `reset_index` so that the resulting data frame has two columns: `replicate` and `mean`. Name the data frame `boot6_means`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "91b998b77bcff788c3cf6af2a828a988", + "grade": false, + "grade_id": "cell-b9692d80805c724a", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError\n", + "boot6_means" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "61be9473f496c622b6422d76f52b6bd1", + "grade": true, + "grade_id": "cell-f2cfe994fece602d", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(boot6_means.shape[0])).encode(\"utf-8\")+b\"73023\").hexdigest() == \"9d19c51bc8f65c5908bdb0b6870b7285541554e5\", \"type of boot6_means.shape[0] is not int. Please make sure it is int and not np.int64, etc. You can cast your value into an int using int()\"\n", + "assert sha1(str(boot6_means.shape[0]).encode(\"utf-8\")+b\"73023\").hexdigest() == \"278fe6de8faec074e3c026cb72e413cff0d151ee\", \"value of boot6_means.shape[0] is not correct\"\n", + "\n", + "assert sha1(str(type(boot6_means.shape[1])).encode(\"utf-8\")+b\"73024\").hexdigest() == \"c6a459d5828555136341ae280afa7e1e9e80177a\", \"type of boot6_means.shape[1] is not int. Please make sure it is int and not np.int64, etc. You can cast your value into an int using int()\"\n", + "assert sha1(str(boot6_means.shape[1]).encode(\"utf-8\")+b\"73024\").hexdigest() == \"3134ca1dfeddd089418b0733dcc1139566267350\", \"value of boot6_means.shape[1] is not correct\"\n", + "\n", + "assert sha1(str(type(\"\".join(boot6_means.columns))).encode(\"utf-8\")+b\"73025\").hexdigest() == \"e353e77ead3aa4f022e22895c6c549d28e108c78\", \"type of \\\"\\\".join(boot6_means.columns) is not str. \\\"\\\".join(boot6_means.columns) should be an str\"\n", + "assert sha1(str(len(\"\".join(boot6_means.columns))).encode(\"utf-8\")+b\"73025\").hexdigest() == \"dbf33657acbc16d757f7d2b76f65144e2fbfa3ba\", \"length of \\\"\\\".join(boot6_means.columns) is not correct\"\n", + "assert sha1(str(\"\".join(boot6_means.columns).lower()).encode(\"utf-8\")+b\"73025\").hexdigest() == \"2e7ac26b36b574313a3b93460a758738108cb1ea\", \"value of \\\"\\\".join(boot6_means.columns) is not correct\"\n", + "assert sha1(str(\"\".join(boot6_means.columns)).encode(\"utf-8\")+b\"73025\").hexdigest() == \"2e7ac26b36b574313a3b93460a758738108cb1ea\", \"correct string value of \\\"\\\".join(boot6_means.columns) but incorrect case of letters\"\n", + "\n", + "assert sha1(str(type(round(boot6_means[\"mean_age\"][0], 2))).encode(\"utf-8\")+b\"73026\").hexdigest() == \"b7903f93e4cd3fa764f1e9b2cc7f21478f111915\", \"type of round(boot6_means[\\\"mean_age\\\"][0], 2) is not correct\"\n", + "assert sha1(str(round(boot6_means[\"mean_age\"][0], 2)).encode(\"utf-8\")+b\"73026\").hexdigest() == \"e9e00d82ae4ed7e2fb5810c2d5122be998e65b8b\", \"value of round(boot6_means[\\\"mean_age\\\"][0], 2) is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "5671e699c3e31960d4415c123aaf7e31", + "grade": false, + "grade_id": "cell-00909da5655c00a5", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 2.2** \n", + "
{points: 1}\n", + "\n", + "Let's now take 1000 bootstrap samples from the original sample we drew from the population (`one_sample`). As previously, assign a new column called `replicate` to mark the sample number `(from 0 to 999)`. Name the data frame `boot1000`.\n", + "\n", + "Set the seed as `1234`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "9c086d48ca156ab2e246c0d47b45f47c", + "grade": false, + "grade_id": "cell-cd89ca0c9e456e1b", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "np.random.seed(1234) # DO NOT CHANGE!\n", + "# your code here\n", + "raise NotImplementedError\n", + "boot1000" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "20467d849eb49dac0d9699fe0f66c67d", + "grade": true, + "grade_id": "cell-343d880b6f801822", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(\"\".join(boot1000.columns))).encode(\"utf-8\")+b\"41f48\").hexdigest() == \"30e911154526115bed5bef52608efd2959454b63\", \"type of \\\"\\\".join(boot1000.columns) is not str. \\\"\\\".join(boot1000.columns) should be an str\"\n", + "assert sha1(str(len(\"\".join(boot1000.columns))).encode(\"utf-8\")+b\"41f48\").hexdigest() == \"978635d09c1ae3a0fd532abe6d7a1b639e45dbd1\", \"length of \\\"\\\".join(boot1000.columns) is not correct\"\n", + "assert sha1(str(\"\".join(boot1000.columns).lower()).encode(\"utf-8\")+b\"41f48\").hexdigest() == \"3ef1ded059ea2449c2e5d8501b7942de8b37abef\", \"value of \\\"\\\".join(boot1000.columns) is not correct\"\n", + "assert sha1(str(\"\".join(boot1000.columns)).encode(\"utf-8\")+b\"41f48\").hexdigest() == \"3ef1ded059ea2449c2e5d8501b7942de8b37abef\", \"correct string value of \\\"\\\".join(boot1000.columns) but incorrect case of letters\"\n", + "\n", + "assert sha1(str(type(boot1000.shape[0])).encode(\"utf-8\")+b\"41f49\").hexdigest() == \"6b780d3098fd088a47b9b26d7f141b6d741eabdc\", \"type of boot1000.shape[0] is not int. Please make sure it is int and not np.int64, etc. You can cast your value into an int using int()\"\n", + "assert sha1(str(boot1000.shape[0]).encode(\"utf-8\")+b\"41f49\").hexdigest() == \"838b6347958d0f04bcf9e60e3a645e645c0887e2\", \"value of boot1000.shape[0] is not correct\"\n", + "\n", + "assert sha1(str(type(round(sum(boot1000.age), 2))).encode(\"utf-8\")+b\"41f4a\").hexdigest() == \"7d4178bef1d0a81e59537916330273ce4916b16a\", \"type of round(sum(boot1000.age), 2) is not float. Please make sure it is float and not np.float64, etc. You can cast your value into a float using float()\"\n", + "assert sha1(str(round(round(sum(boot1000.age), 2), 2)).encode(\"utf-8\")+b\"41f4a\").hexdigest() == \"167286448a2b72ca3022938614371a420ed6d5db\", \"value of round(sum(boot1000.age), 2) is not correct (rounded to 2 decimal places)\"\n", + "\n", + "assert sha1(str(type(sum([x for x in range(boot1000.shape[0])]))).encode(\"utf-8\")+b\"41f4b\").hexdigest() == \"ad8eb29ef94faf6dadde0c54b376d6a037d21c3c\", \"type of sum([x for x in range(boot1000.shape[0])]) is not int. Please make sure it is int and not np.int64, etc. You can cast your value into an int using int()\"\n", + "assert sha1(str(sum([x for x in range(boot1000.shape[0])])).encode(\"utf-8\")+b\"41f4b\").hexdigest() == \"351f3f100b04f4bf16033919d2737782acc2c881\", \"value of sum([x for x in range(boot1000.shape[0])]) is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "2b364a8e7e238bbd65754aec737f6305", + "grade": false, + "grade_id": "cell-85473b296ef14d1c", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 2.3** \n", + "
{points: 1}\n", + "Calculate the mean of these 1000 bootstrap samples using `groupby` and `mean` and save result into a column called `mean_age`. Use `reset_index` so that the resulting data frame has two columns: `replicate` and `mean`. Name the data frame `boot1000_means`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "dcc7c1d09050e40ec4b40ee6316c5b02", + "grade": false, + "grade_id": "cell-51d5f2afbb677369", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError\n", + "boot1000_means" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "0460d4f1a5f4c4313a0188d60c515c54", + "grade": true, + "grade_id": "cell-bcf16788d57cef52", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(boot1000_means.shape[0])).encode(\"utf-8\")+b\"7957\").hexdigest() == \"2444a08e453a8d0ef3e793ef78b67b9f2a72516f\", \"type of boot1000_means.shape[0] is not int. Please make sure it is int and not np.int64, etc. You can cast your value into an int using int()\"\n", + "assert sha1(str(boot1000_means.shape[0]).encode(\"utf-8\")+b\"7957\").hexdigest() == \"e67c2733866e4be1795641a07170facf85eabd0a\", \"value of boot1000_means.shape[0] is not correct\"\n", + "\n", + "assert sha1(str(type(boot1000_means.shape[1])).encode(\"utf-8\")+b\"7958\").hexdigest() == \"6a49f74b0b13f81c862cfe564418c3106153c354\", \"type of boot1000_means.shape[1] is not int. Please make sure it is int and not np.int64, etc. You can cast your value into an int using int()\"\n", + "assert sha1(str(boot1000_means.shape[1]).encode(\"utf-8\")+b\"7958\").hexdigest() == \"478ff26dd09529f6afa9d303012b071cc70194e7\", \"value of boot1000_means.shape[1] is not correct\"\n", + "\n", + "assert sha1(str(type(\"\".join(boot1000_means.columns))).encode(\"utf-8\")+b\"7959\").hexdigest() == \"1769e84bf0e8d4e3d25c4600be5ef67a737dfeff\", \"type of \\\"\\\".join(boot1000_means.columns) is not str. \\\"\\\".join(boot1000_means.columns) should be an str\"\n", + "assert sha1(str(len(\"\".join(boot1000_means.columns))).encode(\"utf-8\")+b\"7959\").hexdigest() == \"e96dc9e7cedac3781fd27040cfd2d1fc05722d39\", \"length of \\\"\\\".join(boot1000_means.columns) is not correct\"\n", + "assert sha1(str(\"\".join(boot1000_means.columns).lower()).encode(\"utf-8\")+b\"7959\").hexdigest() == \"f8695aa8ea0528dbb7e46625922bf92ece2b375d\", \"value of \\\"\\\".join(boot1000_means.columns) is not correct\"\n", + "assert sha1(str(\"\".join(boot1000_means.columns)).encode(\"utf-8\")+b\"7959\").hexdigest() == \"f8695aa8ea0528dbb7e46625922bf92ece2b375d\", \"correct string value of \\\"\\\".join(boot1000_means.columns) but incorrect case of letters\"\n", + "\n", + "assert sha1(str(type(round(boot1000_means[\"mean_age\"][0], 2))).encode(\"utf-8\")+b\"795a\").hexdigest() == \"51da9319f9acd286c8a97beea5c2ce4d72881baf\", \"type of round(boot1000_means[\\\"mean_age\\\"][0], 2) is not correct\"\n", + "assert sha1(str(round(boot1000_means[\"mean_age\"][0], 2)).encode(\"utf-8\")+b\"795a\").hexdigest() == \"ec117372e2fbda896fcd538e55953e2d6e185b8a\", \"value of round(boot1000_means[\\\"mean_age\\\"][0], 2) is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "311960132a0be6d70c880f89e552da80", + "grade": false, + "grade_id": "cell-75683253957d46bd", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 2.4** \n", + "
{points: 1}\n", + "\n", + "Visualize the distribution of the bootstrap sample point estimates (`boot1000_means`) you just calculated by plotting a histogram with `maxbins=30`. Name the plot `boot_est_dist` and give the plot and the x-axis a descriptive title." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "d7c4aceb49dfc4585495e7454c8ced30", + "grade": false, + "grade_id": "cell-21f093a752cc5d8c", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError\n", + "boot_est_dist" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "a351dd525326542bd5a16cf06b00277b", + "grade": true, + "grade_id": "cell-13a4f6d6fbcd8cbb", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(boot_est_dist.encoding.x['shorthand'])).encode(\"utf-8\")+b\"b9f2c\").hexdigest() == \"ab79bd2d49ffccda37f0cf3a891326e234c76b4a\", \"type of boot_est_dist.encoding.x['shorthand'] is not str. boot_est_dist.encoding.x['shorthand'] should be an str\"\n", + "assert sha1(str(len(boot_est_dist.encoding.x['shorthand'])).encode(\"utf-8\")+b\"b9f2c\").hexdigest() == \"d186425dced3a795d7060e9a5d3432bd9e086a55\", \"length of boot_est_dist.encoding.x['shorthand'] is not correct\"\n", + "assert sha1(str(boot_est_dist.encoding.x['shorthand'].lower()).encode(\"utf-8\")+b\"b9f2c\").hexdigest() == \"ad9d0e089e4e5b351ec75d717aeab1cb32553d38\", \"value of boot_est_dist.encoding.x['shorthand'] is not correct\"\n", + "assert sha1(str(boot_est_dist.encoding.x['shorthand']).encode(\"utf-8\")+b\"b9f2c\").hexdigest() == \"ad9d0e089e4e5b351ec75d717aeab1cb32553d38\", \"correct string value of boot_est_dist.encoding.x['shorthand'] but incorrect case of letters\"\n", + "\n", + "assert sha1(str(type(boot_est_dist.mark)).encode(\"utf-8\")+b\"b9f2d\").hexdigest() == \"f70eec7566f007bbb16aa7586ace375a80c15949\", \"type of boot_est_dist.mark is not str. boot_est_dist.mark should be an str\"\n", + "assert sha1(str(len(boot_est_dist.mark)).encode(\"utf-8\")+b\"b9f2d\").hexdigest() == \"886ab00c979232d77c229b50f520b1456456f57b\", \"length of boot_est_dist.mark is not correct\"\n", + "assert sha1(str(boot_est_dist.mark.lower()).encode(\"utf-8\")+b\"b9f2d\").hexdigest() == \"3b4f12686ed5d9ecde5bbfe70bd9cf957ef9fd6f\", \"value of boot_est_dist.mark is not correct\"\n", + "assert sha1(str(boot_est_dist.mark).encode(\"utf-8\")+b\"b9f2d\").hexdigest() == \"3b4f12686ed5d9ecde5bbfe70bd9cf957ef9fd6f\", \"correct string value of boot_est_dist.mark but incorrect case of letters\"\n", + "\n", + "assert sha1(str(type(boot_est_dist.data.shape[0])).encode(\"utf-8\")+b\"b9f2e\").hexdigest() == \"37d2f1b531ee22409045f0ffb0e7d91e5668affa\", \"type of boot_est_dist.data.shape[0] is not int. Please make sure it is int and not np.int64, etc. You can cast your value into an int using int()\"\n", + "assert sha1(str(boot_est_dist.data.shape[0]).encode(\"utf-8\")+b\"b9f2e\").hexdigest() == \"49b0f0d946c10cf63913936fbc5007d0c408412d\", \"value of boot_est_dist.data.shape[0] is not correct\"\n", + "\n", + "assert sha1(str(type(round(sum(boot_est_dist.data.sum()), 2))).encode(\"utf-8\")+b\"b9f2f\").hexdigest() == \"15bb3ad9a8d42b79a07075cf2641a8c41e1266ba\", \"type of round(sum(boot_est_dist.data.sum()), 2) is not float. Please make sure it is float and not np.float64, etc. You can cast your value into a float using float()\"\n", + "assert sha1(str(round(round(sum(boot_est_dist.data.sum()), 2), 2)).encode(\"utf-8\")+b\"b9f2f\").hexdigest() == \"75507c48493d5f0cde3e5f13b52d22f41f8043a1\", \"value of round(sum(boot_est_dist.data.sum()), 2) is not correct (rounded to 2 decimal places)\"\n", + "\n", + "assert sha1(str(type(isinstance(boot_est_dist.encoding.x['title'], str))).encode(\"utf-8\")+b\"b9f30\").hexdigest() == \"a68cb7ab77d71d9171d5293d7e60c54df9ff7f31\", \"type of isinstance(boot_est_dist.encoding.x['title'], str) is not bool. isinstance(boot_est_dist.encoding.x['title'], str) should be a bool\"\n", + "assert sha1(str(isinstance(boot_est_dist.encoding.x['title'], str)).encode(\"utf-8\")+b\"b9f30\").hexdigest() == \"92bf5fd4d9bc037f471cd43e7d29a0789df82be6\", \"boolean value of isinstance(boot_est_dist.encoding.x['title'], str) is not correct\"\n", + "\n", + "assert sha1(str(type(boot_est_dist.title is not None)).encode(\"utf-8\")+b\"b9f31\").hexdigest() == \"58a0dfd4c910eda87e3daeca9d23a35af4a8190f\", \"type of boot_est_dist.title is not None is not bool. boot_est_dist.title is not None should be a bool\"\n", + "assert sha1(str(boot_est_dist.title is not None).encode(\"utf-8\")+b\"b9f31\").hexdigest() == \"e2690d26cde731e4d626749e8056064a66c8d8ed\", \"boolean value of boot_est_dist.title is not None is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "ab6b0dcf3ba1c60460060f2f68a0dc2e", + "grade": false, + "grade_id": "cell-16863c73a0e61db1", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "How does the bootstrap distribution above compare to the sampling distribution? Let's visualize them side by side:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "5b344d5534b7b7b5ac9cf3a699883f46", + "grade": false, + "grade_id": "cell-a86b551fb1260606", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "# Run this cell\n", + "\n", + "# Create sampling distribution from the population\n", + "np.random.seed(4321)\n", + "samples = pd.concat([\n", + " can_seniors.sample(40).assign(replicate=n)\n", + " for n in range(1000)\n", + "])\n", + "\n", + "sample_estimates = (\n", + " samples.groupby(\"replicate\")\n", + " .mean()\n", + " .reset_index()\n", + " .rename(columns={\"age\": \"mean_age\"})\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "d68f12822b5d6097131fa4fd9f658d3f", + "grade": false, + "grade_id": "cell-a86b551fb126060d6", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "# Visualize the sampling distribution\n", + "sampling_dist = alt.Chart(\n", + " sample_estimates,\n", + " title=[\n", + " \"Sampling distribution\",\n", + " f'mean = {sample_estimates[\"mean_age\"].mean().round(1)}'\n", + " ]\n", + ").mark_bar().encode(\n", + " x=alt.X(\"mean_age\")\n", + " .title(\"Sample mean age (years)\")\n", + " .bin(maxbins=30, extent=(72, 94)),\n", + " y=\"count()\"\n", + ").properties(\n", + " height=150\n", + ")\n", + "\n", + "# Plot both distribution\n", + "boot_est_dist.encoding.x['bin']['extent'] = (72, 94)\n", + "sampling_dist & boot_est_dist.properties(\n", + " height=150,\n", + " title=[\n", + " \"Bootstrap distribution\",\n", + " f'mean = {boot1000_means[\"mean_age\"].mean().round(1)}'\n", + " ]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "a913f796caa5374e7ae4202485969829", + "grade": false, + "grade_id": "cell-2529f74ae181fd44", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Reminder: the true population quantity we are trying to estimate, the population mean, is about 79 years. We know this because we created this population and calculated this value. In real life we wouldn't know this value." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "1c4e3184a599f5341cb5e56a83fc2bf3", + "grade": false, + "grade_id": "cell-15147e6c224ccb72", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 2.5** True/False\n", + "
{points: 1}\n", + "\n", + "The mean of the bootstrap distribution is the same value as the mean of the sampling distribution of the sample means. True or false?\n", + "\n", + "*Assign your answer to an object called `answer2_5`. Your answer should be a boolean. i.e. `True` or `False`.*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "361feba52b818934ec4c11328ddd8630", + "grade": false, + "grade_id": "cell-0e3ed3ca2495a0bc", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "c70dd20b809d10245396b68ac6ba1b52", + "grade": true, + "grade_id": "cell-3ea212ad593b9f57", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(answer2_5)).encode(\"utf-8\")+b\"5a0b0\").hexdigest() == \"026647203177d7a7984039bdbab86312c0fc1d32\", \"type of answer2_5 is not bool. answer2_5 should be a bool\"\n", + "assert sha1(str(answer2_5).encode(\"utf-8\")+b\"5a0b0\").hexdigest() == \"b9b268bc4adcb2eeb8bf4825c0669675b9690848\", \"boolean value of answer2_5 is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "36a16be1a9d202d096b583e4d1c8a6b6", + "grade": false, + "grade_id": "cell-8f170c7bb0c58227", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 2.6** True/False\n", + "
{points: 1}\n", + "\n", + "The mean of the bootstrap distribution is not the same value as the mean of the sampling distribution because the bootstrap distribution was created from samples drawn from a single sample, whereas the sampling distribution was created from samples drawn from the population. True or false?\n", + "\n", + "*Assign your answer to an object called `answer2_6`. Your answer should be a boolean. i.e. `True` or `False`.*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "f5c5ee6c8148592a4abd673e7a34c1bf", + "grade": false, + "grade_id": "cell-230cf28d4590a63d", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "3e6c2dd082c1edbf6d59d17faf25bff6", + "grade": true, + "grade_id": "cell-b167494acba2816d", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(answer2_6)).encode(\"utf-8\")+b\"a6b5a\").hexdigest() == \"30bafad5c8de9dc987b96199c2fbe939c40a8929\", \"type of answer2_6 is not bool. answer2_6 should be a bool\"\n", + "assert sha1(str(answer2_6).encode(\"utf-8\")+b\"a6b5a\").hexdigest() == \"d5ef3621ce8f1b3e87712c5902d9cd297bcbe106\", \"boolean value of answer2_6 is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "b246e1122d1314010929999e97df9ab0", + "grade": false, + "grade_id": "cell-c569dabb88890bfc", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 2.7** True/False\n", + "
{points: 1}\n", + "\n", + "The shape and spread (i.e. width) of the distribution of the bootstrap sample means is a poor approximation of the shape and spread of the sampling distribution of the sample means. True or false?\n", + "\n", + "*Assign your answer to an object called `answer2_7`. Your answer should be a boolean. i.e. `True` or `False`.*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "34f45cda41591164dc4e6557b14fc030", + "grade": false, + "grade_id": "cell-f82d46022821b073", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "71ecda644e05e436478c0f3bef5ab5de", + "grade": true, + "grade_id": "cell-2ab1350547ae451d", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(answer2_7)).encode(\"utf-8\")+b\"b2302\").hexdigest() == \"2381d296f979072b5564a751512bf6920070cec9\", \"type of answer2_7 is not bool. answer2_7 should be a bool\"\n", + "assert sha1(str(answer2_7).encode(\"utf-8\")+b\"b2302\").hexdigest() == \"40cf75b2f70f37deade6d257813300f9b7efb5ff\", \"boolean value of answer2_7 is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "8101b7b2097db5050f2c8b58c975ef53", + "grade": false, + "grade_id": "cell-8399b964d743f33c", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 2.8** True/False\n", + "
{points: 1}\n", + "\n", + "In real life, where we only have one sample and cannot create a sampling distribution, the distribution of the bootstrap sample estimates (here means) can suggest how we might expect our point estimate to behave if we took another sample. True or false?\n", + "\n", + "*Assign your answer to an object called `answer2_8`. Your answer should be a boolean. i.e. `True` or `False`.*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "1a27c57aaadcd38d1347724ed72004f8", + "grade": false, + "grade_id": "cell-59cfd94899e457a7", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "c656f6422e9e3a1fdcbea3c361584d5e", + "grade": true, + "grade_id": "cell-4d2a0325f4fd2406", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(answer2_8)).encode(\"utf-8\")+b\"c802a\").hexdigest() == \"ef3850e80d567d000bfa05f54aa931341ae3efbd\", \"type of answer2_8 is not bool. answer2_8 should be a bool\"\n", + "assert sha1(str(answer2_8).encode(\"utf-8\")+b\"c802a\").hexdigest() == \"08ecfbe3587dea76567e71f190483970d0b2ad7f\", \"boolean value of answer2_8 is not correct\"\n", + "\n", + "print('Success!')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "e1922c201ead42beb140513403972276", + "grade": false, + "grade_id": "cell-3af745f41b79a813", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "### Using the bootstrap distribution to calculate a plausible range for point estimates\n", + "\n", + "Once we have created a bootstrap distribution, we can use it to suggest a plausible range where we might expect the true population quantity to lie. One formal name for a commonly used plausible range is called a confidence interval. Confidence intervals can be set at different levels, an example of a commonly used level is 95%. When we report a point estimate with a 95% confidence interval as the plausible range, formally we are saying that if we repeated this process of building confidence intervals more times with more samples, we’d expect ~ 95% of them to contain the value of the population quantity.\n", + "\n", + "> How do you choose a level for a confidence interval? You have to consider the downstream application of your estimation and what the cost/consequence of an incorrect estimate would be. The higher the cost/consequence, the higher a confidence level you would want to use. You will learn more about this in later Statistics courses.\n", + "\n", + "To calculate an approximate 95% confidence interval using bootstrapping, we essentially order the values in our bootstrap distribution and then take the value at the 2.5th percentile as the lower bound of the plausible range, and the 97.5th percentile as the upper bound of the plausible range. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "bdbc007791e1f87fe97a94e313fb0633", + "grade": false, + "grade_id": "cell-4e8bd702d14d0973", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "# Run this cell\n", + "# A \"quantile\" is a at 100th of a percentile (similar to a proportion vs a percentage)\n", + "boot1000_means[\"mean_age\"].quantile([0.025, 0.975])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "43aedf483265e87632ac48a7a8d93fb9", + "grade": false, + "grade_id": "cell-671ea52cb570ec80", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "Thus, to finish our estimation of the population quantity that we are trying to estimate, we would report the point estimate and the lower and upper bounds of our confidence interval. We would say something like this:\n", + "\n", + "Our sample mean age for Canadian seniors was measured to be 83.7 years, and we’re 95% \"confident\" that the true population mean for Canadian seniors is between 78.8 and 89.2. \n", + "\n", + "Here our 95% confidence interval does contain the true population mean for Canadian seniors, 79 years - pretty neat! However, in real life we would never be able to know this because we only have observations from a single sample, not the whole population." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "markdown", + "checksum": "1b0d85f0084376db3746016fb9f6bba4", + "grade": false, + "grade_id": "cell-9453844511483837", + "locked": true, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "source": [ + "**Question 2.9** True/False\n", + "
{points: 1}\n", + "\n", + "For any sample we take, if we use bootstrapping to calculate the 95% confidence intervals, the true population quantity we are trying to estimate would always fall within the lower and upper bounds of the confidence interval. True or false?\n", + "\n", + "*Assign your answer to an object called `answer2_9`. Your answer should be a boolean. i.e. `True` or `False`.*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "9b1b0ef7046e443eb9ddc1b4a1931b5d", + "grade": false, + "grade_id": "cell-91e462917a53edad", + "locked": false, + "schema_version": 3, + "solution": true, + "task": false + } + }, + "outputs": [], + "source": [ + "# your code here\n", + "raise NotImplementedError" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "deletable": false, + "editable": false, + "nbgrader": { + "cell_type": "code", + "checksum": "334b984bb6445a081a86ba4679f89c01", + "grade": true, + "grade_id": "cell-e0a24858ef65cea9", + "locked": true, + "points": 1, + "schema_version": 3, + "solution": false, + "task": false + } + }, + "outputs": [], + "source": [ + "from hashlib import sha1\n", + "assert sha1(str(type(answer2_9)).encode(\"utf-8\")+b\"cd5e8\").hexdigest() == \"da9a1e53f210213fac53a062a3cfc88ae2c77c0e\", \"type of answer2_9 is not bool. answer2_9 should be a bool\"\n", + "assert sha1(str(answer2_9).encode(\"utf-8\")+b\"cd5e8\").hexdigest() == \"8b0a4f42b333c5adb8ab96d37ab517e185281fe3\", \"boolean value of answer2_9 is not correct\"\n", + "\n", + "print('Success!')" + ] + } + ], + "metadata": { + "jupytext": { + "encoding": "# -*- coding: utf-8 -*-" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}