From 7bd99dcc5872736e2354d8a524659c5e2a4ae5d9 Mon Sep 17 00:00:00 2001 From: Erik Bernhardsson Date: Tue, 12 Jun 2018 16:52:01 -0400 Subject: [PATCH 1/8] various fixes to units/plotting --- convoys/plotting.py | 15 +++++++-------- convoys/utils.py | 30 +++++++++++++++++------------- docs/examples.rst | 8 ++++---- examples/dob_violations.py | 10 +++++----- examples/marriage.py | 2 +- test_convoys.py | 2 +- 6 files changed, 35 insertions(+), 32 deletions(-) diff --git a/convoys/plotting.py b/convoys/plotting.py index 067035a..5cb6722 100644 --- a/convoys/plotting.py +++ b/convoys/plotting.py @@ -15,10 +15,11 @@ def plot_cohorts(G, B, T, t_max=None, model='kaplan-meier', - ci=None, plot_args={}, plot_ci_args={}, groups=None): + ci=None, plot_kwargs={}, plot_ci_kwargs={}, groups=None): # Set x scale if t_max is None: - t_max = max(T) + _, t_max = pyplot.gca().get_xlim() + t_max = max(t_max, max(T)) if groups is None: groups = set(G) @@ -31,7 +32,7 @@ def plot_cohorts(G, B, T, t_max=None, model='kaplan-meier', colors = pyplot.get_cmap('tab10').colors colors = [colors[i % len(colors)] for i in range(len(groups))] t = numpy.linspace(0, t_max, 1000) - y_max = 0 + _, y_max = pyplot.gca().get_ylim() for j, (group, color) in enumerate(zip(groups, colors)): n = sum(1 for g in G if g == j) # TODO: slow k = sum(1 for g, b in zip(G, B) if g == j and b) # TODO: slow @@ -39,14 +40,12 @@ def plot_cohorts(G, B, T, t_max=None, model='kaplan-meier', if ci is not None: p_y, p_y_lo, p_y_hi = m.cdf(j, t, ci=ci).T - pyplot.plot(t, 100. * p_y, color=color, linewidth=1.5, - alpha=0.7, label=label, **plot_args) pyplot.fill_between(t, 100. * p_y_lo, 100. * p_y_hi, - color=color, alpha=0.2, **plot_ci_args) + color=color, alpha=0.2, **plot_ci_kwargs) else: p_y = m.cdf(j, t).T - pyplot.plot(t, 100. * p_y, color=color, linewidth=1.5, - alpha=0.7, label=label, **plot_args) + pyplot.plot(t, 100. * p_y, color=color, linewidth=1.5, + alpha=0.7, label=label, **plot_kwargs) y_max = max(y_max, 110. * max(p_y)) diff --git a/convoys/utils.py b/convoys/utils.py index 1b758fc..e46c15b 100644 --- a/convoys/utils.py +++ b/convoys/utils.py @@ -16,16 +16,10 @@ def get_timedelta_converter(t_factor): if not isinstance(t, datetime.timedelta): # Assume numeric type return '', lambda x: x - elif t >= datetime.timedelta(days=1) or unit == 'Years': - return 'Years', get_timedelta_converter(1./(365.25*24*60*60)) - elif t >= datetime.timedelta(days=1) or unit == 'Days': - return 'Days', get_timedelta_converter(1./(24*60*60)) - elif t >= datetime.timedelta(hours=1) or unit == 'Hours': - return 'Hours', get_timedelta_converter(1./(60*60)) - elif t >= datetime.timedelta(minutes=1) or unit == 'Minutes': - return 'Minutes', get_timedelta_converter(1./60) - else: - return 'Seconds', get_timedelta_converter(1) + for u, f in [('years', 365.25*24*60*60), ('days', 24*60*60), + ('hours', 60*60), ('minutes', 60), ('seconds', 1)]: + if t >= datetime.timedelta(seconds=f): + return u, get_timedelta_converter(1./f) def get_groups(data, group_min_size, max_groups): @@ -45,6 +39,16 @@ def get_groups(data, group_min_size, max_groups): return sorted(groups) +def _sub(a, b): + # Computes a - b for a bunch of different cases + if isinstance(a, datetime.date): + return a - b + elif isinstance(a, datetime.datetime) and a.tzinfo is not None: + return a.astimezone(b.tzinfo) - b + else: + return a - b + + def get_arrays(data, features=None, groups=None, created=None, converted=None, now=None, unit=None, group_min_size=0, max_groups=-1): @@ -96,15 +100,15 @@ def get_arrays(data, features=None, groups=None, created=None, # TODO: this stuff should be vectorized, kind of ugly if not pandas.isnull(row[converted]): if created is not None: - T_raw.append(row[converted] - row[created]) + T_raw.append(_sub(row[converted], row[created])) else: T_raw.append(row[converted]) else: if created is not None: if now is not None: - T_raw.append(row[now] - row[created]) + T_raw.append(_sub(row[now], row[created])) else: - T_raw.append(datetime.datetime.now(tzinfo=row[created].tzinfo) - row[created_at]) + T_raw.append(_sub(datetime.datetime.now() - row[created_at])) else: T_raw.append(row[now]) unit, converter = get_timescale(max(T_raw), unit) diff --git a/docs/examples.rst b/docs/examples.rst index bbe2842..135dcce 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -25,7 +25,7 @@ Several of the arguments are references to columns in the dataframe, in this cas unit, groups, (G, B, T) = convoys.utils.get_arrays( df, groups='type', created='issue_date', converted='disposition_date', - unit='Years', group_min_size=100) + unit='years', group_min_size=100) This will create three numpy arrays that we can use to plot. @@ -70,9 +70,9 @@ Let's also plot the Kaplan-Meier and the Weibull model on top of each other so t df['bucket'] = df['issue_date'].apply(lambda d: '%d-%d' % (5*(d.year//5), 5*(d.year//5)+4)) unit, groups, (G, B, T) = convoys.utils.get_arrays( df, groups='bucket', created='issue_date', converted='disposition_date', - unit='Years', group_min_size=500) + unit='years', group_min_size=500) convoys.plotting.plot_cohorts(G, B, T, model='kaplan-meier', groups=groups, t_max=30) - convoys.plotting.plot_cohorts(G, B, T, model='weibull', groups=groups, t_max=30, plot_args={'linestyle': '--'}, ci=0.95) + convoys.plotting.plot_cohorts(G, B, T, model='weibull', groups=groups, t_max=30, plot_kwargs={'linestyle': '--'}, ci=0.95) pyplot.legend() pyplot.show() @@ -114,7 +114,7 @@ This just gives one more degree of freedom to fit the model. pyplot.figure(figsize=(12, 9)) convoys.plotting.plot_cohorts(G, B, T, model='generalized-gamma', groups=groups) pyplot.legend() - convoys.plotting.plot_cohorts(G, B, T, model='kaplan-meier', groups=groups, plot_args={'linestyle': '--'}) + convoys.plotting.plot_cohorts(G, B, T, model='kaplan-meier', groups=groups, plot_kwargs={'linestyle': '--'}) pyplot.savefig('marriage-combined.png') This will generate something like this: diff --git a/examples/dob_violations.py b/examples/dob_violations.py index 7312aa6..68a9e39 100644 --- a/examples/dob_violations.py +++ b/examples/dob_violations.py @@ -17,7 +17,7 @@ def run(): unit, groups, (G, B, T) = convoys.utils.get_arrays( df, groups='type', created='issue_date', converted='disposition_date', - unit='Years', group_min_size=100) + unit='years', group_min_size=100) for model in ['kaplan-meier', 'weibull']: print('plotting', model) @@ -25,7 +25,7 @@ def run(): convoys.plotting.plot_cohorts(G, B, T, model=model, ci=0.95, groups=groups, t_max=30) pyplot.legend() - pyplot.xlabel('Years') + pyplot.xlabel(unit) pyplot.savefig('dob-violations-%s.png' % model) pyplot.figure(figsize=(9, 6)) @@ -35,14 +35,14 @@ def run(): unit, groups, (G, B, T) = convoys.utils.get_arrays( df, groups='bucket', created='issue_date', converted='disposition_date', - unit='Years', group_min_size=500) + unit='years', group_min_size=500) convoys.plotting.plot_cohorts(G, B, T, model='kaplan-meier', groups=groups, t_max=30) convoys.plotting.plot_cohorts(G, B, T, model='weibull', groups=groups, t_max=30, ci=0.95, - plot_args={'linestyle': '--'}) + plot_kwargs={'linestyle': '--'}) pyplot.legend() - pyplot.xlabel('Years') + pyplot.xlabel(unit) pyplot.savefig('dob-violations-combined.png') diff --git a/examples/marriage.py b/examples/marriage.py index 9b1d3ca..f0676b4 100644 --- a/examples/marriage.py +++ b/examples/marriage.py @@ -20,7 +20,7 @@ def run(): pyplot.xlabel('Age of marriage') convoys.plotting.plot_cohorts(G, B, T, model='kaplan-meier', groups=groups, - plot_args={'linestyle': '--'}) + plot_kwargs={'linestyle': '--'}) pyplot.savefig('marriage-combined.png') diff --git a/test_convoys.py b/test_convoys.py index f27572e..c52e8ba 100644 --- a/test_convoys.py +++ b/test_convoys.py @@ -180,7 +180,7 @@ def _test_plot_cohorts(model='weibull', extra_model=None): matplotlib.pyplot.legend() if extra_model: convoys.plotting.plot_cohorts(G, B, T, model=extra_model, - plot_args=dict(linestyle='--')) + plot_kwargs=dict(linestyle='--')) matplotlib.pyplot.savefig('%s-%s.png' % (model, extra_model) if extra_model is not None else '%s.png' % model) From d7067a3bc75cae00592a1d9947f6523af5551128 Mon Sep 17 00:00:00 2001 From: Erik Bernhardsson Date: Tue, 12 Jun 2018 16:58:17 -0400 Subject: [PATCH 2/8] remove date case --- convoys/utils.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/convoys/utils.py b/convoys/utils.py index e46c15b..a9ee61d 100644 --- a/convoys/utils.py +++ b/convoys/utils.py @@ -41,11 +41,10 @@ def get_groups(data, group_min_size, max_groups): def _sub(a, b): # Computes a - b for a bunch of different cases - if isinstance(a, datetime.date): - return a - b - elif isinstance(a, datetime.datetime) and a.tzinfo is not None: + if isinstance(a, datetime.datetime) and a.tzinfo is not None: return a.astimezone(b.tzinfo) - b else: + # Either naive timestamps or numerical type return a - b From 08fad80e061f685e44d8c3102b4d6d86bc2f3675 Mon Sep 17 00:00:00 2001 From: Erik Bernhardsson Date: Tue, 12 Jun 2018 17:02:59 -0400 Subject: [PATCH 3/8] hound + fix --- convoys/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/convoys/utils.py b/convoys/utils.py index a9ee61d..af35685 100644 --- a/convoys/utils.py +++ b/convoys/utils.py @@ -107,7 +107,7 @@ def get_arrays(data, features=None, groups=None, created=None, if now is not None: T_raw.append(_sub(row[now], row[created])) else: - T_raw.append(_sub(datetime.datetime.now() - row[created_at])) + T_raw.append(_sub(datetime.datetime.now(), row[created])) else: T_raw.append(row[now]) unit, converter = get_timescale(max(T_raw), unit) From 6dc29a21af08ffd6a4a70d8787d30512a9df2baf Mon Sep 17 00:00:00 2001 From: Erik Bernhardsson Date: Tue, 12 Jun 2018 17:18:42 -0400 Subject: [PATCH 4/8] add example from real dataset --- examples/data.pickle | Bin 0 -> 86241 bytes test_convoys.py | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 examples/data.pickle diff --git a/examples/data.pickle b/examples/data.pickle new file mode 100644 index 0000000000000000000000000000000000000000..67e8d6bd097afc0194892b50376b00129c6653be GIT binary patch literal 86241 zcmeFZd0Y=&|35yZv{~9l`$9^zP-#IiB$Y^ovP7FUY0;vRGNL3=DitD%%F>1kNkeEs zM6wjwvZaOWOMcJcn)|+f-5=lU{(ir|$M3JY9*^sonKS2{*YlH~&C)ZI3_~U-#4mp_wkhF0+39J0*4OhSbPZ^#p#W6}Xw2K>oeIw_mV( zpr6aCpwxsRGgkS#`OJ0kbMbT!O#Stm`ZByH{r~R2!adAANZZvV2-65V`MHNWS^D7~ zUhoo0;OG9$PRRGye10Lm0pY)w=Nqyr*xMyA&?Ox6IR(1A`TGS02Zp!>fdL#Cz<~iA7{Gx692mfX0UQ{>fdL#Cz<~iA7{Gx692mfX0UQ{>fdL#C zz<~iA7{Gx692mfX0UQ{>fdL#Cz<~iA7{Gx692mfX0UQ{>fdL#Cz<~iA7{Gx692mfX z0UQ{>fdL#Cz<~iA7{Gx692mfX0UQ{>fdL#Cz<~iA7{Gx692mfX0UQ{>fdL#Cz<~iA z7{Gx692mfX0UQ{>fdL#Cz<~iA7{Gx692mfX0UY@M2M5?+gkyi&j?W{|eRZmJ0&noz z)C9hO@L!G7!Ud-6?*-bW{{G3lNnTU_S3gN-`unHlnCgcj)A_VW`gz*-UH*n76W(&x zG+d9QrtjVz$D>OU8s|K373!0W#Y>y->Uty*&KpR%Dw4#Mik$r6BS`9U+R>Tslt{v= zfoJ+|eUg4;`*E6w7RlsWOuu9~j->0SB&k(ul8pMZ-1IDrqgAye)L)Ne5|kHt)~J(A zgRsu*x9E4HTXd_07D=4mE!}WinIzN?c1A7NCn>$|;Jt48Bylx!)6F4Rr)|_4b$4}= z%8l=Re;Mo97F4|Cl@7^B4Dr9LGLfW$gqzdS^hmnFZ`e8=yjL@?eI@9kx1M^ac1nR{ zY9uxIv-0`2`QA10oZbYRDmymjnVi3CZ>op4m@L|c-!^|dhg9ML^JT?6Bc&ic^dOOnI{ z>AD_)Q6#ft`?%vF@+33s)Q8<(G9)7s7^|{rrYK3J$7x6oMgI@4Bxk%+A!%cQcl9oim<+%7BA3;9h?dq3>N1d^H+R%})bIXv5UqjD$Kp}Bme{X6K_h|SV_kBXDbt5N<}*JIr| zse88R$&=LPkn|rD#YjRrF8R}PIg(Z$wIIMA{LBrv;#&(omrUu_QIRDHlXDWqhendr z^TUVuHiDl*dDA72fNvir*JXl!rY~e@qCV*0m+KU>fIcbuSWYldCy5yqo3jrNCuxbE z9?5v!O`N-m*Z6_ zZIZCp6s2=_L3e}H=b@{$N$Pv`wIoqBk{NZd$L=`nZvoAFYLyI0dybvza1iu=^crb) zXgEnZsKo`W8bwlKSLuquY9yUnlDnc)ie&Ci4fah`A{hbR<40zUB8ff9&Vl8ydym56 zBQ2sN<2L^0f_ad``Rdjw*2780-ctOr2G+SVf6{YOf+SQ&Kjy`{sq@cW)n4jgoqgSz z6L5WeL_x1D@Z^HJ3E714r*$SfzLCOn=W9VJ7?(P|EOk8aY;e=c}ci+2BL1 z_q51uawN5H(AzC}(CgDDZf^me5Z)!)Gv>>I&X~k14an>Cxn1$CnBS=QM95J^k~z_* zneiC(oVBR&o`Lxp-DCUsKrekQ{m{5EBvUrMD(>5ef31)1{JhoPk0hC^LABi><4CG& zT{4e|7D=twiEc`V-aqV=)Y}a{lMV|s*P^YV4J{_glf)H1-HWnVx5jlru|&+j-pEU1 z1^89`bjDqKycbls$hs8QDQW6$wW`p=Vc|OqU^mjtALA|K4ITCh_Db;Bs%r!9hRzhK*)W=< zo@8FDd;obw?1Vr&>pgQf1UD0a`ae|5>-Bw2CKHNR`2l(o-WZTa?=$lyY+4Bz2!=a@UDNo3saMS*oBuUb1N~2~x zg?ucv)=f4ZPf~SvCa7)JfM2V7tat=^+&8;=XgP3bf&by*fzbE&9~Cy#fbJu)xt{va z=d4xx_<1pZl*k|%XW%%$?I6Bf^!r>K^zA(S$j~mmPquh|cteGS9QYRZ_@2mB$jvs# z&!R_-B))vAwoL<_mrlPv6a~AhySAuZ8+d$_=crK??DOcFwQ6hd-s*XwIon|$-DTou zi*!gj!{bS_9qjgOxATs@z)`tRZ5`FHU%ilHJ;~s&b~0mK34Gprs<6{jlcZ9Z-cgV* zb7AmqjcxGbMtLba?V-;aM~-+pLeKKr&dY{DPj2KHyKTmJ4HwQjJw$6&nznurRg*w17VatN( zE0CX=fK`GY))(IXsH{ACmd3E3Jy}4Oq`H5|KQRKG<66W{oCFS15pvVgAjj*8qHWd~_m*WzGQNe}-0MV>O| zr7RAt7zezgt4Hu;J;(E(%F82x^UOnc8I>sDd*t3_h&RC3=k%<2E!dBg z^R%p!cs|GRTRQ6xWwM?O<;I}pl#pFmLJ|eiLEg2AYvxSCy4%)xrO!4XsgrlgT~B~d=a;n^%#|e>bCL9na`30sNLJe3 z0P<|oy)p@Qo3A#s>M`O3v#QwYh0v$K!aegM@SgSd33+#*AD%&$S1-X|XZYEKURNTi zg!VkIQ0SYBb@x%=GVw?&Uo!-_=Qa20-}jdQqU3(ZldNuQA?Vevcl%^TwmW(C3^BClp^n{|eR&yK@-wT9@sxQy)0^#COCS zXXv%&*@N8^#*<9Q&y&yGAukRGJvH4;AqU2FXi~>I;Lg^Z99!TCrD!R&+XjA3eoxWm zi@=2=T@}soz`gfGIh6wbjX3k<=TE#>d}3YX4Hc3Sa_^4cgZV3b&xB8ay!Ta0N5YTN zqjQ7KdLup{#?3ZbfNQtrkk^jz6Wfk0ycLeP;Iz}X>f^vGs(EupxCY{>l=mG!pm*Oz zM>lPNzEf#OOG>fciVK2=KsS@VvEf)8=s)%`m;(Q)oc4>~zF~dmZ?=`6#rPEp&mxQw zS7#g^|Kc6|P=NnW-b2tY{}S_WY8Y3!dxl94;su-J=6Bnn7i(6|;CCKN5+R2RUmSrv zW;|RU9gBHSYHHcoLjQ)H35n5wT%(*9G^#+JPI*N+tFfL78>Kql=#oq{!S7fPeVH)% z+p)or1vAaxI$*rN;tzUmp$;E#or;w4G%137ca%|c{1I1LQl7FafWsQE&6!ZhsWMQc z+7JFmH`aKbI?JRCQmAaJX0{b_LPst1i9XD)3#DSZHZK3fl0e`%robCl;{#x~(?l4@d78|8xB5r?lW#}Sj ztdD=o)S#vCch?Sw*Op)%acAxGRe=Mh-d9@va9_Y)`sexa$Y-uw92o*S6;~&f!~vgoOj@eO#)ETf(qf_aJD0w=sRJCCTDGxr2J~js;Ae{-A@2Lo_G)4Z@KD*; zCqp0cl~>OJ(>mbjfw>0Rf$*CK>$6VDs*==8<%*wG@JD;KFMkA%QMSI{&IiEHjXABT zH_;IB%%NJhN5Cb?aj}=*A^wVMzUd|p|CD)HE^Iga=#PTYL+*m!1-II5Eg^4W14TcB zyrRVIx4i&A=_hvC3$U&q{Q0w0p^qCjd>i2h|C)GLVOk;lUYKp<(52wd;3r{+HUs|& zxsPh0;H%IFDd(rq_dCnJj)J@?zr%%@{LuHkG2Noxct3o7q#p8Xs?|9&B^-Jv+qk8z zT$!W;DtRk2!FRgAuU8EEo?PHvQHA?=38Qr{5g+m1{2}L!c@AsFF|`;+YUfHVTf~W; zL&f+g1Clma;673henRzaT-+hVb8FMdPrzZK+Gi%I3mkEX;d!wObjlpQbrf+46|ieT z2%E3D74ZArV&#_VZT}W_yyMiPwcjU@^y!H6ax0-PgRWm&rwqMUSZ~){3Vo}mdOY_J zhyIR^8@U**;5D9OB>3~aC-Wxi2+aBp{$;%I$7>l0(|E*FZu_4{wt(JK-ETCvVtsv$ z7Z)QAq#tG+D>OrXqeEw&2!>oyT8~Z|U>&MdyI~)Rd&PJE5nGY?k>?fgalgy)%h{-ejK)>+R7dnPDa=FZaP-M)sC{ zl!4uy(!Y|<#?wJ=bJQDIKk}PzOqMtm2|rEnPq43zXjYNiPAvv=&a z+linfw(M%J0_4DVL*26i_H%YFZ`V1@_fV_e{}}284(krbApfMUXsNm$M0}wAayBK=ukcRhv?0*5%Zf{?Gr*U&SH2%M0$(GpuRdl7 z{Yew>x;qAbB5HVH!~xjdhFYE$_*3Ex@A3;Xu*>&bK;=xv_ZC6=2r08#}9*#I?Sjp*oHNY9ODQmM3|1+0HhqpX|9wc^; z$!!3?cqgBdPaH=Q_jhP|&%`>%zKXUAgkH9O)>nbN3Bi)DMaw~V%?KfRDLnru(PGg7 z`!QVSx$pzxitMaYF7ME~h)VC?hxs4M+4Hjcb>&QZ%qYy8J1G0yaL8A*Ht4Yl@T_6O zaLokR@nn%Io3pSBOI5MxVHkg^@BXryDc7dfORu&2kF3nERLk*S3`a;1})f? z44i5za%u0wJbPmAJFxb9|KQBYUGNhzFV~eF1z)`$NEEU8<;&g9Nj>0Kxq-^2kDzm! zMYZKgjF;%#a^Wld^Y_r!XAa}KN^5|#6{qsZQP9@|Wle)8VZI7lPabtqN;yf?F&cauv^esX z736=_dy>&6J;;B;q}oE*nU>z+deldld7V=?Jc6C2jdXea9r~eJ>!h#+d@$K#upWMd zmYD0ZY8L!TN0iXQebDp0;;ki95U(B>Zg@-(eD<9ZdJ}ld)E(KBqii^{wa@0jx!d_^42Y&F!nXYe`L2@w&Q?9~B#H`F`(BNWe9 zy&tC#0sMW`ES6pf-0nHK+VlnD1uh;s{)#vdgz?u-Dlc0Jd%YI)!^{G5dF1uDt{T^| zUjTQ3;?L?oVNAF6k zr@eL7FxUY@T@f)B#QF=DFUn=>-vY&93SZ&>cq9u_*t{!$d$t7f0Q%7do6l@LJljd| zEb?cQwm4RBHj&Gc=b~m<8|`C8G9e=@VU6v=rH)B`+5JFHSljXxjvc0A+K$> z(*&02gZ|%jFhW^8Y1(ASbGoy|bxXYW&~#=UuP*AOu5R~dfuF~ECJlZDy`at2dIrOO zT_VQ`q8`ckP2Ax%5B+`T+lk1)z9(j=Np3>?J=eBH+!S{BNN_<3>g~iDw`_HD)G5|Q ze|QG{BgR;c^L~o>r_bQ^bhf^_e9DE0-QeGz2_hvnc&=@4eog@I_Z|~eX~(s#-tJS$$mFP!smqRvDR60{l_9afr_d^4q9CET$B8;V?u>K^*?dKqO3v9!V0) z=5Hm{4M`%@y~?N$_%++!KV=u}prl~z#suJ9M1q>a5YSP%TB-dr_^Z8cYwCOWAM^O* zMwyVu&e`V4XCMb-{*tNsIlPZIhAUEeTZ-1cvOg!Ftcjg2Qk`~i>(N>Ceh|}NCvilXtf6=zp_I>BZFX(3jgE6NG_d5ixByOu?^9Ar%6J zSpV{QJU;M`giJJ%(F%L8(Ej@F3GhOtMQvR-{AtKK()}XFIb|;0#MbeGvaN)MfsWzj zXO|ekPWSX?YQ2&`eQEye!KgDaw+{6zp9A>~GXHX>3pn&RYUz$-C8V6k)1UVOu+4Jopi-X(5R3^iYcA6~sA&m7p+n3s1h2FR? z`))82_FQ__(-!#@vncj-%u(Pwf5wX3d%(qt#SZQjz@fhMtETZ-@7wN3Vh8NK{=|Ft zMvNoinoC&oU=Tt|})>80qQ`=@e9q8@MI*oG-?g!bZ7tVs8BTAK(9v~i` zyJ%Sh^pOq|yS&c8%n~^&^Z@$!S;g!=@=_vs)5dJnD~V?s%{%>Jug=Zm z5(J=s<(EEoNF(l3lI2^w8+3YAFEeidKZ-ODW|=|H2loWJPDDQOg741v?a+tbSb?+H zKcjz2^$qSr-sG@<{fkAwr;#@^PLIZVGLFTDZ3KUMZHsD0!fzgvohRr9f1b2cH{&Gu zD*1AvTR!w8e*A;sm)Jb4a(wpj3807X_z4ZzSH|0kA6dJojyS8m32}RMc8Jw`%zLLg z>?0drjP`iMgZP6eGxyN-K3d*rtbhx`^9ZdO1ZIkL`ij1=Mr zNjoXeM;N~|Od~G=@oKg4=n+=XOHY~l2E-jiv%)%gHMHC2wA^q;zVP1rQQKFHoAF|j zp)}$Lspb%O3D9BeXWKL%^C~Ck=D?3pQFf0nX+b_wL$}7TahYV@T%&R!Ore_fBHnl7zPYQS^J}Ik@fPFYd=vH?kuE}k0 zb;dpop?q|1s1E$)r%Na8Pr&ZS8dx0aK;6wGX7F(66Eh~%X0I9Ii|JMCJ#bApSf*S< zoM2Q95q2^fngPi~S>X1NBMfsGOQ9@@8g)~m(Ajp8H@Ph-j1b}8_-@q z)pe)>ICaf(+J|ePe`=@KmrV5Md0;&w4)TnV5okpILqBP}6Yl|gK7UByCicsSWTooY zBEXM=R=4HfpnswgTZ0_nf3)geW?cYZjh4-7nhCkwiO%h%v`ISskR;L->=RIY4);Lk z%CkMu*e@Z*dg%+S0&eh$I=pj)oEv!fvY{VLomKl*#B;RpyT{r2@FPV5=DObS_p7EH zPaFn0RvXnXOvQB~btrxs-n+WEtN0-N$%i+AU7(N9e^?-<3HlU@=YP$DUg(@oxrBXR zMq0o{LEfkRmg8rQ7 zs2Q~u>sv$G=uE09#hu*q!A8|)~$*@M)9Ydd$yI24}pZ0xFZUOXU z-;aaYW57S5m!#xd$kQWhSwc4SDCwI+o(l9iWsQ_?S-ILnPZm6^>OS4 zzFr0LcL;o7ig;Nkap&`?n9pD5tcNs3DlBfeL>78=xA=a}uZn$|1@G7w}qT@a2blLP%buH$1QJ(g0H16MA z=ct4_1yv}2F!ThT&$!^Tb{zC7K*~M?c{#IUkV_Qyap@TsY-^*iFXW(;ci0$m9Q6Ly zjt9CVQ)zZLrw#I7MDa(l`^G@ztz~$=d*im?Yly3z8g{R8CU8yt3`q&wm&Odf%6nh zL{#OK$-tLxjY+es;150TDrY7Er#FfwX|J)D?d2_`}gOYC&Xf1FX}hgNn+iGH%=ZQ**rmHQD-phXUfTg9eAHg(b#ZP;B9ceiiQ|)g4@RwaBv!e{Sap6(zIzN$a}ON-Sv`(|C90k7%>(6 z&dOrw<7hjZ4!>#w{jaZgyh#KezTl}jjJgFA!T;Va9r4MKT~URe(2p0#>qJIDKW-Li z4QKh8DL3xrX2c1Rc_->*us^aVAhbyX{gkg}J~#-zt$Oh$U_9vW+%k!<1pR5Vm@`Sh zqoQeVRyBgo`4VRDk*_cfFHSw_g1=W=THQAb&sVIP&wB}Vh9ApAOiZ>R!$ zdnBybg1RNcE1G7%SchcvckeCS26-DzoisPl5c`jf#lpz92(J%&$N2z{gO|x(84G-i zuga<43q0r?Z&eloehRn8H)6k>x^H5(8Sy+FSN|fHmD@2*$MrE7Ur^yk2Z{Jm&H2Tn zJmCEG%?Bo8pM!d7H*bL)?7KkECf^$N+9&i^>JIjxT1cp)O^?&@iZl*7v;f= zI3b(=M`i)5f4|Q!5ToC^y&%zVWUQ0kFz8d*k}!{a=vSCZ`u^9LFRRQ+eg){*J>;o9 z>e|G|LOPHhEtc$w;Jl@bc#-#uuS3 zslsy&aqeo`_ab(l9SH}n6oda|*2BzkPKb6F@r!y6eo(Q84&@?VBD9WH+k#(q@ZX}K z->mH7Vp-_nx3`-96Hp&&-1)pQ33Z%6&(9lA0!Npg&Wq0lzHEQ-{q8Bfwr=tK(oZ_YLV}BU+^Q+5r5r-GNS=yQc`;v=R8v;C}`*`)r zv%v4a_WKx{Rn8rjh?CWTfcUL_^y@Y=CY`*ke@YhS?#8gZ8_e)E6zgh>q zd=&JV7dSwlQB>Gr0so>hQL5VjIQ=AVbLlsV`bt{7U3{a3~^<*BX+^d~cTM&=CA<^17* z5%7n&Zr+<11ikziOoy}k?#9P8-BCZFDWbX95I7zv5N*WfEBdk5JrL(oQxsh5>DVO*b81#WmwJAN9Xv=;TYH;OAK z@B@#FzxzANvH66}xuL9HE_ycTT|V?f!av~1A@JMWa;VHE*zf1_8V}e!U<{xCAZ5ra z@Qq)s1lFPCoi2%ZiT>PDU>^ybw|#!i`UI|pcAMW+K>i%KJggCG=`AyZ(-YMG_l(@_8QY`P>o!+>NaXqV*p z!rmg&qPk7s4-`M?Nxp=BE1#mqVLzHGs(zTquFpWic=~I!Ei}I^&V>@AyKP@(0e?TG z58}6kUA;VXVmk?Y%Q=_)bPwh;zHsQ+Yv`f$0{u2U#8pyZR%435{}ppfYOw!I2p1YH z#d#6><;BMb@54@Pww|?T^X|UXSGt>k`<|`V+b+P~&Ce<-mO+1vKVIo@Lmm=5cCu*; zo}b;7CM*O#Gvm_UEEtClnBm$YgiS#=avJ9&u}PFZ}ny9GxmR*k5Jc zg_9M)z3r1#7a`7~bwoWS27w+OnN1=>kgwn7)|8RZ7q2Y4eW*(j%k@6Fwt{{E*;)QO zfcMI0E*~(1ymF4|IwJod295cqm2hQ#WUO%hriN`)Q^JCrmTYSKK-Weg97@y)}oHV?FPbP`t_WL;p?_Ymu&pQ-!?Tnl@fvrb*9JzjSF>va`-GeHq-x8Ml z9|+)_C}pf`ce)CB)xwn;IBK0L(p(m$>Z+3mgI%b;~jm7yBqAk^EXcXj~{y^fC5&ZG6cHV{9zoxZs zxQ$hT-;q3b`THvP5&h&NZH$N58%O=>%#+8q6MWQk z+Ob>}{R9`>ouvqVJh`lsg*=zpC2A7VhUb>bj*mBh{|{Zx%d&o2@Xg|Md+_6tme>*0 z38_O7r_2yv(Kqe7x3K3J6o#E}1s5nHjJO4Swmw=Bhbol`q9l)`YslBoaA-9??jyeB(GAH_Lk z#&yZ@fKT9S#GEs^yTJ$H@6#ROmzf)vEI%9rpHi3B^u+>iLdatWp96=^DV)BEdIH@j z7R9q4>&TP6QPqI!G0i`B;d}|TZ~WuO>X6?p^98Eez_0o14`x|mzVGjyE&?BzhlS6^ zy8}m#1v)QaGp7?Z3{8+^C(IG;U%3#k|=L>axK>uy0GruYUC#EURUsr~4 zRNPH7Y4H8NxBL8ASa-14+pI~5$L9r&5ZHozB`Z~;dn4?&S#5ct9@@}?7xe}3`}f1f zX`VxVcgazrbO-QcWqyJpOUHs_#=(-!FGDtLLH@z4$;&Jpiut}I+I?Jz=RwJ_-`>FQ zWE_ex>IFY{)>STJ^L<*z=jA5&wVU@l$0M(11fLmB%7cFB{nSusL_E@@bs=mr?4okR z5qn?wmvLjfLzm(CC-2FUh#Tqfc}I`J?ijHOe4-?g~1n@)SZLwA^uyRHfIjbrPA*$4x6JMN_9HtoD+b3$yLj4JPkYcSz^(QIwq|; zDqUy+>ai=s`h@auKdzkDCL4M%$j`SP=NgGTjU(FFmnEW|N{aQM?~j_g7a$I&61MYC zL0yf=h%_5ngnT>3@oRYs?CbVkeQiJZPd#$31L~;EIGY~Z2^dGUp!E*c$z0ZGe%Fb( zwP)m_=g1G~T(RVb26(POJCuyT`rB0NyQ-o0k0wTS>;+xh^}Z}+_p|PII@#<&duZ6F z$^+2b&=GIq*|_CZOzrut@GqSQ&osWnzLcj=Kw1;tYic-g`yl909eQa8;w3utdgrWX z@Dsga2A&l3!LVw}ZJdWB7S}A<0URP8UQ=JKig}gtlMj|ae(Fg{Cc&`BTFvLiz;UKN zCvNmd$nlfab@5*K7a42U91{7y+-;p7F`!FKP~aXL2VF2Qk(-8jmw#^A>;pMZsTSRa zx*8Kc!Mbq|`mMQFvk&LRaI9ovDf`}Cx3T3#L5=F+iP&NEo(h z&?m^rX!grsYxvdU^#NMbv92DkL3`fe`KW|_R%5}JN`Ea`Q`mKm)nZj~#08m!lpR}t zxcg4$^l8k0bl}Bt(K~yNK=1aB9J~56 z;+cp&o%_y${~MjpG-!fPA6>Rr2!bx3!gCAQ`ik@P;LhuiW43_xd+b9~DMBY(P|u^| z=jTL+!oLayY(|<)(oCZCaQ6Iip0K2UF8oh=w39gve`7m6W!w;qm-lX6&wTKa_SIZ? z0DLi>RbuP}eOlo(U1t{P6ZaZx#pcgjmPMR-D1m*1y|(QxcrWSr&mh!uXziHC+hSo~ zw=Ex3vUQ@xMhA?R0mo;(nej;&@n7GOP3-LFhp+cZD+qIxU zA9{XrhH+TK1mMd0w2!NRlM8%;uT6p-^_eZnnF6|(CoH?p>i_(Ng`?mfDD#Z(*(tD_ z;pv-WY9Ntws{!TBm8|?X~s>ISoh##o?lUytC{Ss{~dvM`==+*tB*%7Go z(yxYmzd9B6=28;=_9OJHMKea&2z(G-d!fjVl|$z`dK=d1WclbF_{zAM4YytneL9&g zw-bJx{xEe%6Aika^O?`Q2|GRc!TOag#>+_9zlYtYH@e+DoIM|R!`k%IQ{e80%;Pto z00)oB$7o>RiGJmC>nwZDO0baEe>B!xW|{m^9N$?r@oDhl93G)v@p`T|)^W63e@+wc_(oHM#stwSC|Bs*1`uZ4V{l&%zI&zbD>IzRs*{7K%G zmBY^?j+&$S>d14*Z`hp-FE*b49v-#o2kPcN#m)_tpr^_5!AjsFZ8|0ED1-jF9#?Mg zVtvPhzGh(mmRYm&i!%FNSAw)}bpzz8e)S&DXULg6V>Wy`?ETU4$Rk6**X=z9%ltw2 zo#U={fye{-Ox~{^1HbyTs@BXDa^yAaYs9%ZI!az-+ivKggyy!&>%bS=vH9ZIf1`q( zULSzpqAT)Mw-h69nta{PO$2%V5D!yrHSqa#@2E#zcrUAG&O|xToo;f)ZVKwUU3Zpx z^&r0)GrLr-8+tMnf`A+ohV(8l)!{}M{$YUgrv^lwfF8;Z@_TxMnvnD~;4tPrknP#hg17Daq zC*}6wdR$A#l1{Am=sAHYqmaKD@$?lA$2@!a_j=xf{Vh6cF;N-okp8-%9Q%A!n)p#yagjeyG)g9=U3)%hv^cT`%duJ(yQ%jp^ko_@|JF&^7G2#op?Y*DHWO`4z;u z2hbaHD;_C!AFJfr#yNqAZ!@ziB0E9P>iCb_kl!&w-7M>1pY(lo-RsR*&(Z8fuKsvG zH^W}&8tn90L&icI$RTrghYh|1AhgFPY#t5%H?_G4)0odrLFkz`+ zv3ZB-!-IRB(Enuwla`9>ha>r&5swf~4kAAt!H4e)DlXS!-TPcS$Jk?Conb5d9PnH% z{>Z88(3jGx&=W$ii>+zzPEojaH#?kU2mW|WlwPnLe6MY~SIB<1a$Z$L{}ZnJ#z)>n z-H!ggrsm;Q@X5HZMi}3jQXel={=oh^mH7SC;rZ}8=cgH;2hK3Yd7q!ULrzV%)V6*G zemGCGIb;XFP~m;&5SxFP^Q)SFhy9!=5A9rtymd?t-x5Wv`~1ED@+a1HzdgS>1oq$A zDssadd04H-r^4yL2`AlEkFB8}6Ibun*MWU+zF>C63G^`zC$FZ%5AHP2@I4K=YCSF} z#yJk^e2}?vDD))rSfv>11H`fYk3$8)w>>hx=MRA&_sUoAUXFT4%kWCiukahYU%#>j zuFy7N8x|w4AVw|}@>`7gUbj>A7$Eck+kIOv!{I0_Z@yNvLB^_tbug`wR%=eJPf^Y8&1fcIJyX2jwVIIXj?G}q6 zrzNgm1LlBF4=-Cz_Jn>-pEtD~=Tj)#(Sf7Df97!3w|F+*jM_HpI`$i>)0Rqu*>j05^M1@@isVm|8n>P3UgO?Q`6Dc^HxFvuFqPF^*Y$Mdh5_O z^zuNXvIYCymi(>t28b&u%~|uf4}dJcNDR zzG70qez#IJ=a2*Z0yCw+)eQAM;%n=T zN_Dp|hrQ*sdCQ_MNcEmn&69z?YLZRv?EZ?WMn%JF)RUTr*T`0*{}<2U+V^4CU#ygp z0ugVNT06?J-;EVX@$9_;d;T7p{1f#pBE&!Fr!V9oF?+Lm6VAs79X63eeoj0ey-J}7 z{Cw7MN$xWATQfsk4R%49e%RWD{R`%D`wP{T7`NFceHmJUa=O}p^ZJwlkMtGPpNSby z=G^!O`x&3TSnebAa%#&QO?|v?aO3?MoTnku1c`C%xr499WffO2KQ;E~HS7mbYc}|6 zIzcXtGNWS`VV*LzAM=vIufTQdZinLiJ9cJmeQX{{Shk|xPVktj&mIOoBzwmCB9CJX zr=)1@1E2ZxN?h6au~GcAml4LFbLiu-8<6|QA6PQzR21*Wwn(4Sd+Q5+W?ZJwca*o_v%w*7+s=Xka+> zwD!E%H#Nk0zDdsYM^INwFK>7PJENu<74hPnDWOX@twUZ$J*qF1!#PuGvYVb~B;+r1 zG~h)E^lir@nYC)GMjb>O~e6pkMuXR|LM}p|8AA?--9fVrKFB zslw1(@1O%F*zY7}34P=51AVWPN`|CBKSlSAU;G(zm|q$fSp~Zuku$%o4tT1q=Ipu} z`dm3LIouHZ%vE3Uj6GkXSHV=~Kz`$^f>o@+pHj`IW{-hC3CAbJi(-7~l)YlNvCeaY zx4(UhxMRUJgF)V)JH}J~3;0S&F1^2#-FFOq{Y*#~bmmSC3&s8?#S`Kr=nQ&Pdox?B zkuNlb=L%heybXKlqF?}^UaLG zn*U`Rn=|EngyULv^>A&Re<8+|~QEjTAYo~;fkvjB$-9kGW z`6zw2W{qzK^z`ydfqJ(7r=ojn58?yj`4_b&N$6e9WmP5zcCR|Vbxa=Y;;Y=So$UTq zTF>Kia}ZZb_&(`IU7x9RYgG@y{N`>aud?yWT+oIwFh3I=s;6lJ{QrJ`#4T;a zIfqU@mqA=dywQ+#)y4P*Dg_^quQHNh1~sekp0M*n#kt_y!bcOtuEWkIh0k{W2|H7( zUwajCB=IRNh6i{-4=s;uab@#Fk^AoW?t>P#ZL8ldg?+n0a{`ZHUU`SpML5UHlqcq^ z_rX3_FCOB37<`>@v~rUf?85r|gojp$hiK=e?@nNx>I{Wc_I#5sp_v7}prZGAU&)8P z&3rBF*bDw%yWu8~4n93`n1B5!_>ul2QE)cm0QK}Ovv`3!myMIZH$$Fb3c4$2fi9(C zD?T8OC7OBLU)Es!tg{c&crd?n)lV4|_2>^Br;?CYGFzVCYC@jJ+^J4)dx!qsA8)T; zkN11-^w_mxor0U_wTLU2)zwXF$6>zZ4-VX)3p);(8}J_IhnTLY7f+^RJas-(l}8wd zX}LceewE3ISE`c$ewbP0i^Ja$rXB@m?D?fCv#NIZ2f`_C`_CfG=Nsddz8LE(8o5~& zcuc)|oM&|t_ADs6=nBsLQ2Rn&4ae`;5WB4cCwzln-LXKTmBo$wQp=8?g1%?8uMb`d zy}M-Xy@Wk?5%G27fz@b7+f~@Y9%=QOk1}jt;BsiO&>Zmho8xXPc3;OKBQFl}rVm__ z9geybQCPXtgw6NGkCr*I`KS8B=oNFp_aYZn#XZRD-W_jo)32u;6_}pd$INr3H}t$aT@*_{YpD@CvCvImz!&8SEZ#&&o!Yn;d3h5Z|1;YqUk6X$=nDnKywm%Nk1Fvh_ki#!kAHt>?^$QOCI$M%h6v zbT0Tg?8cfKIG;u+btY|M>q7Smj*MgNVYAX^t#aUl+|;y1`0kdPdE~)CFN~veW91qi z)LsAj9SkbFk;=e+KYfgtq8S6fYColQ7wXFl-IwFEkztaO?2OLgFSzHu1W7Q>J-en+s~re-#b!suE@Fs zJv45dYywul(50Uhv1vwENHFB7qYP2gH94LcekD zJi``Y-*xqPxu-aHOGGT4b)G#}^lGQ_C0^ifSAb3p@@mG$ZDIOp*j@IuSutktKhLAv zz5vIGZ#_i??0%hK#q%dGLC<9qQxDWbsTX>SYmnzKrdAod&{B$M$3g$P zZd<4^pySfH%S(`-5ug1IMB@7v#$F~i#0%GQJx^)yg<15Lumzse-(%xWx4_S~$h#eZ zzo$Jv)NRJOFKTTi8NCqei!>{iu|?gcZiFa9iM=TYD+T~{@Ak_htI z9UDwz;8zH}{Hk1*k4foI-vjp;U-8ceQE#V-_{RJAeKE%PVfstdm1)b~o3oPeoPYO& zZnpoanh~#XUX+;l<7W!X&-{<_4fqb2<{#O+kKM;mC_k@+{WEIody7ugGpOfL7x>Cq zKR<6Fc?md@S`)i!8d{5?)XXX1TiHIIq43wV+8EgioY$oVtlQ&R+}Syz+$Id|ii)@H z8^90cVJ%6hw-Y6I=HEO3{g|Qbze54@&v$h9!S`g0wsg-ae3wYPOus3z9r&g`Ps|$U zmzYw%4Hoz=kWhD2YH^3XS;xA*FN2FhkhA*NmUKAXDrT0b%y&u_}S z&t%U5^+pXjj5;H8yiBdb6aHrQ@+%APLEne$A$d!nH=mNuTH#y(!{7WQ9^Z}9(g!9; z0=KAjt&2AxZ=hWy8hPgFk$?TPoYx#{uek{#0YTwz{sEr4+UzgONzC#Nb6+vf!z0K& zc!9UC`&xfLcl^+t6=5BlYL^f?a;~wIZyD z&FCKF8p6Ki_22zE9r62*{_orE(V06SMdIkEsPm}45GQ3vo`IJBYn=L;t}Bqzzpkgf z6)iqBfGwf0*pw3^v zu0jw364S=AeE9W;_y50Yf1j@V_jvv3=GOP8`8fK1|61F>$N5wLKixlnaLz4ccfbGW z|NEAcGbhhqBmNiT{&mWRxN_}H7qYwGe}8+Admbop3a9=4^ZBnkf9wCJ>;8P6by}XS zCjWfiUd=Ukf=WP1f({I64*|+X_UAJ8T=6IT{BOtoKkfJ5`iDQ!%i++U@U(w? z!mX3jdoE7nTJAa5{s}++DIenSFS^ff4^9LA{-gixZ@KaR)Yh(YVZTBq{@b{e!+9=l z=kT$|Dd;_R1%Ch0|Hh&Ic)`U3Tpqx!>%WaJI63?Y|N84Ohfmx*T-)FNI6iXExt5C` zx$A#wxjdAUXL-aiwi@&Mk0uCiy#8?lr=OhNaD3wW_s6HO+YRggj>~`2D=vQE#^Kh_ zt&_Xv{QaMBma~hC{C98sH@Mng?%X{8yX{}Ue(~$I|0&L&Z)&lYjbk{z^&g+(YybQG zuQ~ha@7MeDqrcqxkHgK!=`&|v`+VoKyHUUY=>Kf{>tFwM{CWfL{S!a9e*e^R@ii9* z^|upF|N4*9-_E&l`uFR9-JgDL{Qmh4r^kQ7Q*K;Nueock<=*FTg1gVzJBP>p`P(07 zIseDK&$ZmVHc!s3WAi!gK9`?x^Kke3x7@tk`Z)aTuV>tQTz}4f`{zkqp4VT0xcB?( z3+I3T$!@s!`?nmP^{*dt>*V@#*Zuj*J^ydp#>7Fd|L)iR+xPy|kMld+`ug|#Q+&ta z3n%}-es%p{^{PMdzyJ9Caj}0q(Lev;_|1*a`Co2au0Lm&T)xRY?{7z(-f?=s_2cRs z{ry6J`Sri<-=7Q`^R%!KQ4aY*1_H9+Ig+#7PI!njmO>ZFMqD?Flqc-bL@ux z{-X(k!?XT4%khC5kFz5#PU7x!ddb!8xw-{c&-jzS<@Af=6Sw{mpFhd7`#4-Y+Mlo7 zyc~{j*Zo_L-v6h%`)Rf8sGyex3U`<8yzc{>+=#NAt38@;;IM8^3wq!)MI%ldp1e`*QN*1pUanW`lK336@8XklDfcbUe{}QQ$@!f4JV$1J^3rGSNA6GJ z8Izam)p#^->eGMr!Hnm6?t^*GB`@ok>v>M)c}x7iJ*L0h*SznZ>tmiX$ z*W$l=juOv%P}V2Uarm5{sh4v$`*WU0S%-XnCO`F7?*mz%xvtUWd_Ma7UvwFB9-jL= z$-JV=^E&65`;&Nd*(cHG``79^{2cTCFweKlW9H{N>zFZobaOxCekU*MpM914KmC%I zdH?xS|M<(}Kd(*S@ym0R{O}p`ew=e9{iNQx`xT$nn0e&)`aGBUdlY%T^4>pv(#Pb} zXZoMea!Qk{P}*IzB48-W8PbGeQwP2m%o>CE`JqY^^^Shyo5hGW*^S{ zJioc`i6=kzG5uwI=6=q8iayu*9uQsPbG>r^5*((wtIyH-xfcIR$E@>FUEUA#ITl^!mFt}2xn7O&TgA^kzu5=#oXNSkTIYOE$nO#7 z>g2qg@8{_|=grMmKl9hmKl3}xjORLIe$UAD95cUj{muQKdC&KPd@syN|Za!y;uf|LBSM{g=JYRDT&%D)o&UHF^ zUS+?}I`ewo*K@k8@9b;(=Df;#SI+P3znOp6>+I9`5Ji33PoA)pL>bcH3W}KgBoW>i*30 zEcxfgJcmc0+w`~c&3nzI{bauRT#x_USJ{V&XZ>=W^D@^{AAU8a@0>eRAAY4z|M^~! zytywk-^6o0>m@$tIoBcY>v^xsev3ZiYX9VOF27SGe>JY2zvSl}oPKj%lD`_yox3aD zGe9CL1D-^}>A>vQ`l`aD;8zY4z^=Q*A8YUbzp4?lI`SL-t8o%^13 zi9Yu|WA=OU^LaF%-{^C0=6a6to&3@3)SvlTpUiW$j#HQG`8?-yX#V}5&wkGN&HKMvhx9w|&&q$b|MFh3(uJSr{oLQlTa7sv5}()M=eSzG?AM$p`QA14 znRoIN&-%^%F|U(9$N4#yb8F_UuJh-`tN8Qs`JQo3e{P;IMU+&r`Xv)_3Rp7V)5=hW)l%)XlII6n`vKjM4oxSH3>C-a+qt@0-y{p9C$ z@-n~d+nG1te-fY1dDc7eb7S^#`k48v=WphnyPm(3<(y94c|M-=OFW++xn7N{_ounf zqR)L_oo~rII?nrguJ6@-%(|uSUHi-W=lksZ{rb}9CVgd$f3D|vE*UQgfooXqp= zsBiM}yxw(v;&*P$eq80v&-Ybc`1q~PmE`4o&UNa{_09GC^Ur(^p8Ncbf6k-S&Hhfm z$y<&2eJS^6l^6bb_d({HF@E{;-t--Qbz4`c? zufOr_ufP7y)Bm0B3HsJkgo9f28&4H)K1H~ucHdNacK%1q#DGfbxJEr z+oJp+S{%er9wZME)d3fI?jG zZAgthqLrtH?jZ_!`V+-*7Ny-sDfS)kqu>m+Xmh4$^JvwYGp#7C8lsRqNVFk&>O%W! z@*oPRMO!aNIXzRjAL>H#^g@^E@?HAMG{mPgT?MfZp^w4Ymx z(yFE_QRwnKTFzV`(fw{RkA}E#hV+8tg4?^aJkAj3=7*EV8EVm1qbc@z6c7at(ld@i z6eq9EqjBx-b5R3o)hM7=O_U$5DH=!7y64;wZ9{EtTtr(}El&+mT3pL()hHl&T=vMS z>7}{IQ>`H`t!{H}c{nw25I?9zxyXYkpr)_}@*p#BT6s|GfL1lmv<>a^RBMQz4jOm4 zmW%$lh(e-AQR}(+;UHQ_)Lm%3$TK%wQ>Z}!(aLKs@`3$HZ2ZPt-0XjsUgY_qG+AcHblEedTDiWkZOCb zMfIX?L-JI^afY~1h&HbIHI6es_X7uUfkc}hPN!-#7u+7H3sE$#)zuZPo^kvr-NL7f6&Arv?scQ7&ewT0{IGE=Lh~U3DDA#K3Uw(&_Z%$+q!&ofw4yk5aZRfl#BYx%S~Ybcd9;xJ zaFAYb{927Yw~w|Os_B#qq|-ge4^o%5A$d(JN~^1;XfvXKnzlvNh2-h)TenwF|7x7f z){SUGyc=p=>p_$=4&qD;wJ5DT9EG|KHLW}@&6!qS)5^2bNqkt&5h&E(K zkQ)3%n+rwD!^u19(zIO65^Bzk<4g;Qs)mC^AyH@_ZR<=c+FV4THs8jn0dZ;71&KB!uhqrT;u_LvL#j1D3eNIqA$hcrC>I`i9%d(d(;&B`^Jw}e>kWq8pj3NyU2qmpcZW%P(ZX$)7qU)dz4cHQVqwi zA$huLE}|3-wH+Z(2e^h>HJtwVLHuygKHBok2$Hw&N~h}X6`Ub1I)FGs6kJ4)a$KP1 z(q<%&782D9)S``3mlkS@qpPOVR-8uQKVMp?x!~lPd5hv&UgJ2^LKN~Kv!uYa zJlr0&x;WKvd!!mIt|9x60%{7JJY88AQAi#aNR$FZ?;?+u z0tcBdj*BRlhG_SQw&jUJ@^Fw&aYvE4*@;K}_FZvqy{NIz+ecdmjZ;l8@}L%N+LqTk z<$M%1=e@Qmj&htSpcb_n=DW}1*A)D?;Ot2*5Ii~JqD?FBC~7@(K8jSMz%?Wfl6SN#3NDZ+B-(1o+ei0#w5mZ(+Z1h|a-nE> ztp+XB@^Fx9w78bnqVgbqjoU|C4GM@eM7z(Uxco%t+z{u6C`9+18BsLUTxdn@D_rx# zQQ)BFvRCMeOGC|>7NW(qyW0G|S^q{H$A(mCQC!Q@1Eklc;78F=Tl40JYc8rm@^Gq& z;?$skC~%PI9yP_D(;sJwJ)+>!X4yCjHTdBmQRt{M7l^j?B2P6)w4tMUIykD>SK}v- z^Bz$^6u5@uHPjS3rI5G3AG8!u^Ap``%oTtxS% zDfV1jm&U2v{6zQ2+@Pjt9jM!)&4pqgJ(|Zw2m5(61uZ16_0saxZBc#=(YB}#8lvzX zf#a+zNM3W6CrSae8ltrPM4_X36qloY2bcTlnHG1n+CGn;b%yqJY31z^g&Ifu<4mzf zO`)zRq(9tVA+I6*?W5{K6u9QMk5WLK8^=!`)D)r(Q8Z_qyykM0O|34Yg|W)P*RZqfvPcwVvheyOMVlH9uUNo2VKs54T5L8d8mm6`~N`E95~(U7Dh4 z_jyf$YpD4(u4!=;R!9`r@^BP)LEdhfvtC+_rjU0u+VXG>U0&npJXE8=LH518)|EU_ z=<=uzxSW1#dwBcK)#;ySxc>C@XMTGcK70M||BA!upLBTqPdHq^djFJs{k88t`PUu} z2)=Tu;H#GkzWl7<>bJKyFTeiU8*jb##_ee?H!t1)_0@yh>rdXi{LTkId-o>~Zcp=k z%)k7r`yV`d9QppuCqDe~FW)`|AKc!2;+;qDeem$TpPt~y9(?fLyH~e=yuJ6)doSI4 z@$o-r@#rLc|LT)3yl{Q}{*O+>`|q9pbNVMPJ~G3Y@Haody?Nz__aEN>(J$|Rcy+>We|Yuq{$t|Q{iAnY`zOUWHIM)R literal 0 HcmV?d00001 diff --git a/test_convoys.py b/test_convoys.py index c52e8ba..01eec07 100644 --- a/test_convoys.py +++ b/test_convoys.py @@ -208,3 +208,21 @@ def test_marriage_example(): def test_dob_violations_example(): from examples.dob_violations import run run() + + +def test_other_data(): + data = pandas.read_pickle('examples/data.pickle') + unit, groups, (G, B, T) = convoys.utils.get_arrays( + data, groups='group', created='created_at', converted='action_at', now='now', + unit='days', max_groups=10, group_min_size=100) + convoys.plotting.plot_cohorts(G, B, T, + model='generalized-gamma', + groups=groups, + ci=0.95) + matplotlib.pyplot.legend() + convoys.plotting.plot_cohorts(G, B, T, + model='kaplan-meier', + groups=groups, + plot_kwargs={'linestyle': '--'}) + matplotlib.pyplot.xlabel(unit) + matplotlib.pyplot.savefig('test.png') From 958517f05a23bbaf341862b6fe1fd9fd9d786a9e Mon Sep 17 00:00:00 2001 From: Erik Bernhardsson Date: Tue, 12 Jun 2018 17:21:48 -0400 Subject: [PATCH 5/8] hound --- test_convoys.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test_convoys.py b/test_convoys.py index 01eec07..bce3688 100644 --- a/test_convoys.py +++ b/test_convoys.py @@ -213,16 +213,16 @@ def test_dob_violations_example(): def test_other_data(): data = pandas.read_pickle('examples/data.pickle') unit, groups, (G, B, T) = convoys.utils.get_arrays( - data, groups='group', created='created_at', converted='action_at', now='now', - unit='days', max_groups=10, group_min_size=100) + data, groups='group', created='created_at', converted='action_at', + now='now', unit='days', max_groups=10, group_min_size=100) convoys.plotting.plot_cohorts(G, B, T, - model='generalized-gamma', - groups=groups, - ci=0.95) + model='generalized-gamma', + groups=groups, + ci=0.95) matplotlib.pyplot.legend() convoys.plotting.plot_cohorts(G, B, T, - model='kaplan-meier', - groups=groups, - plot_kwargs={'linestyle': '--'}) + model='kaplan-meier', + groups=groups, + plot_kwargs={'linestyle': '--'}) matplotlib.pyplot.xlabel(unit) matplotlib.pyplot.savefig('test.png') From 0940502fa7293b1125e0b453ac242b679f71c998 Mon Sep 17 00:00:00 2001 From: Erik Bernhardsson Date: Tue, 12 Jun 2018 17:24:45 -0400 Subject: [PATCH 6/8] rewrite doc --- docs/introduction.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/introduction.rst b/docs/introduction.rst index 7c511bb..86c420f 100644 --- a/docs/introduction.rst +++ b/docs/introduction.rst @@ -37,9 +37,9 @@ Luckily, there is a somewhat similar field called `survival analysis `_ is a great Python package with excellent documentation that implements many classic models for survival analysis. -Unfortunately, survival analysis assumes that *everyone dies* in the end. -This is not a realistic assumption when you model conversion rates since not everyone will convert, even given infinite amount of time. +Unfortunately, fitting a distribution such as Weibull is not enough in the case of conversion rates, since not everyone converts in the end. Typically conversion rates stabilize at some fraction eventually. +For that reason, we have to make the model a bit more complex and introduce the possibility that some items may never convert. Predicting lagged conversions ----------------------------- From 9d9bded3782cb1449a99351e2cf12c2e1cc78374 Mon Sep 17 00:00:00 2001 From: Erik Bernhardsson Date: Tue, 12 Jun 2018 17:46:47 -0400 Subject: [PATCH 7/8] fix protocol of pickled data --- examples/data.pickle | Bin 86241 -> 124775 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/data.pickle b/examples/data.pickle index 67e8d6bd097afc0194892b50376b00129c6653be..4c73e944dd61d0129468d2a1fc9f12946d75cd16 100644 GIT binary patch literal 124775 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 literal 86241 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 From e0f4001c736e2ac4d74039cda6c1e423fb28d55b Mon Sep 17 00:00:00 2001 From: Erik Bernhardsson Date: Tue, 12 Jun 2018 21:05:23 -0400 Subject: [PATCH 8/8] remove example pickle for now --- examples/data.pickle | Bin 124775 -> 0 bytes test_convoys.py | 18 ------------------ 2 files changed, 18 deletions(-) delete mode 100644 examples/data.pickle diff --git a/examples/data.pickle b/examples/data.pickle deleted file mode 100644 index 4c73e944dd61d0129468d2a1fc9f12946d75cd16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124775 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 diff --git a/test_convoys.py b/test_convoys.py index bce3688..c52e8ba 100644 --- a/test_convoys.py +++ b/test_convoys.py @@ -208,21 +208,3 @@ def test_marriage_example(): def test_dob_violations_example(): from examples.dob_violations import run run() - - -def test_other_data(): - data = pandas.read_pickle('examples/data.pickle') - unit, groups, (G, B, T) = convoys.utils.get_arrays( - data, groups='group', created='created_at', converted='action_at', - now='now', unit='days', max_groups=10, group_min_size=100) - convoys.plotting.plot_cohorts(G, B, T, - model='generalized-gamma', - groups=groups, - ci=0.95) - matplotlib.pyplot.legend() - convoys.plotting.plot_cohorts(G, B, T, - model='kaplan-meier', - groups=groups, - plot_kwargs={'linestyle': '--'}) - matplotlib.pyplot.xlabel(unit) - matplotlib.pyplot.savefig('test.png')