ctmcd/0000755000176200001440000000000013413137507011350 5ustar liggesusersctmcd/inst/0000755000176200001440000000000013413134054012317 5ustar liggesusersctmcd/inst/doc/0000755000176200001440000000000013413134054013064 5ustar liggesusersctmcd/inst/doc/ctmcd_vignette.R0000644000176200001440000000154013413134053016205 0ustar liggesusers## ----setup, include=FALSE------------------------------------------------ library(knitr) ## ------------------------------------------------------------------------ library(ctmcd) ## ------------------------------------------------------------------------ data(tm_abs) ## ------------------------------------------------------------------------ tm_rel=rbind((tm_abs/rowSums(tm_abs))[1:7,],c(rep(0,7),1)) gmda=gm(tm=tm_rel,te=1,method="DA") gmda ## ------------------------------------------------------------------------ gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 gmem=gm(tm_abs,te=1,method="EM",gmguess=gm0) gmem ## ------------------------------------------------------------------------ ciem=gmci(gmem,alpha=0.05) ## ------------------------------------------------------------------------ plot(gmem) ctmcd/inst/doc/ctmcd_vignette.html0000644000176200001440000276026013413134054016766 0ustar liggesusers

A ctmcd Guide

Introduction

ctmcd is a package for the estimation of Markov generator matrices (i.e., the parameters of a continuous-time Markov chain) for the special case, that only discrete-time observations are given. The implemented methods to derive these estimates are diagonal adjustment (“DA”, Israel et al., 2001), weighted adjustment (“WA”, Israel et al., 2001), quasi-optimization (“QO”, Kreinin and Sidelnikova, 2001), an instance of the expectation-maximization algorithm (“EM”, Bladt and Soerensen, 2005) and a Gibbs Sampler (“GS”, Bladt and Soerensen, 2005). For the expectation-maximization algorithm a Wald confidence interval according to the method of Oakes, 1999 can be derived. For the posterior mean estimate from the Gibbs sampler, an equal tailed credibility interval as outlined in Bladt and Soerensen, 2009 is implemented.

library(ctmcd)

Generator Matrix Estimation

In order to perform a generator matrix estimate, the discrete time data must be available as a matrix of either absolute (“EM”, “GS”) or relative transition frequencies (“DA”, “WA”, “QO”), depending on the method employed.

data(tm_abs)

loads a credit transition example data set. In order to perform a diagonal adjustment generator matrix estimate, this data has to be converted into a matrix of relative transition frequencies first. Then, the gm method can be employed, requiring the time elapsed in the discrete time transition process, which is 1 as the example data has a single-year time horizon and furthermore a method specification, which is “DA” in this case.

tm_rel=rbind((tm_abs/rowSums(tm_abs))[1:7,],c(rep(0,7),1))
gmda=gm(tm=tm_rel,te=1,method="DA")
gmda
## Call:
## gm.default(tm = tm_rel, te = 1, method = "DA")
## 
## Parameters:
##            AAA        AA         A       BBB         BB          B
## AAA -1.100e-01  0.104900  0.005093  0.000000  4.585e-06  5.828e-07
## AA   6.495e-03 -0.095770  0.088150  0.001133  0.000e+00  0.000e+00
## A    0.000e+00  0.037630 -0.139300  0.092890  2.105e-03  3.269e-05
## BBB  6.568e-04  0.003008  0.043670 -0.101100  4.438e-02  4.164e-03
## BB   0.000e+00  0.004096  0.000000  0.044050 -1.428e-01  8.617e-02
## B    0.000e+00  0.005848  0.003293  0.005807  5.893e-02 -1.932e-01
## C    2.429e-06  0.000000  0.000000  0.000000  7.001e-03  1.551e-01
##      0.000e+00  0.000000  0.000000  0.000000  0.000e+00  0.000e+00
##             C        D
## AAA  0.000000 0.000000
## AA   0.000000 0.000000
## A    0.004585 0.002025
## BBB  0.001778 0.003400
## BB   0.008452 0.000000
## B    0.064440 0.054920
## C   -0.363400 0.201300
##      0.000000 0.000000

A maximum likelihood estimate can be obtained by the EM algorithm, additionally requiring a starting value gmguess.

gm0=matrix(1,8,8)
diag(gm0)=0
diag(gm0)=-rowSums(gm0)
gm0[8,]=0

gmem=gm(tm_abs,te=1,method="EM",gmguess=gm0)
gmem
## Call:
## gm.default(tm = tm_abs, te = 1, method = "EM", gmguess = gm0)
## 
## Parameters:
##            AAA         AA          A        BBB         BB          B
## AAA -1.095e-01  1.049e-01  4.613e-03  5.717e-22  5.984e-32  2.089e-30
## AA   6.231e-03 -9.500e-02  8.785e-02  9.160e-04  7.664e-22  1.258e-24
## A    3.698e-17  3.749e-02 -1.389e-01  9.294e-02  2.000e-03  4.502e-06
## BBB  6.155e-04  3.016e-03  4.358e-02 -1.010e-01  4.439e-02  4.173e-03
## BB   1.187e-16  4.050e-03  9.687e-06  4.387e-02 -1.424e-01  8.606e-02
## B    1.986e-18  5.769e-03  3.231e-03  5.734e-03  5.894e-02 -1.930e-01
## C    9.053e-21  5.933e-08  1.652e-08  2.460e-08  6.780e-03  1.541e-01
## D    0.000e+00  0.000e+00  0.000e+00  0.000e+00  0.000e+00  0.000e+00
##              C         D
## AAA  4.326e-31 5.286e-39
## AA   2.367e-21 1.333e-27
## A    4.501e-03 1.961e-03
## BBB  1.779e-03 3.400e-03
## BB   8.403e-03 1.912e-09
## B    6.452e-02 5.476e-02
## C   -3.624e-01 2.015e-01
## D    0.000e+00 0.000e+00

Confidence / Credibility Intervals

Interval estimates of gm objects can only be obtained for the methods “EM” and “GS” by means of the gmci function, e.g., a 95% Wald confidence interval can be obtained by

ciem=gmci(gmem,alpha=0.05)

Matrix Plot Function

Both, gm and gmci objects can be visualized by the matrix plot function plotM(), which can be easily accessed by the wrapper function plot().

plot(gmem)

References

M. Bladt and M. Soerensen: Statistical Inference for Discretely Observed Markov Jump Processes. Journal of the Royal Statistical Society B 67(3):395-410, 2005

M. Bladt and M. Soerensen. Efficient Estimation of Transition Rates Between Credit Ratings from Observations at Discrete Time Points. Quantitative Finance, 9(2):147-160, 2009

R. B. Israel et al.: Finding Generators for Markov Chains via Empirical Transition Matrices, with Applications to Credit Ratings. Mathematical Finance 11(2):245-265, 2001

E. Kreinin and M. Sidelnikova: Regularization Algorithms for Transition Matrices. Algo Research Quarterly 4(1):23-40, 2001

M. Pfeuffer: ctmcd: An R Package for Estimating the Parameters of a Continuous-Time Markov Chain from Discrete-Time Data. The R Journal 9(2):127-141, 2017

D. Oakes. Direct calculation of the information matrix via the EM algorithm. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 61(2):479-482, 1999

ctmcd/inst/doc/RJ-2017-038.pdf0000644000176200001440000111024113413134054014771 0ustar liggesusers%PDF-1.5 % 117 0 obj << /Length 5796 /Filter /FlateDecode >> stream x\[s7~RUVl!L[ Vp vqiGUuh~V%xEء{!LUi8g+Dƚ KPϾz381@ +l~lvWX%=LsV i𼚽yKLeC`1BW˙5ZF,zq(lDihOm}/]|f.u}Cd`R0>SMl{?bayu|Ng{}75zmra(/N"!w. џnm6Q2+MjHC|uowރ;˥,3cLwW0׻vXAŦ]p?>$ $* '` sJ*Uv|}_.#"ͷ7M&b_?ui%M|ůP>ȗWL)f+ӔA㤐v)ԼIGwtP(.zkлp 5-5<|RVz;o4L#]\AJs k_oHð 5_LLgA UhS{`"Jիxovi&V3"3-; MUH"YAнc}Y7i%4pm"/31# 쟧!Po5P=]0?X#Y XgrKDi!\dPz{,2X07v[fIj+T !Rا4 Vbh2aNa v Öls~W78UzUaI0͞0\0GD.eGcJbC`]GBCl(@*/hI7?4h&/5$#׻mTX SjlK EhM5>~0ImR"(c}|ݏ'yIFWM0{,.;1 h=fo,?DAc`H,tbsױ>fu˜i6&d~W$ Ռ7ÿ}7 hͬ3=Ku>RI6$OOI"VGus>-$,wǣ>J*`ozuéK)7jپ={`Aa֮Â!9{7a\`-7Ancw=PZįQxE.=I:;šFs"jgb{Tve6]8Y<|Fbbqu2e*a,"q" |E0$S: G~S{ ؿ߷:I}sHwH8I)(nEWI,o "a"5&QLI]7nMb@9kO8 SnCΆ) z:ŬA1>%m~"QBUR'OL2J}̤ZZMzG]|K <}N^oW!51*Ys nŝf|5Ӌxü]_%CzL̛H? S.' rYI/S{9N_T$M> 5EF^'ca̅(dC,4 aܮwcB0eDoj'1A| BMw~3E,avC<4M{Xc[2P}BHC8\/6%ݹ0C}*m"WӦRW#[ғ,<afJ6vC+Ԏ~ky +d#Ty2 $MHT'rpi)2_i,R8cJ!yAnUOƜm'lR6Tʳs*LSiW)JÞVGN'Ĭ][1Al-tkڶkסB-myoFcni(6֕I!VtQ4wxZכ‡6Bd<:݃1~A'PƫSkR/7xQ6N=L$Y*UɕV"vUSLJmM ?$ؕb8A+$u@'5%ѤM.TCU֩YE[A;ÇcS Lrwb˲c!鉗ݞeH}6yC;9뎳OpV*WIL>5L b ȡsKm@BI^8>s|mRO{J+4aI%W"Pw8Kz8x_z Ios>UӯS?)eeVk }ެV&aV/;Bx'={3\uG=b&T< pCg:A%xi0zL@Uq}jM} NhFHP: ]qC ZB:)Q)[IIC&@ggXV\(QM@2;Ťe:e89`:W^-9LC9較8;4TY{Ⴔ50=s_ *lR*g1eqPw,ym e 0Q u,h3nH"ڜ༡UȘq7 Q{>U db$G&ᄠ0Ⱦ B,T $6K)1z0(,xeA LF=0oZPٳ$d%$rXb(w9#HJ"IFi $2y?Z~(D:r#BO(3Sg@KZd&.'8H jp0019| +  w1z贖,ʪ !A[õ*B n8Q#,҉R RS~c<Xϳ_ *gp51pjCd~,A71uʱB8QJ]%lnBf a4gQ=pnBJX;oYD$/LRdA27Qh , ӥd0,pekP!m r u?iB;@'R-}հg`TjmI9shcxĶRNLvGwqY51nC'8̡Tq‹8{ OUHO񷃚!/f@bh Q'`02f?&&Ȳ?dM IYO^#FBJl>RB%%\e<' r%'~ ǘA1g>}J|>TZa!Bb:z_MR=?Zˌw_/o>Ӄ!1N`zC@{0G=,$6o.)>!.Bw ( Z[rU ow]*/9, ^ 7Xow񨦥v|#+$ԘKS[+<լm-:U)aܴ|?$hX⥏ӥT9U]F:VY6su$ߘv9yvLI@T)8_dxs!l%8v&Tؗ:|h3J 1et"#7ݦ(%#O4RiUd~ܩɎ. &ԮJJv ^Ki#T8ZIꪰ죺>P7~|stRV(UfՁI'dx0/FvsSx58ju<@/x'>Q/3l g|Btaz Um-?Nm!XI+C ,YSMY6.>hKfH;~l2<>, AUk*@34 DZBQ%m _DrwܿPȐwxPmy;̡#vRzRl5]#LiV)醃r!J֓s#| &5ִ/pٜ֟|fEns1RM,O CY95) ,`o''s SXaU O;*/nc?L'o K\0b-WIW Hxl::=N*XHvjJp)x=2A'/'X4vb7>U\~OxmbO&0$ҒrD>e%կ/NXh95 sØմ03'SL/\Fk)C0p֏lur`C|9-C'x-SӺLs,ƺ,t8.Ss -٤QsqXe&EKk/ 3%8X7˅=' IёѓB0z5$>ҸK4q+RAEcsX݀k)I3.'DUP؊ /OVy;ʮ(mJM,ݲXbBņ]݆_SX|]f)S5+ٜP՛1>I10>( G<+~ à +f0sCMh)HZz4xnP\yj]%+é [S YB)БoϹ–68RxCQ޴b9:n]L/}w$V-ITD?\wD_GM9/Ёr>]KS8:-E&3(bPӴcX@B \Mshөs(;jPC V殽Lc׌q ԕ$%&ܾTxC8 ωvSM?iY?GiY!3)X:15dmڟJ_OVOeiӰ4%LUR,هޑ~a'TfAgS**ʵb͛si?>Y endstream endobj 163 0 obj << /Length 4986 /Filter /FlateDecode >> stream x[ݓ6r_1u/VvyD*~,'՝϶6Ƀ*pwiqՐ_nt$(~8JewC3\o\"[-jdlI m.w_oyؚD`CgZ(.~_]_;ƕ{۳(nJEfϯg}~B ywF!5ψMrW-d^}w+%d@&~ݔW3&So]&I,S ë_%K0V8 b:6n.7U_e4T:(?ו[i bcm61,7O3Dǹ~OY_9ʨͯ@VߵDj5EHG2b1!x7uyCwml>< ؖCݵ,@5@<6"ݘ,]DjUStz+vQ%N#RM]%CEQUw6վj78()&t4}IXRTFGiba0x{T+nC{wE+:cp=7ERjt)zuSqm9!#M\IABE!/oW%Ia*x[u]dBDa=.IPNԤx ]M4MŬEcecYq5P83HͿv 2Pr~Ob T49$Wg@{9Rv2KvGw]yDu 2࿯F{a].# [x'9S,7IGC"c}W(+ҀA0`z̀Ũ#pĺ#Ɲ(XPjL 4>6͎yXC4~8>bke:#~`#R΢:4FGSAn;^lP&nK_}h6@3hVEqh`ԇ"c7XP4dL8Oa{en"Gݠ3m mܹI̷mضKj&XhOQ:d`"5Yy%=ΥO%N)UEoU[vbWgkÀoWjmmbruFBI݇3k&:ՉPyV>QZ`Z; hA MSRg4o>LAB0| $5GA,\OC$ lcͅ; q{ΨBt<=0 6R{Ȟ;i&ΥV CnA>= ;A)y91i/{u\HJx7P=m됁R>n0pUY&dUkloh4$Ě#U,K6JSlA;f5VZ! 8.WQ^ٲXH5bH*,!+ U6ՃյΕ?grtl,*`E fZK #;M'{tl!Vm \%S55DII&P&{l:g6ISSI 2˞K>J sMXATD2;[1#E,zC $ F؀Ysif6duB4b[Y{!#>M4B*8Wdj"0JZ*w!K[{?a8X 3+!o"17c`h2&,Zn]Gzv$o֔xU tmٳzź+V:FԎ/|/*䓲| M5Yfr/ YI*&sp`9zKw_;uf@qn *]zqk}ij nX#="ֿAO_vڃQ+4q!w~x|=>bl_|ܓ T=VS/k3 Tyz UwSo *@⶚ɹ7:b&8A NKg j,uBK2(L SxJBbOJ&s>l=Ha:ݰӑ!4w(A1ruOґ'į]*qJ>biQxpR}uNe}hhdѷf N`S~E}#) p[7aⴌh?֊ 4 #?CQ5U |r[؜`s2"bLק#ߋi1,:G {XQ012Z]сYLb5 mwWShncԻEHNQDiO@ P dMc/yyG#. iqC멫?ݱg6"oJh/xͥSoR9 j^$x"_KCS֯vׁc{z{.o 86SɠP7A hjݓ3gΔk00Oc@t~k,*%D2\WBR`lT& AAr OMGeD­h!+,,oods!8%Qv9u1 { !ɻvCEgyx &׭vլ6o{' 'yvv-?;i̞ y xPT xzdaw][ـcMA6BD8y٧ 8kt6G =d;4˜X djOk2A x6>&m ,RpdzY&HJB-hNb̢FHH^0Zƹ8`Mu-}.8ۿ\L2uf4#.T S5 1~)d6\Р5y>'1`X6d,0@=XT~N D:@sH \[k)Dr:o'6u5;u\Г wtTm$}O,f +})&\&Wv?kfMY\isf'/ZOL :na6Ua&c =oXcoE8..!=b=*3p!S(Oo_,Ayp]Szh)+AeO.)g`s~Ҷ3*xbS yl!w*N La:Mz"I/ϘTt3ppU)0V6:Wd& n^9O <ώ&ǒwh;*)|@|zVGdhhqvSrc&]^?fsʙKK4iLlSOġ)Ws~9o|FFy#x^1d'S#@70 PPJzA"aGEOzM՟ǂ/#kH1KT!u_}w<( u gS?K3VeO\ v5g"=G_jR802,WE7 endstream endobj 5 0 obj << /Type /ObjStm /N 100 /First 802 /Length 2470 /Filter /FlateDecode >> stream xZ[o~ׯM ~Y 8vnfiDI)R wHJvkɋ`<̙\( LK4IŤL_L:dKdZk ^Le:]`Fad83Acؤc5Q0#S,g1351yy7yM-`,*ŀ*o(XU<(8uFXTU.Ej'wX:s,F:nPlxɩ ?_Y}H Ñb@d@ (kPʼ{2+3{ +<:@4R+0ߖij\PlG@ J|T'q(~ʸY~r6yێ vH=oRЏ]K=P幂G0YޖY=U֚(u_~nF63K+wTfodrQW fdX!m}ߘtwI'$uCP]@9t3C ]?3t@t@t@tM=;г='t!,hwH(=G+A]:w99=9HNrr[òm͏Ir>>E?nuլa>| [  `TBզh1 ?bLD9/#ז.#zMeU) rr|AM0bO,giӈAQi XhqXőX; :KoVi)jD<$H4bu<&"dt, tF?PArO0v_-.cV#v`Fw%cπ1( w`F#?q8"X.rލܦQc@ٶ U`?7DC~!iF t (6r4gl=sxگswH-KO*ix?2= !FA`Ab< TJc{j endstream endobj 189 0 obj << /Length 3891 /Filter /FlateDecode >> stream x[]s6}IXiҦMM&wt:DtE%߃/(i>$ ܋ ܋s$&dz.Ͼ'ӉTJՄHj"$""\.'ߟz HhA%)A+F,ӗKΔǼ_0ϘN?5/[=\ͽIqIՄ*-uه3ݗxBI5Yg~'KbGLɽ,' #R'o^CJMK敊(a jrYŽL$vSߓi}e6DLs2]g.MV5Ŷ+})9?jQ빈sa,pi*#.h[םF JFրfUX,,:1mi^ RkdW0 %" =)CJ |[-\) I0םriN#Ӊ"[Uv7f[BQ۞bp26_W#@Q +)ն(u)+kY4 |fj9GɁWrjy'z+aiX}?! ySjZE$oټ9RѡbGlO\(ukѸusnFiiR7H&_߮je>Ln#cs[gG7A{Qm]̏:%b" )5}6 oo4[B1?s2,-lvA IrN%q/V\?%TsO>o5p qG\E,vS,L)A!X+7œb9NBcpHD$~ē1-iCItm(J8:dIhmw{2:u%O^_={49bH =DM@Ӏ!1^} cӛ]ykgb]lla5}3\.P4Y(6DFkF%IZIw=Kz|&PKfEmr7(2M?bM \k7z##z6vZ-A@j &0L X`up, E5v7X;aj7efס@#=~cX*:["ͤi8SoE!zI* 'z&#GLTtNkXtid1d wӥ"D:^_E( 9`o艤$C@Lxkå=LcP23Fb޸8Ko nkR:3!#'!]-:9E=YufΈ8R7>uN<~Zb:W ]e@59{l7e1ڼjD(Ļ$濁N!jPE3A}W )!9:#-QA+=CNWc _/69)rK*[2k12= Ȥ}>5`ρD}3xpR1gys[b\\:4)OHHsm~Z&yhIGc?iR3G%+ײuUTJ Lz^P!XLaa0f'Mh]!<ҠMQm|]Ϟ-WVYh*J}:NSg) ߒ"~%Ta2bM׿8(L'@ mX0Ejr>CawM/kw~=5( !#~>Lav2hs50>6f]unr5c9zQgq"X\;M;CgHgr\XR,\3=c Hyi?DHh YsN2CsPߥ6iܕj綺>!qlAh k*ēuD!i"?td0)IycqgIi_N!":njW_B̢b x 7Dׁ kŮ dMcA(7bs訓Pnf`]ПO6x.1( o'cEV "qmoxۆg51:Su*F/r|L+9I}*D?|Ia$+C4!E ɤ'>;nt9Yl" $53}Gl4O%1Rg؆#r7d'qΠ9įdߌ $LWX"r &D笃eMPI̽QXb"c5_'իckNp N#A,vtCvڕQҸjvWvgS14kܑ<q1}fYobvqceݿh Zoޙ} c~^enpkGܦybDxӳO45^OY08I߾}Kq&$ endstream endobj 201 0 obj << /Length 3192 /Filter /FlateDecode >> stream xr]_7{vrqRylվؙHB$b\h~}ހ]$iҙ<g=*яg^}i,ituqDE'$ZFzi& LD=糔oWԿ{|S;wofAޥ7': jًOgŀ1E8Z«F,ѭXG Og2],C(ee\(p_Ev˚D߷$4q+AQrgO13Kgn4V@@ )W!CȈ ɌX~(WmMpL8,cۖW*ߖݺ6,ﺺh:lω|.vZcAfQABX_|.ʶ.̶yj VSe dU ֊i/kb_3/ʝ6q;3t.3̻<6՝ywXqa!Kf}"?+Cɛ%`|FDØd.XxW|6r/v;( +RL)J}@ZP/vrAmgjn07N IH X%FȞ$ 0 A 8pcRh(xB9R#$7 Sv < /Dėybk\aպ rsFCU~,rݶK\ήX7ݢ[kkMʼ&.JWQU8"1PC1btH.]L+ՅtLRTD[oϢzU *p>0%".;O,ȭbq2cĪwV\VX%-]7 6u)C6]$xp9bYqiO[443I$ &XC[BEE JѢbаeJ$\Lg6Yb ܕV:wHWl7l5Po503m,ʼD3#j tc90!Qqb5B?X^fC; ,/m\mEnp΋ZڭmR6]=N9=H0x=Mlb L=7A9MClƇ9 Ic˔fCH&(Mu02jUS\y.Gz7ACL #RaMP ͒YZI(s72OfT`v3%=(6%fXC9BQ)>(Sl0H`T~J':(lJ @: I"?i6 0 6f̣`."B40=KTIΏ:5aZ(B^yg$΄bfy h|z d#\,\%xxyIKaU0:F) :F0Fr F:}PF2ʑecB(M"#Q<ɧO OB(~yt&3>2ޗ$Qj2boC T>qΩфwq$[^77I Ma0e2b"U.ʢusy`C!GIgTY| < sM<F&k?̨ec=%INR}-y9Q?aɓIU钇?,yJ-ycKGa:{Ȓh}0(_X<05;#yj=-老h N3mDN4Gjϸoׅ==rM(Л ne^VP{\̠63ע*\ GExYBWT]<ߵվmJwkw`U4;360G9J fZ9Ec~^j9ùja_&pL/ؤ h1 /*8DD#SsܸoJ{~S,vkonm@ۻ{H 7b8'vMk}DaGxw 喿zp" >_i˦spkC[uoN[{늍-}6 cnU4]4r?폺aaݖKޗe(4\gQs[pK4vwsn@ނq ^O`AYvPe24ر6:ۦciV첥ꝩƵqT5³Д$0qHׄMg _gjؠ,\.C0@:-j2Ƈ+fݾ&vWMW'T2AJ6Bxw5 o}ws w3׽&e3IV8pS-UQz,Tp0(wS.{mL,F}=7Y8rQ5 -y*S4B *1Xf)Y tqg<$wCSߺ ]. *M(jNPPUaHߒVݺ]`w`ІSًϦH(Jx_ 98Q \Ԃ[%D *0V^Oz학iXk C7K:xǡ G7TmgNQ?f_m fuojx| 7ڕ~[?356 H|g.3w$a:=CMGΌ3o7t\^muN6of_ bQ(÷78D _{ƍ 62^\br endstream endobj 180 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/DA.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 204 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 205 0 R/F3 206 0 R>> /ExtGState << /GS1 207 0 R /GS257 208 0 R /GS258 209 0 R /GS259 210 0 R /GS260 211 0 R /GS261 212 0 R /GS262 213 0 R /GS263 214 0 R /GS264 215 0 R /GS265 216 0 R /GS266 217 0 R /GS267 218 0 R /GS268 219 0 R /GS269 220 0 R /GS270 221 0 R /GS271 222 0 R /GS272 223 0 R /GS273 224 0 R /GS274 225 0 R /GS275 226 0 R >>/ColorSpace << /sRGB 227 0 R >>>> /Length 1269 /Filter /FlateDecode >> stream xYKo9 ϯ19T)`@EE_hP'h%GҌƵeS8&菢5wBczF||TJ㠄NY, oFFZ+2}x r֯tխAW_NQK€։NxåJ\|}z]\zb{7NB6 {f'2?m}:h, A@(Ÿ\)UWS2Dd&hQhE0uNz{ix n(6Oc $ ?rwqn՛)w=.Dix3ū;7ᭊjEoDE ]u>7Q~ȇ,F+ 8tF3 Ѐf|0[n\p 8|csH2&2iol$7R^8=>-acF~;am]禎q˨fu+}ܬO>~ ެO7Xzq/-E|EO+ůaNiW,V;c`k4a+X v0x2UL$3v|F:]a_lMpP* ceO=Ul^_Y.$VzJ蓸ۅYJ{Y_+}_n)|Z0rI)J&0.GJ ncZ &9OnCi~99|~!N`,ȗXؚ ^9gl@q AHy&ORQ`8[G g0FS `Ψc!sr!Fs4H{e{8.w#]B3[ʼKe0}VFcF>+F04zπ>]4QѬ;p?=MK=5s`\krR@O_.(XurK-) 0hyOCrk_hi;= ),#x 1 2:i}ӣ<{o(W`[r p:xۃR+1觡c}3 +<#K$9cNp.p^; oktX18̾{4k}z6އM+~6oz}شwaso?}3 ƪQ# endstream endobj 229 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 181 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/WA.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 230 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 231 0 R/F3 232 0 R>> /ExtGState << /GS1 233 0 R /GS257 234 0 R /GS258 235 0 R /GS259 236 0 R /GS260 237 0 R /GS261 238 0 R /GS262 239 0 R /GS263 240 0 R /GS264 241 0 R /GS265 242 0 R /GS266 243 0 R /GS267 244 0 R /GS268 245 0 R /GS269 246 0 R /GS270 247 0 R /GS271 248 0 R /GS272 249 0 R /GS273 250 0 R /GS274 251 0 R /GS275 252 0 R >>/ColorSpace << /sRGB 253 0 R >>>> /Length 1267 /Filter /FlateDecode >> stream xYKo7>&=Zn@ CS5*]wfIr0=xZ -ķ号eR)%˧A %( (>7FFZ+2}x rO:֠+BOd=e<NlwKax˟韗G~NB6 {f'2?UJ\|=h,⟣P4sqRlVރ KWd ,F% eD!ىL$3Z+FI?‹a<I렝0ܫ7Q~ȇ,F+ 8tF3 Ѐf|0[n\p 8|csH2&2iol$7S^8#>w4i6DK#?M6AI[禎q˨fu+}ܬO>~ ެO7Xzq/~tYE|EO+ůaNiW,V;c`k4a+X v0x2UL$3v|F:]a) UV;%˞z$-ZjVgc;X)Olf}+=2.ec3Y麳~8Uk-%p( ¸j)%YjAj/6˞sқg8k> 5Q8 _`akN22xe9#+#}`^0K>}`KGurvltN69Fe 1r&ɷwF+|.p q:ܘRX*`L;539_0{yf錢d4?~{zj&,cV.%S`p)?Dc 9iH}V.|w5w}-}>@qu:%ʅȘu4πfU7+-8> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 182 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/QO.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 256 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 257 0 R/F3 258 0 R>> /ExtGState << /GS1 259 0 R /GS257 260 0 R /GS258 261 0 R /GS259 262 0 R /GS260 263 0 R /GS261 264 0 R /GS262 265 0 R /GS263 266 0 R /GS264 267 0 R /GS265 268 0 R /GS266 269 0 R /GS267 270 0 R /GS268 271 0 R /GS269 272 0 R /GS270 273 0 R /GS271 274 0 R /GS272 275 0 R /GS273 276 0 R /GS274 277 0 R /GS275 278 0 R >>/ColorSpace << /sRGB 279 0 R >>>> /Length 1263 /Filter /FlateDecode >> stream xYMo7 >D9n@[^ m ) חif4]R륹"Hu@=/ן^OU~ze7de__U7w6NESyCr֯|ō%W%hPPv^mݟ_O|{xz㷇s}|b w2R @H-{='Qg/vJ}SYCP@}4yqRn.ޣ:="_9=:JFRt"!ّLb3FmI):Esn?<7y9BOF»y+#ݱMp{5xQ`z{c/0@v>72* ry Wc+u-&x C3F 72Y{/2,a4 $b^I#OӢkK5&[RW2E|}gO«6?F-."V9y>Ra^+8YE w~F5ttl.pAWn\x񺼼<}b[`b^k'\WWW4L|Ȭ:n_uj g!M(ʦ)ШeG=vl-@`fu+=Uw>(-,.zqp^+= ;WJÝK'WqB%p:F+-*aZ !$. iCn#=z/nmVۘP;;nNz'_tL/ 56HX1/0@qlZ߭ HxL\}` {t];=LeM_3.)fʅ$7o'ANW ].pk,Nm^ _UxAʅ Ĩ-0(+6+vN4g ? _Z~m9 0~;|K $H 1 @? hݢ!y^XN/>]T@Tiu:Bܜ h},cxgZ4_LS x,*9nٕ%7ʅ 1.RYր' ..+~'^M}m$IK*:~J{k}zއ}ly}ؼwal߃OT endstream endobj 281 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 174 0 obj << /Type /ObjStm /N 100 /First 883 /Length 1564 /Filter /FlateDecode >> stream xYn6}W~( KnhћuWIn$cW[3nۉ>E3IAe AY*%trH*D++ר"8,ak\F?˹+4az;Jpq^yoIQ€d Yѐi gX9~ ( gr;"/h$L谅&[@p2he:~9)\L2 h 36eE):2_lab'Dh`BFá!z("}P!!s vg4Dd" >2l>A?4r .9˞9 {@ 8&7 F'(p7 Va >P? dQx:$Q `$EU ,(f r@f ' r¾]rABA@0tN|4vr2,ΏDVGx2'F,a'.\8 (9i0ݢki6[&lʃn͏ΪIjyO?Ϗn峮*Y4 ùv =Inc oZൈ}:;@|=&GuN*Z6.~чeMIpzTu"d ",tʧXBr|m; N(I[]Ֆ%ӭ+Ax-ʣմ~79-_/telNr}֒h`78HϻN!44}_.U=3vGD*N":mT(ɬ Xi>䤥hĚA@cNn$Ҝb&Z(iI|Ȧ:dw-ͻ֓oV{] U:He )>,o ܶzW!B/1>.4d?.WlWV(pLg+CJHQZxeQe(PZ|~?^-;St(~sQhFƱ㦟az>l& Ӳ?[;.夞(XZڹ*8!(˘yE=IUOI7mwq{H-l:>lgO'2ڰhvnA[0"CH }I>@wM Ik$O7'a$d&)\iIXR 0vdGű#nY#r<+]h} }pOx5÷bY ^>욈XfVM{Cͤ &P+0&i/[wl:ɿ#ȣ(nyj_uU=r!- .joᒝyCgTxƺą>}C3_F endstream endobj 295 0 obj << /Length 2883 /Filter /FlateDecode >> stream x]s۸ݿs=x d[wI|wI\/qd(C);n]`);鴝.bw!-=x(I,Ȓ0. d^Jػ(K[DA U< T4dz$//}_j'=Ưg,̠"`W'&ޛҹ!y \kQutvqtsd!U CQyE}tyE>Hewk/$ƕ#2Vj &LK,3GǓ$4.j`b%@874Ez|oJv]/7E`n"WBgҒQ  6 wF8f}JlW8Zy҅~.g\mis;z;eAH#1x&꫓ͲDyl7Lm]/]cXI7 M):kET\߮ovXz_lb\LFUu!̒sWOߍ\;R6yV dLD ?71E,R1Xn_IL.(HYb~1@tGI,—)abs@PR̛@kuOK$N? 4IEfLA2C: )v 4Kg=<؉Zf{'SmKΨF෇g1@4O:wZQgjIxs u=Aa-s,`{!ҩ 0&];IRC@zFbMi8i`+;JU`~jI!R± xylPz :S7' DPa,Mw܅{N0lBu`YN0(;"wv;#OJ@am'.ɡM50"C^#sv۔NNAזYy <̈́m^@Q_wa5([4F6pR극5 HeKfy;ɟTJ>2)҉Ռw Po懄d#:nư VW/(VيK6DZ2 9y5c6+lјt`A: u0@}`5j.m!'] 6 QuBrTߵA $R.z 5jK"7b[ADOX¹ !;`lDZ}^Xz Ðn-N1uyc,uNA ah2/^bByM4WF(h<6x->:?wM9!KL!Y%HGgV/2A&~M&#jj_ݥ8V<(!OY'`YN[R w0ȫ1Gb*xإs7T: *GgVJM qش&L3/u&uo&͵dK=ѹ{%6.#n< N(H #w֫H-$[$PdE Q.Wa2t}&#BކιlPgK"]_j}1 غߤچ{ifT I"(R~_JW_Don|צET$HmnaǛږRFeyWŶl~I޶Bh[DЄע; 3<|By4ci춂.Ks f endstream endobj 313 0 obj << /Length 4210 /Filter /FlateDecode >> stream xbp|9y{ Lˌ$ump!IN #pFR\ X/5,7 iγθ1,|z_#Ƥ%F",>FLVc;XrBFÕ}YL~+(k!<3x!b%J]NkN"{fv/ʪU U4{,r/~=BP$gꩋω5IJÒ+!2I4P"x.2!piq!L#d0YK<505᜵2Ʋfe٫b&tvY^4fLݪVb/ެmUè!1D(; 1v/y uSne"I_4 w9@[!7P}1X-!#6Ffj6?1130kы&Ld6[Q{6U\S@Y@΋&˦A '=v[t->lWUGTp70XE»a[/vOSV`$-z H!:j[5!P9DTpp*&{+O|2 U453N{dY( V%9D>W;uC &&؈(ճoWpݘEϝkUDڊn2.S0vPÇ`W)V#+陨8 N ,#\TSm*]4xiv kW|U)i zG&X 0`/Y+fYwPTK \6rDD#̎fW*GuU"0< F<P#`9Y֞ D@!Wxbցl@X1-$J s#^}A摃yǐLأJX8$$ (${y}1 5$tH=DXa=h_ 7|o6?_ C"<jAXCAash8CN$|Z!rȜr{4NKBJ[ǃ1P:ǵ ]_-9dq oZzFdgzf̥+eS^Oqk g-?{ 3ڄ7\x (hڻ.di*\ {hbU~lḃ'!JlH9n @j+j6u̅Ĥx^Iu"ȄNJ;6{8bƶv)c7ǹIs.cSdEԁ}!43jʼnk5 / N.G"DP\,)If|ay(  hnMi/l38 })lwͿig{4.$)S)!hQWir!]'xbEb suM@DYujbgvo%\ZR oҦk #+}MGXB4]= ʏm}tt̴sLl>۶ضGжA-EU7E1PHMKky@[R.[UAP}껴9g %B{YSxs DHU0O%Ly2wyV9nC3.e:Vq-a4S0CYF[qs$辩nsWpDS,Y=;۱.ss{,w 0UO 0eH =N&ǎD$u%J3XtrLnN&'Vs9m{&LOl6_lƱ^*װFX eLUl^UHz-~ٴQ0N3g8L 893fcGk97,8z]RL/C1:Yqp&|ڱ(J}NأhJaiі) Z?u &0{<Z_XmULqXMVF~6[\нrLHHʄ*O{A#Ω}9s+qʘ `+BbܮXS.l<%*â"°U*څ Ra<ˍ`fdLŦLf]-(ؑ=A_֯%2X*F1@ZsıDY} %0b-؀bTcClq{ >-鼪|YzVߍºTA~w#FaKx){^ N `eS b8k4E@hpW<.q݄+ߌfe5ΧA?+=(1%լ:NX1+;’^y4 B45SPJ oF[ڸƕbzln/H؇5zj06|()quH+y}BR@юb$(*Ei_SlaAwMP}qr;X.m[6Q+P qmp=,\{9+ݲ=}0aZ@ ?#% V5w.M@g Vhdɛo/e&];vHq9sCg7/x;)K a3Hb &[~Ѻ#g±-ehC?T{H1)ˬ]oht}}Q,vv3EmrM:&2nFI 䗲(Q,*?ʀHaKHl=&q96b<@#uP:/8]į-mvP Xy "`'o.vf( Dۮ Amc[b xs~d /,A ?\c Z>Й +~Z2nUum.~Bel{m\70Qw'\P;ZWG[L]tOCm> /ExtGState << /GS1 318 0 R /GS257 319 0 R /GS258 320 0 R /GS259 321 0 R /GS260 322 0 R /GS261 323 0 R /GS262 324 0 R /GS263 325 0 R /GS264 326 0 R /GS265 327 0 R /GS266 328 0 R /GS267 329 0 R /GS268 330 0 R /GS269 331 0 R /GS270 332 0 R /GS271 333 0 R /GS272 334 0 R /GS273 335 0 R /GS274 336 0 R >>/ColorSpace << /sRGB 337 0 R >>>> /Length 1280 /Filter /FlateDecode >> stream xYMo7 ϯ>X9n@ ^ MRY 4/9h&ڥڃ&"(3Fh w/w/J)Q~=vJ(EYg{/ KeE0Za@+GRwOPN86)jHF( 8ilɛ}{zxӏ? .}}zs{*6ݛp5d밲>Ȁ1iF$)8y:(67k+^hBɋru\__tt%K`19Q8-#  f"ٍZ6J>Iowý: @/t}dkFxWok^Z$JO᭱gxWn7;k7R#|%&(ZjčV*eWN؏2?Bs6]ieAGLs3$>~-*S W`ǒ]wWS5 =OګկTN}+7a뢥&VX$~+u0/xդbI`qg@ɛI KeIpg=LOꆆ7wmVǯwĖhYì`^I% %'#_%xb@2 0kKZ\ԝ. UV;J=$ZjRgc;;X詌Ol&} =2ec3Y,)I?G)|FP =OI2$na>}j05$cmpF=]$!fݩze/ {͡b Wa٘ (0H]?#qbj[ZgW h튥7pp!Ft44W10v0 yo7#NlR6;^, ʇgj4sp7 !HWyoʠftހ?=MK-w&|,#@Oھ4@Eĺ]0韲1`eAcvR {@ 慯} +0.N_sA3-{z F -/ p:xك/ 8.g;˜)4p*k 0T[7μ`׾46po }hmmz6ކM+~6ozmش7aso߁} aR endstream endobj 339 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 302 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/LL.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 340 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 341 0 R/F3 342 0 R>> /ExtGState << >>/ColorSpace << /sRGB 343 0 R >>>> /Length 3110 /Filter /FlateDecode >> stream xZMϥ _,gz,VEPH] h`\HE}N) v}8Nޛt|{|ÏNjo)_|wGJ^_>=?b=z 5sg!8ugh1}WυǗt|$}{Kqz?9|4KK>8#FXGHQL]HAcX*w 4_B8C WvW4l' )NoL7IJV;EJ3% l/{'9X(PXZXZI.3H#E@a{W,S%s˼^XHpP#r 9X\Z0s5ƨk~)OCʷJ -dJ6nɽ.o6ʹZIa,{4J D}dP/Tf%VSڅu|ciN>g8@i)S%%CWg(%v0Ҳ2%D-jAX! eV490'kVtJ EmdNc[ ºpM3X-5$mJR>f"M*9JF]jYISS :Yl=X*ʮIB-.{lɋ؝7s֖4洺%xM{$A.гr R]5Y&+;i'/bwE:%1\lKGP4^t ne.`R2MM g(*awEKG]V}׀ =c œ"7FSIu,عo0i'/bw%KZ%[(Uj5\N配vt}رXJi EΛ$AqI8T&di%7Nv9KaI/eZVhh$%i+|F#˱;o"]yZ.̭̆ʵiȹj?MӚ07,%d&,lԳq6 v"v\Wl0Kc!6F1-di҆MMű:oHn'Sbw̥Ft]'kY 鰭=5+P,^z Z6c)oul˓шv"vLkwMīv4e>CxgsMUX_F#6 EَȽgR&Cy9xD "$׊ޙyXJZ]d6 vo"$.%d.Pe3tyJ!Zvdί[ESrK;ޥiQcd,ߔv7sAw;Q>V҃HoNɭ_Q^lq4-`voHiw^>f.G9Vϐ&\pYz\x3m3XJ z}\!!sv;LklrﻦZ%$mN,x4^ť"4EK2MM҃ca.yfŦ i vN4hwYVWr RU4EA Y_Wl E輖}AG0hj&njv9$ۅux4,m$flɋ؝7s4Ɩ^<RE&-WsE6_o}]a)\l+p^!a4by3f5.|l\;ʵ?AZu╡}ƲAv,\:V7$Flcw̥hI[[ G"%%&,^zZaرCKc=Hﱞ=ɋ؝7sbچd⚢MB>\%"=,ibK,Խ4QC8Ozn'/bw̥eتri.ւ6Bmœ&"o K|c45*µ]!a4by3)x52} ,gl\h*Rdiۛwd1cu F#ɋ؝7sq`W*kVJ`.Y<)]f%R2MMrXzшv"v\Ĕ]UŖWc\eȰQ]xQJ짾x-,%$;K!a4by{.S;(EBMIgtpNtIXvUR2MM҆ݱN!a4bCx7r9 6angD.Yc ۑ)^v2eg7vbw~hOH󯎔 rdT$>={yem0o86p `U.p ` \?]7ޝ?ױi9i/鲦bOnهn!^k)nvYݞ{,HA`Jf.6Y&?7u@_e{dR1w98n_XoU'^vQ}>lVYlv])'=Ozo_䋟^__Wo?/{N$Ϟ|W|7o|y$x<7O??kf١yۗ?<=y?|aqҔ:C'$<~z/{Ί endstream endobj 345 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 362 0 obj << /Length 4233 /Filter /FlateDecode >> stream x;r6 UZ!.\zt{w:)J,&);= ݽԾ7sQ_$wWo﮾%jabZmǙ2 1f1h`,a80S`;KţEwo;Rd WF- M?pֻ [yDbǚ t$ H9bbsI,^<ځEʒ ?)S5U8nyoEȔ3fw{nwjF9^TT5ݖE#'K&.քšX0 3`D8mׄJ-t }XuSbC E8=>o}Qw>*O;,T_ۘ3?MAf/S-BOnZ]q|+z*ڮ5QAͪ˺ ,>MOizȀV,9d1K[B":Z%Il`>H+LÝ'_uW?d^VvlFXr4[Z<$4G@\o/ijMQݬ[ c] 'bKi@,h6* mq@ВH`]bzWVN"|@6Fb-Vgk­̒UAIyרY>$n: `ю)IW`xup F]H2ûnWЫw9>Mق2N]xeUXěsS!O#^J8qWwt[:Trȭ{j'O(ˀgOɨ $*;L± PTO-ʗ)M/n= ]>';}]YC$~^[g8@?W`4]=XEă`T_?lB}@u/# ;rȏ訨9JiWcwr/NӪ->`Q+REc贪.fE:ã֩ )pƒDXJ֍m,9׺Skuc҄C &bfs3A;|wCer:‰P}Umՙ J@pS/źs[o. V D dMn`WOנMhgx'/Ϗm+ JJ-K􊎬[CVr'Zgӌ΄!)3?svp0Saa z( GlP T^,/յ -vs'lgɐՄߨX7ҙ: sPz'IT} ه5sCX#ܾX9 eq$S , ^WB [&e7szW m e$,j.;#LeP]ph 2*|6(F7BR9FC3寓%JC&ϔRL%(qӾ RpvVR 6!M\Pϸ3ca~7/d )3:!- <|={l;1gs@>6!64FUSڈ!8Y5ѣ\> UOyfe1^bW$(t@SW@4xl2ƛsq.Dxg|%?Q 0m`TcÐ-e]|^Z֐cЭ͙+5'ӹA< M'%i}w0JAOGdR7@j4F-Qd:%C\?z冮wM[(o`t3 2Sr߰ :է8;~5Lb@X4a$l='M9Xp~yu) E>/6Z@E&' ϝ.ԱZy A`?,bFֻ*|%lgɈ ]J5/>?Xl D,o,dB-۝$.(:4Rw#^,5Vӡ%BywCaOַ}ˑ%u!C# ƝxJ۰oJ5c}Wv^xŹ&]E,tmm d3ܶOb+v.Ղy%Y;[ez[%Ykea50m',=y |.0%fB\`pq- 7Ut"v5*Tܾ%_a}m Vˆ ►tJ1`0oQG,&n;A*/^4L}:g׾vگ|˲Il]>()U3rx]Xfƶ[z|sk'AF2SIAr LpqTVil~lFTmuӕk.2{xG?>NB{:,s9q N;9N0C{lڗeլm=)" |S,\.嫲*>OM&A(&VH5>> ӣh/Y=;iPQ4 n&PkKЀm{1>Wip-5?#ԑJk<қM2HAv~F5g GѩZB'ao! Cf!{'\0\%x˖,u.Հ$q '& Ǫ"% ?dj-] M~G!5b?̶'!&}?"^S,WșےDřp ҄?Ճp6\20\. K.;. \A?Ĉ`XX@H@P3iaR{~egH芍C(̆PO}>Db22b]:Jx6IQ"Y0m|3H2]"Ǣq8Hw"uz᫗A`=XVUφ dOrM߃%Is^d9\1A`3yNddž`_L?)Z&`/JkSt9kOfEM厂źpO> /ExtGState << /GS1 368 0 R /GS257 369 0 R /GS258 370 0 R /GS259 371 0 R /GS260 372 0 R /GS261 373 0 R /GS262 374 0 R /GS263 375 0 R /GS264 376 0 R /GS265 377 0 R /GS266 378 0 R /GS267 379 0 R /GS268 380 0 R /GS269 381 0 R /GS270 382 0 R /GS271 383 0 R /GS272 384 0 R /GS273 385 0 R /GS274 386 0 R >>/ColorSpace << /sRGB 387 0 R >>>> /Length 1421 /Filter /FlateDecode >> stream xYMo7WR: AEb98>\ԍeDڿڕ`Ѽ}83@| uR)%L Z)B;ŗR<>FZ#"Q zi?ECE `Wٕ&.GFC~km4AhXx7'$̅Qۃ|Y=\//\ L_O~k*ܭ}Yo")Dh1'D\O+Dzҏ\ j<'?H߳h㵖ؓJ+KАAh7mf ۝9rJj-qtcq/>Ό;#$h|?xtcuO{'7HRCl~c'׎;M5nw'k"?:I{RbN7t?8jGw?ꏰ,{y5޵ǩaܿk/S{T^O_o*}cca@_^u/-U3iiuqp7|C{Y:ѱ5H68 fc/nhac/n7.*z~eۃʲoP٫S 8i8y7{5+[{ ᾆR1po7P@MpHYm z.2K_u \y[Y3eeiMoN=Jdcގ,+;FzzeY٩_YVG@Z(u?K=աn#j4goN`&hL)֪ʹjcsȴ14zةzJRąܜ* rxقbx'H+N 9) C) X$"g-玓Rg(lNRaʛÐK M.NJR66hHGmXaHP7`L*$%D7|R*6!%@ZSo u,0 Bo)TVs%#pEB͵%gu:o@;( yuZ:orMggDh+PtoWJ|u-`]RȓgE X,Kϱ:$iqg=dJ5R\tҔKgz ,T+oaFJӲ{MgvMw[r4m( 0&-p5%zt>]}QF: P[|Tb6 M"dI&W:5#H%( a9h:z@9:َpf#R|ʊO endstream endobj 389 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 409 0 obj << /Length 2513 /Filter /FlateDecode >> stream xڽYs8_܃3k$sykv^NG[>4{s([r{@Av藋MB:(LXb|=?t#7D B R ?_90=5ї‹|fفW0"z6G+|:zyqE8 (ؿt8q'`#\/X:B #10j$`]+EzADaF2=^B(ѕ']9]sdݦ^jzzyd_l1f-/f`$oYf tr#f[-ܓ'}*"Ƴ4t@ky!4},Pg֫3}HnHМD P<D FYX仒lK+.0G2QNjݶmQg_8= T-hupJ_p4RP/&$+viQR[ַ)@ GQ,ᢣ]GZ y`z 5-t'6/wE?q!Cb&Ñ>(Ј&T C $貳Z7D 92%>;B~pݕ`9WN@0fQ˴c5ۚ_zW~'aq/షa,*BO]ˡ`ա1Bv[6gRU9^EA@4$u0.bȶmŃk޷D.8/>HBV\5/cYv0: !LӤϿkoxg?ygb{[L˿#)gƷsìati^<0yU2 O(Iv +24gjdd>eǯUZo A%OV<&5aZ 1UW@ _*{ aB njΈ . 4֨8z`vhԻnkTӵy1k07E`ESfaDKe%T#,oR#+wJ,B8xSp0\DQO#6wς Sl#c/`YZ69e-e;jU5z]][n,X.+vD7trc|+.@ei)$@#ōEYx| e3ۚVC%t 5$+7鰌 <:Bԋm0w<wJ5^?+#Ҝy怵r!셞X),Ys # YHpw|{w}@?%Tua\-fS5 r( blo-8H endstream endobj 283 0 obj << /Type /ObjStm /N 100 /First 886 /Length 2117 /Filter /FlateDecode >> stream xZMs7WhAh|TRj$o%*FX"hzfHIj#!xh4R(Yyl!) d ڤp@&)&#9{Mw69AQ`G Mp@#"j62E>؞# [TY @,2u)PrH,$G+!9 , 1#;'3A@@ %qj!Kw@1Qɹ缑೗Ft!B|AO!̪6Gm" $Tzf3<$e;Ѯq K ǑW> xca2qDx %9 .Dd C&+R 2"Z $q℞t{RV T0L0AŰ<2r й(aV1+Ò1"1$CrCr8,$K ӉXG/ ;@LR1ʢ@1 T5 fh&0UJ>~8Rg:QY[SLVߌF8&_)vj:V-~{Zu+LƵWjچ(aZ;/ۥ+-ebs`RwWĨWd~NU07x_}|/וLA31K^qR&7~5kN/`X|Vg28gF<1Z9S6?'x֜wIλ6. ]tޮUvA7uSpWLմAf΋;(L 8MQ嘂ik,4=U 0V_^XO1b;hrЌ3$}3h!؍(篢J_O[F|1rwpjyFr®4g^G"dZS90Gre68,Ec99q8YMpc78qhJ_V[;'Z tP%-G(fņxi`0:/yx+͈Ibś=-AD6/ϛ'3kٟK]$a֣h3]~% lSХKSUt8JDGWG[=dcNkjNiyq؟w7MkpӯRXn|[U,Ҧ+~-bYj^Ӹ? ǗMt-ZzHU߽.9P_*;77076q9mm 6M|آD x| [-Cl%IxipVm`~V=_ԙfk C-~ƳmÇ G9g`p|3۴飱d)W^Ȧi6TkȠ.CB~5]Cn@8k@H H݈f߈"!8^Amve зrVchLf')pebrw>},yŃ)o!IVx"X6d@HVy^BiD.غ>2Ylw\>X]-G,"a#jk2]܌En\H0qa r0 6]J]1 w;F#᎑pHጄ=e$m N1#<#IeF]Nj, !Ay\[ 3 >֒ê6FRpC4E5@Okțް<ϡ9sAf'9Y|\3`8{*NǺ}_'ﮧz2,x|O۠ۙ9fp =zn)Ihma -0D䭖G`/;l"N9w=.B AǗ=e 8R{eO: NA@ ;&"ÉJێe,V\%:r⬾l"5gݧ8cXo0Yo9j)݋kkkr_www0{if?rp endstream endobj 393 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/GSA.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 412 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 413 0 R/F3 414 0 R>> /ExtGState << /GS1 415 0 R /GS257 416 0 R /GS258 417 0 R /GS259 418 0 R /GS260 419 0 R /GS261 420 0 R /GS262 421 0 R /GS263 422 0 R /GS264 423 0 R /GS265 424 0 R /GS266 425 0 R /GS267 426 0 R /GS268 427 0 R /GS269 428 0 R /GS270 429 0 R /GS271 430 0 R /GS272 431 0 R /GS273 432 0 R /GS274 433 0 R /GS275 434 0 R >>/ColorSpace << /sRGB 435 0 R >>>> /Length 1314 /Filter /FlateDecode >> stream xXMo7 >D9zڀH@AM5⤱%GҎ.2}ODQ^h(o^~ۊ/-R|QB ,{$>oފMRYVXme+h-3 W]}zE?i iN>?R7?yn!<t_/"9<.vhR{?do*FsBJ>{*^pARG&/E&1ie D; YbXI"Mr[kEk䋏}Q |: w #c e$;h']4~d=Pλ&;p 9 VUp;8?, Mnۓzy-VuCih2N lX/3#|=kE;[H{ѵ%y0o0tx1l-̇>ڵӷut9b:e6y}-49a{zhQI.Tv@̘}>ؠ07c5 SZ;|b90;6[V{sVvT= +;(.4\ޞ&c3yXreg$őHڸ Z0q5S$oGRWfp9gE[.AZsXκEO2kY1UdO'^C4~:-^9ACF nq^Ch| ր gS#ԉŚd G&څp]ÃĢqaa %R êjE0#qadA``8E-@=h 1H:+tp@9VR9h ,Rk"υYA$0u0 rŰ"+AB|A`xPt0Ŭz`5u4Vo7v endstream endobj 438 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 460 0 obj << /Length 3179 /Filter /FlateDecode >> stream xڽZYs~ׯ`qX 0\у^++:~].A!i7=8(RZ'Uyk[9buKEM#?Znw(]$^8\6?&McOh #,wpVf}k~aֿ3c}mXdPZ? zi~E ?b|o'@cؕoA^~;Ӽx _A.?y ^xn&{[s ¸\\}{P"LS" Xc #a‹do-&C{J-C~Q,*8` _$D "'#/۾QPF9gcApf_U|YW+Jm"&E]|l/(P z"9L+j`OtMVJZe]S<0H!hŵqQXVƎ:Ey[U/iisoy*{y\ m됇fV[ K)aQھnbM>4MZ\f$t<縑00܌n{f.k ~rCu#|69Ou|tL=]R8xhqQɭuLgēD!ϩë>X 9jN}8&pX+ۉHJDC *Q^g\$Pi?tz  U)iٲGk=ZQU9V9,M`;RuzI,(vC%&0o )r0ݫD*}#hp1&RwgK;$zvKtd#a*#rZK/'ziy[#Snt6g}GW^ Ɛ="? R\])vdٗu3ິA$OLls㶦њyGgQg44ųPچp8WƤ3(T%h `Y1\0Aj@4;Wv$ `0iSeD=G#? k/h fO{ u=GL #]!A uvz5ɨ.$ؐ~PdtOE~8-[{ٙ#p$;aUӬے6-\9<1]dU5jCr$c7&NU<ự-Xv*mE$Q#iqV` FxG@BwzRn en&TWd9yHppi;${Na]zY"FӭBr'mɯFxŕ Zqswm=j[}j|ᔬDsd"AڢnӏT}+6'ިrG?Jғ~]> /ExtGState << /GS1 467 0 R /GS257 468 0 R /GS258 469 0 R /GS259 470 0 R /GS260 471 0 R /GS261 472 0 R /GS262 473 0 R /GS263 474 0 R /GS264 475 0 R /GS265 476 0 R /GS266 477 0 R /GS267 478 0 R /GS268 479 0 R /GS269 480 0 R /GS270 481 0 R /GS271 482 0 R /GS272 483 0 R /GS273 484 0 R /GS274 485 0 R /GS275 486 0 R /GS276 487 0 R /GS277 488 0 R /GS278 489 0 R /GS279 490 0 R >>/ColorSpace << /sRGB 491 0 R >>>> /Length 1449 /Filter /FlateDecode >> stream xMo7<@K=n@&a˩ n.%eX#͢!g8pHBcqӹ}]hB %8ƫ_|?"i HOGUYPVB^^Aj]?ćlyy~8R$7\>^F<6~Xߎn7ۿ7OOaʼfq GSNД]Cf^h?)/Q~Z k/QNITd+NީQk/8:bή:>쪫8Uu+Np'wʤUtꨵ|Oꪙ* jmvT2[p"SEIQ ϟj&&8@tʂ%:egfs3TrKW,*NeTMS8yOW|\񙙷fB@ay|WwR8%G()t^,y,/H;@w -.񿇅oߟѦw^o!9G|c#lBM21MP ;>\3F1=̀Q5z3yBǞ3hzb@1;Z>Yktcl~ a7-RX,oͣf j2ag v󰳧2͞؈-L20+ΎִʰN#Dq)hqy=Z0pĞS&í#~/(XM5CZNIػv n9l y۩6M#!`.R,%pڦKvx4=yl-QEx집QCywc>"~wq3_ob_y`U>). ;럡}yЮj xާpW}2 t3~sЯ h; ԼךQ-|3Q0uhޅ6PN|]@#}h~FƟ]1f> > stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 404 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/Unif.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 494 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 495 0 R/F3 496 0 R>> /ExtGState << /GS1 497 0 R /GS257 498 0 R /GS258 499 0 R /GS259 500 0 R /GS260 501 0 R /GS261 502 0 R /GS262 503 0 R /GS263 504 0 R /GS264 505 0 R /GS265 506 0 R /GS266 507 0 R /GS267 508 0 R /GS268 509 0 R /GS269 510 0 R /GS270 511 0 R /GS271 512 0 R /GS272 513 0 R /GS273 514 0 R /GS274 515 0 R /GS275 516 0 R /GS276 517 0 R /GS277 518 0 R /GS278 519 0 R /GS279 520 0 R /GS280 521 0 R /GS281 522 0 R >>/ColorSpace << /sRGB 523 0 R >>>> /Length 1417 /Filter /FlateDecode >> stream xKO$7+|)1~Ȱٕe38 2EʯOmwۣzʁ>mIľu>\K'`V(3DÌ4WL[{ _V1Z~.>jɱ1}IJTǴ6;vs=3%w￟o__+(_ϙ[~ڌ[hُMj鸗_S˗jVUe tPZ ǢFspL@oSORtilϾKK bMRH=iq:P Jkzi ri'i߇$μCEDz'kN/ҽ Ž}ZJ\ʐgq2Is8f qpT[cޖ3C&t*,TLCZ1qcⰱ'L[شI8"G ;uqL2c9pL\x8"{dU3W&.8l o|ec&⨸屣+n98)c cg#ϸcpLd2(.8^fѭpDc+1q6ᨸpD&m'FI>N2󈸌#9qL`N;*;pن*|Zq~ [Ows w?;ɮ穓npw3 3[c 6qReYLT,އMXnO">0qx,q ɕsR.r;~K4G_l`o~yy/$Ė4k>UaZ4 JtXdL`]Yc4`?d6^a7.lQ'Ax\4Gt\)Ef5s<xF~WQ5S{XasRNy'H^sm뼞J)y?P}žB&W:`ÁR:fu+1Cϥm,jn+0m7p:%ijE ,e۴kKG{wz/)8 Zi;WTt<ٷ& ~ɋU>/yK^җW~On$pa+5ɝW7/yW7x!G'MHW8O}~ɓfO_?ZӗB}jl)dKb/ۯxo͟ܩsAῇXoÚobKidOElxGsM5&:ٸ endstream endobj 436 0 obj << /Type /ObjStm /N 100 /First 872 /Length 1545 /Filter /FlateDecode >> stream xXnG}GU_" X)$&Yfوsw}xnߪO )rڒ6#dRD@K$,DxR䒮1ơmP's<˼@>2H$ (D̷"c#[G eJ@'p2H(=Lx @ګTY(e5AJQ┆^*UR%PP G (!"]T@c6U2;B3Y롁Ee蓹q,6+$U`PZ.XVvȁa lDrdr؆M>QeEhDk y%WҒ b(ʊK YIp21l=LTr3=ql1#Erpl!PU˨h!QXYY>l>%VZ2e16eY* gA`E?9 $VfzAx|, TANe9lb[5v2vC0[w3V?**~jc/qh19{M|5F -j.d֮V;ک˿pǪ9^sS:u<1S5&Vdyjn:tu| H{-OxA魃 ZsYw f K@0 fɽY ('cצb*l-<BN'38h=:ikp׮AMhi܀_-O?SK a1k' kq?ѹQ5/H'Ƙ: E2/8F;Anvw9rޮm=uT/dH_a׶q$,h_fڍmk˶W .k)k[pjYz;vߵwGN$<ذpdm$жNsΡ7N%jΙx4%LLx$2ᖈZ Sy<;H_k/Mp!a+%knew)gkU ֋k/Ykh [ʏ5~݅KA.tlʲ!A2neR?̇dڒ]O9cɬ/UB'EÎmy Fi@yb^}>| 1AoaO[ ]%c\rX-$p]OY7y0|˜6H碃md&F#g?[wץ7ߔaSMVO2u6krN?9c?HQ%&N斡)7Jw} }D`CC,@S * -Ya_MHKA'^1%^?4w~/]YJ'swҙc ߗ)}(!◅gtp}33$_J%3B %%KfW+RUf endstream endobj 526 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 537 0 obj << /Length 3361 /Filter /FlateDecode >> stream xڭ]s6ݿB=cAdz3jN?h E*$eǽ~$Ip"X:{vuRE:ЋEN|GOi,$~%`/u weo3o;/K JKhz3y.0 Ri:{yu "p~$]db ~Z_~4gb.J_ZZLW;p]͹LM^e9,L3m{kZ-]=u˟8aArUNy'R?Q30T ̙͡V}Ma%q[;wcnC ?MlȯpG<Jf/0PxcH8F湵H|/tͫ[Y]~]]lK l^ D2Ã8$V7G (,Rcf*/wG;VOK@ HyJh28"-&@⫶nVE:6#3 g~a%.̦L',]^Y*g2|y.;)*7 zcaMd?Kgy& 39@&&#< ^@.R~t zfscMhzN2/Pq;x<1b$| #UvEƻ 3qJj1#h@Em{}4`A3_ySI -M"$4QR(4G} +(XdBSJ> e\hD,4ʟ צM1rXˎ OXܙ;8 z/ }(.b$y%M.VEYtw}H) &Q}k H$#4mk/|Bׇ&݃'hx!Ffri\%{f]QgVH? 0T{Rx r8y /K+JBUu7(T,Njz_*¿uViKnLQfU족I{!0SQ& ƽ1m} |9bהqẉu;ud<,kaSZh 8H ^T#L*T6"Y7 br (?u eJl+ BH^@[{wo/BA ~c >EPZT@qG3w(?AA7 "Z`)gᔟXBb2\zqJ3X4'_1d?JBt{XQfV!JUyvkęܥqq:|8R0lE S2W^]GU|D}9C$ puU7yyJx)T^.O +;o:€ȸZpNrt{@ r"s%́w;/u[=8R܅`Nԅ{Һ-k۰#FaTa:tT0&^܋p`y9B9d!Ry1Cgߝs}Z~~dSIJ E2S.a% 3A]tM W2*Zկ\mxLPNYdɋO#rAJ $dNI"+(A p)Y}Q@$XGhZWFӂ몼s ޶XMr4տi/|^fo'EXpT3(c{_n[.AI6ߞqK2CAi 7VЂ{ǥCUt0hDq`|!gb>Pkip7S}h*9uɽmmo0/,߭rPK%qཾխj&Q:o˓c endstream endobj 533 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/CIGS.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 540 0 R /BBox [0 0 1008 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 541 0 R/F3 542 0 R>> /ExtGState << /GS1 543 0 R /GS257 544 0 R /GS258 545 0 R /GS259 546 0 R /GS260 547 0 R /GS261 548 0 R /GS262 549 0 R /GS263 550 0 R /GS264 551 0 R /GS265 552 0 R /GS266 553 0 R /GS267 554 0 R /GS268 555 0 R /GS269 556 0 R /GS270 557 0 R /GS271 558 0 R /GS272 559 0 R /GS273 560 0 R /GS274 561 0 R /GS275 562 0 R >>/ColorSpace << /sRGB 563 0 R >>>> /Length 1624 /Filter /FlateDecode >> stream xXM7ϯ%{Xʼn R"])ā-DǴg3p`fMu*?*Ge/.ĻJ)~}ixE_7"\ʊ`"AA tC|6+T?+|IQF-v:q}/^?J'oJܼOn93须7u깮oՋ/'rV* {Q:L^]g#T/ ⯯}V2$P cVHyÊY[>s~MG(i!taf*߫?__ޏ;O*#_Ͽ濶>=?h_w-Vqk#~ J@}?ؘP_ikk/zG1 ?U0j{7M~G4zv~;ߎPaFCI1`.Ww N7 ^⿏/߽HnߝZ{ʎڀ4jkn`g.8.'OJ)Q9r?iыpe`4MӧO}ާ;B{qqq6>GO9@ YYDUeIcun:e5Y-벳f:;˲&rkLꭽ.;N2NegG3S|uK[ C2)p(^ quqP#)zexSVby77VX4UvU(+5'( DO}H2tp2rmRC >0QxX [p;|B{TȬ8j?r endstream endobj 565 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 584 0 obj << /Length 3253 /Filter /FlateDecode >> stream xr]_R%UT AWݵuy}Tg!gNӍx:!F_ ÂMoO^\| gIEY'm (M@3TW:|yvs-L,eJ8@+~<[$qʶmB-A`D8FRk.R\ubGBgjwr}Â5L}Hd: w,E2.VqՌ>>Do:* o `~4WM~W}G6k, mk4jB|dou<6ّSX|e.h2}N#89d%lZ>sU$k<>fW^L-W'eb3C,^|0$Z2?eW #!߈$:7g4(.p1c1T@H,² آ &#o= evŦtNG՘qm cƲ 7Q)_)[1p7$u5(F*MS,I0}o'& F.L;aV- 31.TUX:m M]29,!@]Aєui2on'*FNcS4\*1kَvUeAߘphh\i|U0~)jϿ{x_l.;@FY>"@%bpNþ -Y5ána8'u׀׹oͻx=d0sKgGs[0!7[2#ʎ-Tb5OYӎxb<2B@5}Gscq\c.ߌ2v8puZYJՈ1gCnZ us5Tk ڏem&` G|FJ&whb7atPOFx͟-AVg:헰g;'>;X x1̗W6Cӎ)8 1 Ȥc{nی<naHb'_ayQ|PJJݶJef~iyuTՌ >K#0a2YMėše&_*mar0!Zs(lX]zoRLKMU"N".]Νd3uYY;|P­LGK8EE.CpxP˕]mdއU>w.OM\zW(L5啄4H1 ,bRϋoE)\1 ZD }d_OKuZ㞿m$^jh\YT{OrA]7W+NzSĹoOMG0s^c b 2pEx((gAm8_.}eVO!R:ח?T,VM! endstream endobj 570 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/NP1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 586 0 R /BBox [0 0 468 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 587 0 R/F3 588 0 R>> /ExtGState << >>/ColorSpace << /sRGB 589 0 R >>>> /Length 3755 /Filter /FlateDecode >> stream xZKo7ϯ裄;|5>I6@d7+99(8IoY8Unf\Zf㿾|>BXk?ePRҒR[][?!ИϾֶ-9|u!._7H1}}ay{_Ӷ%Ƹ]154hkܱǖ Gm. ZP;H1b8)6J\X|KCDWri[DH @=[7B><|DulK\l;R11;?8a.aHr K{\JyJmE"[ZO3[3|ĽylK\bgʠ?-C_|0qspXD0,ՊeGO^EzYqp,y=j?<ր=Axz) 庣BEiHyӸQ5lˇbmsNsmKl11`M{D7}X4jjKMy8ӏyY r';gcްV]:@,;:HN8H>U1@o\:ڙƇl,k%#'8v:>޼]y /LJחJwݿwݻ4Q¤ 1̂| ={.:{%j9sNHRΈP̂Cy2E6E\51EIjyuw576WU,8`W-ڱ@^ËbbƨWVa;0jM!Q,'\ZX 1˘+ Uшupȩ{1MAGm,8-؉@^vcj1%ʂnr4lcPGu 1vJ [jG{up#+ Uቝ÷c9 h[p `8:c1 ITwߚ!k#UP揔L#0TѢG6M`^r2[8aT x$sǷ$B$ G(c` ۷x{;Jv~ JD+&`/(yX1ovH݆-t%OUO,c%!Ph~YpZH\3) q}Ebě)ت'hjg a7̂CyrLb7< I%> 10{ڠ;p_ jR3-Y-[(آ=8zOT1-)ZΛ-Kز͒+TT m&T1!L2t*蛭HAF[䤙- ,Gߓ 0E Pc*rBp\$W+U)Yբ-w$W$^b)NOeNP;F#u\`z*V$ [:m7$% *ͪN1høK{wU/hUA◼hjN-oh@Pnѫl*Yˮ*HQ Ϋ- zR YA dEjˠj d.) RzP(+Z\Pjko(K5U8\e[qaKjfW>ڦZvNt28dCJVAq,j }R-h jEo%gXįqCJV%=A-U+)4:p[ xX]fAx@PK[ȷZL`:LP+zmϠ"=kZcPKp[~ ).~E'[z-))!KjE/P* XKlP[iZKl;=C-@kɸ1\58dCJVgB j;v=4%>n|?>{r/j7p\^FHK*UL.X~ɰVh,Oggb%a!Yβ\KptKt˻/a\*@8ӷ?{\^m{go7w/7x#.78O??_-zx;~47?y쪘> endstream endobj 591 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 571 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/NP2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 592 0 R /BBox [0 0 468 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 593 0 R/F3 594 0 R>> /ExtGState << >>/ColorSpace << /sRGB 595 0 R >>>> /Length 3540 /Filter /FlateDecode >> stream xZˎ߯襄m[ۉ1^Z 35J7D5)VI:WG<>]}wOxK8Q-?wߎ:PRӑR?k._׉hL^\^嬐q+%RNpz#yv;[<~=n.13thgأ泶#p=Z?gt&1YЮg#ň΄vQY'N1*>̕{yGNtD=rg 1rOgQ*aR%(̙zdGa"2]oy:p %Be.K9¦Y-L[kaբ[Z.7&+6[[-o~">nZ: nuGaŢ[Z nPdqo[`},h%h %vq[PƓnh@д%6[V%X<˘gtϢ-&x&4fhV9ÊE7^<|Š/y v˛%Lo)x\$ðMnwsH(ŊE6&{◼gȥ{S Yp3"_N:kآ0HtN VoZ9&[-◼RRH9f-DX%e:kغޕSbsoiiR,R/y A rE΃&fA.Eʎ?衼r_U~1KDz[nW ۿ$(o1&,T>/ϷyhTb-lz,eac33 ;[bǍA\®4#2(H Nb. ut~ktdqqO `W~oȳP_\@.3)?JOX Gv¥eCWvCkNT4~zxxw||}epP` aGbTxt7}y [Fxڇx~GI <o?7|{w^* ºbRhФ!30!KNHk$g&v?lY$g==C'aDr6*]g]%sXOeg15XY,I$'2?\11s%96INHW%IJ-t`xFrF8Fr 5˿$JcINR81(꒜lQXSM\Ӣ:ZKN| EEvTY('IiX(q  sVl4?X&9j4g5lyɩ~Ub;ɉ˼YlrScw "Mr^"@+&SYȖgIXEkxdD7;[/y KHKNd_$ 0XQ(~UĊAWc+6[^rR{XS$';}INXڨE%YR*V,%',$g4&KNk^%'WcpA/5llScw {Λu PhTYȖgIXPZK@V,C[S`},A@0!Coa?AcivY]5hOWx0aR4@u]@CCnc]RCZ!>]{+jhiPdWiz? ;-q5L@+8YxQWe >~oDcLoE7]<8'ƸIK\bPJ)Fcf%WU02<:MDeÕlrjq}t;:+*9Bl8.W/Qؠa)G6G8beE=cz/"P虜.yfly9RLxcvӞyiv xa@q"+Y۸Aظ'J\Yn,̆v{+nX*O ㊫pܮ^Φħ{XLR[KDcR1 Ζw~ZQk|ilp/^Ip[Oѓ| NWֻXOTnX(zyLҷ;Mc{K^yokra}Mi_|r~uŪ,;m( YKl_{c|A9UAT˕'7XAgZ[-lX'lb}[]Mld[,W_j%q(/Wl\`~ɋ[[[>7bBT Vr%F'r%䤽ž‡| %0"ߟlu v$(WIx* -i?嚶ߟ3$VIP/ ^L* p.K%I(VVDttvz͖LW?_+IB{xy,he,+^%V¹X61,ʲUuWVV)xƅ Noſȵƫ*kLpBw NЊK V,{S,6JrNH(eZ.);VBU+eR5ڎӨ}R\ީraZ3mͨj/T+X(Zi:O1lT+~͋[WTk%PcTK%Q@FrXmPhzl4>vU%XN\jT.ѷC<Պ_TJ{ڎM74kҼ%SnyT Q-i`;nFlyU?SbŊ*j'aFŗQPigT+~!W[/^ endstream endobj 597 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 601 0 obj << /Length 459 /Filter /FlateDecode >> stream xڭTMo0 Wh"Jnkn nm]835G}%Y.C\(|d> DHZ2aHC%m$S'4iHD˽-%f|ZD;,oЋh5Sɩ)4;?G)i2 s|p9gyd Y%$EP%r>ݽM;;&2tFȏZB=xQ {(E90t< x#u)y Ws О>a{9 s>_(džAft Y(OiӄCnK}zn:ԇW¾L9z'\5,UzÆ%wI._Q3^c1x~Bqe:ۻItn~V@5x|qЭ&[~?Db6Q?T endstream endobj 575 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/PDAAA.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 603 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 604 0 R/F3 605 0 R>> /ExtGState << >>/ColorSpace << /sRGB 606 0 R >>>> /Length 1269 /Filter /FlateDecode >> stream xKO#9)|Y xC4I q3a@CZͷ=IQ]eWGZ܊oûͧ͠RJA %?f( "i@(HGʟu/gkIr 2hqA睼Ve nHFzH^#փ$r,b,:- UYVŮJd9&vB&ٛ&-Md"8edCgte?d,GY' ?Pf] [y'fS_w=XhgH'f$gyz)JQB}'E\ٞHDE[*6}9Ϩblg]ӟ[& ~%1UQEF`6_8Rb~;2Ϟjvmm l6ae 1i5-k r"ԴHO*vz\td_Q_N_3w=(X \QJϧ4Rb''$COG=qř߾>ǥǾ`Q*0*q,/˥$&1Mvq_^oW_l.ŇcTBqpZ/7Wb~18e,aQ߿߯Z|Zlys' |g7=afv?_-_-'=:| ׋z.n˛cD-^o'G'Gو =GSp`z:[K訶ut4D5tZ?O^yJ|][7Ǵ@s n3nLdnNk؄]7窧nn]7zL\X7ks3t.݂uFit6f:TǝJMqXRT\Ox}NFI(t=(8^(gP>oIux)I8,Qj]9j^$t(ّ)v'F< ']7zj&&Bc{L= W+J@3BI| hU%*M$JݡIؿMu4Rƚ+b?#9+ekIRFJ цx([[Vn'8RF9e\22ҙL_z;Ng`C`/`r|) ;x"OW֥b wop?4m$Ga&0Ws\9n)_V_l'V endstream endobj 608 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 576 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/PDAA.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 609 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 610 0 R/F3 611 0 R>> /ExtGState << >>/ColorSpace << /sRGB 612 0 R >>>> /Length 1270 /Filter /FlateDecode >> stream xIo[7WR: .I$( DdH6b(;O?y4oR߆wOϻRJA %2$ PgT0y]YAq",6=G};I5qF};]OuQ4D q9V˧hʀm >oQ=K *PEM*rU/\ޒĩ9\RZSp_o_|ܯć'j7˾}1 NȾ_ˍ?Z8;955@ங/ەkƍD'=ssot)fYᅨ[vF!Noޑ7qDG!w]Z::߯n=PSS75ϩ]BymSk犜vN]7ꮝ!mvNenlJwƁ4nvnԱspF9x9SEig3g)__+zyʄz/Reَ/m 5%35WUȗxc7%K e<|i͟ɛ) n IU$K=Vu.4g .0<0iDIIPDeHh06B\F=.2{:͞T endstream endobj 614 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 577 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/PDA.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 615 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 616 0 R/F3 617 0 R>> /ExtGState << >>/ColorSpace << /sRGB 618 0 R >>>> /Length 1243 /Filter /FlateDecode >> stream xWIO[I_ї@zy,h8DFh?_WxvQV[uQ_7;U1J>? F\4TUW+oI:`M1..s xnF%Өnttj=XK:&bdpjB` fԹ)2.[dkdufuDY h?}n(Ƣp誷 v$ ߻/Tej#h0Ȑ9o #0T "r:{]f}|LJxgab2joU3Pɵ+rȉFNO7r︳nΧNo o~%9׍Q3QR[udfe^4?/j+_`]{¯A;´\e =ĵ̊n'F)ܖ?YpNDE<̳e.1R8'۟+C]Iayԗr8Ց߫:Flb2۫5,6KVG׫RϷP;lVݿ߭6Z}\l ]ðĥYWKu1CrxyP )|pZWoZ>F:fس}WGظN4m\t~ڸ)qz/6s[ľ5?} dľ6}5Zq۷΢wľuImpӾS}kSѶ}kqo[Ci-A߅{#$p> !©^[hawaG0&{@ӧpN^4n 4 a\@gcmhP16X#hq $шжs[0r`"z60,We&̔뵁I$O|UvP˿F!FIfWNb6۽rAFʽylwqs 2(Ajv {8hd y*2%AeIcu 2~d r밃 H F d<]c;r6vI7LUIIRnm!Q]vН5iGc~zŭĹ4qTW/ endstream endobj 620 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 578 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/PDBBB.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 621 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 622 0 R/F3 623 0 R>> /ExtGState << >>/ColorSpace << /sRGB 624 0 R >>>> /Length 1250 /Filter /FlateDecode >> stream xn[7))`/̐r/I$( /Dd6b(J8’̐f-fTJsqPB ,da煸ދ/%FZ+2 oK<~ߦr:^9$'opOWt>!XiZ djКdT")#X'9iNKE:A)p6rLlLȞlM"je=f}>۳Qab{.H =e2clMComq'13^ڳq~u-V u߯KH`:] ƹ=WxȠez.I_Ӳ%!2e|7i\/3.W[GuU׉t_ng>yw݋՜4Q[㏇TK?7ï~RT~Ώ߾` 2JѠX%:e6=ijڽ8-%5"4@ǽ>v||,f!=8{[1ڢ8ma0xʨ?|%>7??W1Lvnc}*gˇy}sޑï {a5v~\-7_ӝeqwgVQbf9== al蘔Hut|];:ʡΕ(uݸq[GG㎪TmG)v^;:O*]Mʔut ѷsw}s\*Fl# ;MQa~pA#lFC{Ž QG$˥0FDzIŞ0f0 $YO>a@K؏(r}'\bu0 &`Xt> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 579 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/PDBB.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 627 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 628 0 R/F3 629 0 R>> /ExtGState << >>/ColorSpace << /sRGB 630 0 R >>>> /Length 1250 /Filter /FlateDecode >> stream xIO[ISe$8}9f eĖF#$&22`F^+;lr_u-hq._7OAKOwJx zX*|ʉhsi'D -[ܽnQl6'5io9>Zf$S"iz1ˠIlrhU^"GE4dxiH6*7m}ȝvA&7.>H 9/Gla,l c,3 ɿ F'iɸ4KKR|LAdl.|٧oFz)ؽ[6ZU$SW7q7]It}'qM _2)3ƛMQ?3AHۼx~Tk_oK6Cq--[ 0Ke =5~wiR:='}'tMdzQ?ߜ]Qpym|֚>6s}9u nQr3wao)68|tѢNe*8uj퉺'Z)uTtqڋW1.KEV_񥘟$JN`5[mWgO46&NOw?xH1v).9p\^VjçuX0 "L sE0]*Mjz @罥zm"WOVj 8U*!xzSM*A&_9=f~OVwϫ]a ' endstream endobj 525 0 obj << /Type /ObjStm /N 100 /First 883 /Length 1975 /Filter /FlateDecode >> stream xY[o~ׯc.9$dp&5pN)qt" fui$e8q|9eT ( (Z噔7uVGT ҞUUbHq(}([Q+]DFggQʒ" G)"ʝ`DmQ-r\= y"|(@O9hwBp[ 8$=a'04=(%L4W%04d:9xU¨$QwR`B& q9úNpp,pEe!#_@ FP9Cp @Xބ iAHQ s2aQ#@d/TXnj"#"KmM!"L@0aynMA @ Tg`P҂QAkXQZ"9i!eu(x)eaHNZ[-Fe*Aa bSPmgآ, KsRɋu$`a1!Ɍwq9>-UsիSȬ?I5,>cA.nOKNnc8/NQeQI™&F{IS @gA89>n-'fPWeŹ4W}vTt=.n/O>*SCY`( {ڄe'XxSUq^Mg@ԾA AGY,,?"H ml_H6NrMM]2ԯvGm- \F3N[qKPDgN~:'䰤%-JPޔÛni@H6/h'@pv GZGu7^ͭlLȂiYUi=GXҥr!oMS*E_7M) hig"#Z;5ZpK4![iM {Xoe?jo 8RL]pSxr_@ƂU`=aq_n sތkZzHz<ڪ%K{Am{#}4mԋ_fvTAxXU*_mz9Qvmg!n LL[D\06+noqf6 lQvE6'mL1o $-a@-eQ-)xv{-i.[>/刌IerIk XF7O vir³uq*A5 1@S^G "(@8jT_9= O9r'dM(n1yH h 3R IEƷB:d@G:H> Fuo=^0ђɻu]} 7U7Y$K{/o4Rǹvͅsu HK@cK⣛~}CLd>ÐeԆXҾ6 >P,xe,dKq΁#׌"\1zFHn6A ft M"Ä $0_J6/Qs +-7k)ӭQ |^d'cdI6xʧExZ_q.]:[ߞ?g>! X]O Ǣ{.E^ 2O cAĂab{/[Xbscлɏ:3+ endstream endobj 632 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 580 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/PDB.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 633 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 634 0 R/F3 635 0 R>> /ExtGState << >>/ColorSpace << /sRGB 636 0 R >>>> /Length 1295 /Filter /FlateDecode >> stream xKo7)x)`85"ნȁ F,E}H(Z3$WKŝ2|\| Z*||P+[ؠ{E,JNF#z/}//f*sşƋkӠ%]VvN:%)![Y(փF&lEGi֐،!ki`,m&;* )A*7*xI%^2EgTZ2KOL+5TX޷P66H[lgK·ZxAo.ƟjGTM^S1~/w}XW1~*hٌ3ײoٚA%SX ٭iT[ p3ٸ 2il<8^ih]37ƫviwu(: \Eo-դ>&j4ۣݍ*mݭ.7);-v5zFݴ貙m}y/^=Ŷs{VlЫ1']YeW'?lnVl.ŻS'rsz-#Wbd5j[??"8ߍrS0 SLh`g fYCw fqZ_ey{'1!AWbsA&FT>311`-#Mbb%#gb$ti{Cy#rL@6,&F |`bv1bu3]lm`bKԋDJ PW9J>U%HI2r^Sh.pUuIQY2Y)rcJ(SPF#w5)#f!s}H(jVrrvr+ ᤛ01e9N$aQgU6# 'm_y1_LASK '# _V+&gT۽ѯomޮfӒ?1BIDMB' i];2VOC~WN endstream endobj 639 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 581 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/home/rsb/proj/R-Journal/articles/Proofs/2017-2/2016-140/PDC.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 640 0 R /BBox [0 0 504 360] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 641 0 R/F3 642 0 R>> /ExtGState << >>/ColorSpace << /sRGB 643 0 R >>>> /Length 1251 /Filter /FlateDecode >> stream xKo9 +tY >D>hkEڅ;Ac/K1y!R'Rhq!_7OAKA %( ܯz "i Hu/k$8pyq|AH JD2c']Ake%x QB"i ('+%9(˘h/- *?A"!`7${Y%u,; b%h4ɐ1SQ|ƚih=!sN>9JexL} YϚy+cѐyG9KdxZbx̨"ӗpF}mQsO.YG?kM7$7^z[t}T!UPk )h{*_8b{FISS>H,SVD\X:\zsEJ/N֛j? ]6?o7r+>.9rO5.MO?_֘xH=3;_lv+q GoQOs]/7ᛸ[_W8Y=Fo]bqD?WI&`&:{?~z?q}~S^|:9生s{? <~CZ?Ƕ s0R;VsS` 9bpsLuFy°\(f %cvPaƬ9Ȑ8fO? -hc)fu^1kW16Qz0T r̸l`3]6r̡;bNel?>S(Meq6)6Ԩ5Bq.P+8qבğN\&oÉU É[Q 'V g7k8c(SnÉM~f̒1R 3pI1{c fg22̶ӈ9bmc]a=Z͈ s*U0'v`S,/~MI0NC#Q8{.5H4i=yC;<]me={u&WSnӨ/G ՜R05fy<| * endstream endobj 645 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 673 0 obj << /Length 3772 /Filter /FlateDecode >> stream xZKsFWr T%ڃN8q$ej@rD(~g@eǫ`^<99!x2Xdvs;%3I6KfjKty+hXfD.nƏDF?_ݸ4tLR}12};ߢ԰8Be82@K_0flCf,ݻۙI@]t§LM$s9`!eL 53IŒf7[HQuHjٜ4y[TkqLޖ%v76ۚ&D}6 ;c۰ȭN.TžANk-ui(*zUڝ]r.a%u-ήT9a KVZfg{ ģƳJIt_VpM!bBlbHmQ]Ձw=A틋/CaOx",HD g zm8?M0.WYfLx\P.,J=>m[i|yo-0.H^uwbkiu޼M-_Zguf\L)ugw9"5r8 :`ԕveb 6ZQ( ve+vW7]^u doJP'm{Z~oeO!ObL!^ nm1e0|j=?WEWѾm%,a{R0elؑVD0X̆X vvdLڲ.W8%:aq"i._hX*%w oDRNB8۪sz*n[KB); rj6ŝv{-U'& |X±f+">Ψ6h߱-^ n#FpQEp4 n>)pm3w[=Y>E.G)h{eQgHOnj nS:¤5poa7tjUp hu1s&@ɘXN6i *Qٳء:zk]YwԺWKO9UO{"Ѻvoy*+}^ N<2ٯO') NPw|W] k?-B1%(BCnWZ U]=l!8WszX{{}&C_ok {^ap6'N}0Qh%SgG)okO"dpnXW.}0t.Xq Ibtp?eW^2*R > y,ř`bD!9cm^`kw ϊEY&m>^i}2_aPpUZ Za, 5\]T}ܵ0sA#fow=fz*!.2aLCתWX*`EtU?@Ҳ益%7#g=84h3Z_9G|2I,#ɹFn+|= 10-[l@+'lg@o kMx].Xݬg剡#,3,!)});a{!d#O_K({U#Z"f&Z^b.H˰Tˠ7qܥ2 .ǩ@@c0~val'@+,!U )^ :P-硏+@i$!AJz7{QT!x)@@[ S:A wc3QnF3c5i&) ;&dc)?LBS&: 0;T )y='\$ZAWϘafqt1me w 5[FY4ΠzuPr04خ+Mc%PebL>ߤ)T_;>)XȽ$3=ottg%=xs_6R=P޺*:HM(<wMvR@0k[ld[m+f3Z;23=hB)8e(VX%UgxaPl0PsA"tc)bj;w ]1JLn܋6R W}L~}]7 e/4.U !I\7mShoSez?*`U5}xkN,;-ZG-WPX$Ɓ5Iay~c+Mk`Tj ޢ >ޒ,gF8pA%rܖb2_[9N\?E?nJHnJOEI{P7Sp4I kyfRD_w. D[wt2j7&:5;~kEq ͧsS#oFt6+B endstream endobj 722 0 obj << /Length 4064 /Filter /FlateDecode >> stream x[rF}W_\|v$%$|v @(;vk*\ptψFdfbo5UL..GZّ!2Z.fߢ?.:Plc(Hq->*}_]3ݽ}~_r-BS_t޹?:q? Fv̝ ÚQSAޫ?p.dDq$Ә;.~fPnDbn5\$%1 HX]dPAcBwƌV*Ԏ.0O( N2?&y9 \kxh9(LkM6TJEZ"ߜ&uqOe1[/: }**r*iZUqXeJώ 0I {W *YOx괄ž Uwy]e:[;?(^o# u5 22&:`EIhJ򷠄BPGec>J'n"3*U5T:JJ*ob70#0,[0U.<uT3fneŵHGCowVS$It(eUGu`E #pPHGN}#3W19:#yCŤEK=$smI@(QD1jNұhLy15 @wB,JˤMYJg7Qf2i~U`QWW^]BYQЕ  ='r6:pOt9 KL_D/wXgBxu$IPԻ?-tFc.DN0e :ai_'$7ae:bQ{`حuC; ƃsTɗlE r=_1od*oMcB_KVC_~87 }OMX7CE0|R859+`i^@\cWu v@@i Zl5= Ûod5kTh^+ՊT-."QSF8!)H)mΛ`i*xy !H6:t.`nb@n4vG5 Ah :5 [.bNS_QioVW,E:ه"~ֶ7ȣ򒜢{@W:HŇiqTTNXˀ:MQ6i` 4 zv,nl’>A1AQї_QP ČEi j_(ɼ(B=KL}l⟗UѭeRٴo_"_d(<oa%+ގ> h_lցO8x |4Fv~8d\hx"Mu3H +Mn}a[(LpDVE@#x~~G&5*ka{1FDN_}Y1;oϒ:yȦ 4MŴ a]{2]i=aM 0 鈶j[0 +O-cgZ%iSSu, 3O }eP?tCK~ nBA^@Yg-g:poѺVD>TKp*}?Jb`*hDx;w;\&p^\ַm)!tbTYPb%w1jpg<.wğAY,mȄ~Lx e/$m5WOnnvq|Vö˙$anmJ6 t(ru/LsJS$XlHIwq9ƒ8-SQN`+3UUL3 <@8AC7jjDէ2)f$m0M è!T6!w8DJ6ʝ}9r0J``V-d9f2! L,8M<Hb+LKyLl1+Bxm6ZX<D7#ŋ9s<>1 g e?NK?YTs4dݎ&(uۿ0pCYpErS;OЇA4S}}A}i;_l]9MzO4[57%!iR!!$lJ缾(x!> 'K Ǫ,>ٝFt Ӈ2jhNΚцMZV!V?n 4r_ !}Ȁy)D/aF˰Pו/:( vhzfV>Z>t~ǃ8`"lfj6T& 4 0ZbY vױLo5]y&t3q\X(CpKjtvfw|X$YNl ~3sxPPt^]k{iYnt̘ l+:d6A(99hSϟ9Mr+o)fTCØ͞Db#ylҚoٺ֩;"Z{t '"6FҜ}(3°PZ6{#?aR;t'p=c/r:}2сsM1%<.%%nŽxMG%{%[&SU}<6{P]6(U~>MwyWK߯gUb9E"=O.=c , ѧzo"=UчPs t=Ii_8~S+_!˝D'_UCp%Wy'b]uSɀHGڷ4;9=j>9ע=mVNUrʩM(ΦnzFw=X\sjMnN(=xOGxϺ煰ʇp3).p`L@hPݕ%P‡xw*m[J 5VC~pU݉#2u[ZQ[~Jtӄ aSF`\f۠%+W"b5Vx 1=÷q6\]m; > stream x[n9}W1y0uqf2v&f70I8Ws9n98v dTX72*Sd#Z,I?(ڤ:8eV#}S(bcn J UD10(r6Wb.)ʖ#+k<{4)BxIYX[eC1l24 jsLv\38+K9G V9"X9 t3'PQNA CT.Y0aDi ZВ8b[̓gHcH{ȶ,"2[H9h*$"]H`ċp(@S}ɫD:Đȏ0 ePJB& fE̖Uى2fV6Bh/P$cL&ЂThcZd"G+og"a~ZYCϢ (B_Dy$lGR(u0e.#ְ'+ $kd9cR$ Ll⇇x^xY @yfg{1Y^͉z2_/Գg\޲vZ7k?7˿zUt9N_/L6è{WcrYXRWLɛ7 Ǻ8^/:? ҭ{Ѿ NbE^h/WU_ 8o06N{cs3J\ͱ:]WZq;xSe/_ON<5SvW/~_C~};=nV=`{=bKȯzWleξ5 ,zTԋ\/y{}1?}QdAϰ۵?NgKÝLCMM-&S'F] (8>9C\gd6CHv1Cl6/2i-E>k ߪc~ 1"FJh,~4CjyXݦX-r|.z)UYE%b9sˉGr0 !,Pz?N6EGA1 :c`.M1HqK$\}IZʤE{V|ړ&~ٓRvm)CnQVmD[嘌y^Jz=II"ߌ-UHƤ0ñQBv>ޅZ;Hzc)ZcmBbzc"PuRu=(x#|3iZkK} ^Da6,eŖRVfRVhTnLڶJe.\(8,i[.K):S*TB7 2>+ \n|υR' _1w|i[rci =yTqO=uCa\Dޗ&"4nV`m\v%Kr]In96ɞEմ:Tq<`.Jf(>\|"H4'ڇ-\XTq`I<DpBnWwY$1'-6!2T^b2,ZhzX` WBD")vMF c-iO8{ؖoI&[ rHX*Xe=I +'R0&34қVIJHG*[d1X3uF[G[VZ7,ۺ eD+;I")4~ 8gT6ȦUr:Ud팁+лm+^ݝmBN}YVzQWOM+aWu1^36Q_]#M2`b kOWxPlVuC^벘6 ~pwXMwY36AnV| jIq! t}ngý=#L+ .j܍a ͥrBDny˒ʭ17ܝ"KqKGdd8+oP6zAԔ+`ַT:lAt;'N*N~7;hs_D7jis)Y&1LVl}Y('u~K)*b qBskAWofz|n{mN1W `a`r;=vơ2O I;*fȍ۶(|e{J֋l/T_{{{ĺc= NtNIu-KWPG=VǏ]o͵Q˿4uy@uCeG+;ɖ_ǼE,=4w"ݮ N endstream endobj 746 0 obj << /Length 1887 /Filter /FlateDecode >> stream xڽX[{6}RA u՛M-ew$YEBˋ\(I̙3.ɏ(C""FYb|F篼D J-N_%܍oK~u~_ƉdAO͎ƗG?*GB7A#RXJ{ #Vb:߅G?AIEEy#*(,#N0&]tá>Y;X QDR$IK0o,gnG$^Z_Niĭ %X""B1޸c8HȨ gnm$ƥWnm|2YL}7T/xBȤHS6%I*&S9)^q0N`8/`e'LJgaߗyJ!22~bO]QMY:W՚,KDmSkjڏ3$5(]mtZZ+A9(+\b=hOJmZhժsKp?M,NS>P*H&ř_gHIzg,PJU-&'`Ȣx.niL8b44#% )ɕ+2oa.+SB]Vjg6*c/>g>oMENJ>jM|9NqlЭ3 {:PmאGS/ic,]H*B:S-B"Wɦ4NΎX|#?B'Ceh#?2y@mfCs_zL ëjfi61 ]پ$AvSr ĠorH~ GQ:iu+jkgJYv@Ă8P0&JPI>`IhT#$&Sɿ'I¾]e$`}+?|RӕEDĪs+=׵T0BxdmJSu]+laS㫼kšGsx[YI AZh VmF;NP;5cm*S]cyZ'i%o$-ZxWR|uTQf1w`vem김^ D6/-BCb!rtjqp?%NC8k q4N0\?5ޮTu44|GPۼnK㸺ZMؽ!+|W靪_N 䶪o:vi<чlpqvc-oG<> '~x^%xf8yj ?|5P0PYFp_Z> stream xڜP-JXg, .݂k ; oszE|csvwAI(j` r22dAf ;WokF53ʉ@Iaji!Pj]@|;M\ W5@ h `sqXXP62ԭL^֖V|>4f`C.F5@ tÀdbd3CڎqNLΖor;w){}3hCM r@@g/`e4tSi0iRtddX:13egL Xd.`o ̭\@Kk_49́cEWgkO>  +察 T;~+0hoe11O  aSI巡,]ߍWӕ+C]{bi)/?Onοѿ[/Lރ/b,3t0K ih?ӀR&v^ 5'sgʺY#vXY,L\5*Tqp'iXYق..Y+Ip K' yx<6nTT5fjfUbMcqqfW4:ٍe:ft ̟U;D]Ϙriwk=V:ĒY{إ_@SƆ<83b}qDAYKlR4O=^'[hLԟlMJmA}jΰb:\ I:ԪԞ8?sCnmV _ ~a!V2zVAx`o_]u|z6 [>F'0_eR[vs1?ɪ0z!d!,æzstojvrMYǥpce Jm |꼴;QYEL`h̪BŸk7l~Xhf8RWao:]n]_0ed7ʭo9&&w8Ԡ"PnՏb}U& Fgb8-$u(ɚ#p6rAdDAAz%{[tw6Wwp8=[uDkl|B䮁}t+? h9w]zh6L >I,éS@Ii|2<zp"E{ tă崸&$I!ζ gDE̕1}(4? 0@3X֯ mk8Bز _:;]b?5xYr1 =J(oڈj3ai,ݕ QGH/C:8o<4U 3r 򅼜KMM`Cz|#6bPX' s_=vo{}+-0ƢǶޡX\P., :vu}jH2C)<΍:}SaH2,>Gਵ$EJ->lYR:RoPKq[KYj-ۃH)dɔ"C3/TuQ}~,x)FifDjٿT~Y\$Ԕ+g4եd,ؾ륬s,]e.Iͦ92b<*|_rXL7u-ft PY1@vW4_ݰAe5`{q؄9YI@t 8L>_aH[Rd2x AW"fIkNGWLHKc/Joɰ2/ΙY(ؿj(os\q3૽wG,-PD>ӶHSfCpd"HW.R4$fSKY[?$%,婠 K=J=ӆ̋e nr .B| 1Dae{B/A5}ǕCƷy:0p[n`2o=ߛZ8͡ώ̓$f A=>nvS\,*m{5/=dD&#2m#>~GѶӵ0>iifG)^߇ H)f|g $Km}}Y.BM+>A! PtE?VG̓Ђ9V8Wėy_ˡx-닉zbV,B-5ԟ{2PΟdHFBC9F`*U|2FBlQڋ7t"I:]yWk$KM.Bϋco^ݘm7Bm$`YJ"e(~eO &nv~j=H9X* FD; "Tt@G\-+e.B%1;ic_ZH Jd;Q3%!wIQM7a{fl~^!dX2AB:&a m^)oP5Ȏ2'BZq8b7s tt="[f2AH+tnY"Zxuq:*Wcf{7Q++ak'SxtT%5YYMo?ls&ZB~6Yیͨ$lk(P{54o>A<@SSiז_NikԱIɁ1Y"gEV8AHJaAzAsk| 1<(zTJ(H"4TrmrЅ1#.vJV)}8A !p9xd^zrommNj+Z kS[e[F=LhE`WI'C'fFG؍8W6ZWgm Lq16{Nm CbO+F%Ae[BpHxҥ*GR9IM$-\>8'Hq!v_C佷x?T9~hjn"X 4^-zci@! )~0!]SMv'ڲ~"r>hԌaBI=L9A&kМ84QE"I?K1QAiA|HQDȝ'd,Y2>K12Dm/<B$]昉 sώYzn/()㋐xSl^؜u=V&'˪$3ѮcRQN.=rעo/{GۑdЬulڝm7=8U傄pɃ-]NxnLiɫԥ=HjV034{v]sB!eXRId4-ZxXp6w @ .AP(Z=.}׮kLLdH]uk vtͽ2o UI!_g}aԷaWٿn-u[(_]|1 E݅N6٪G t b/=4~`^Ao995Vȹ@N~qh P80 ФQ`F_0Ra گxw\ԫFO%t =J6zs8[NiJ]KeR&N7I/-v/SŃe;FP0;z!&*oi*%}\"gMM0<E' ´DYU;Kl8V Ý@1 (9,UvK<cBsNv#HHC" dMA6X/34UpNy !F2K~RKuҎxC jFWiPp8 #ߌvWt[HeR4j 1לIe:|0!ǎCfqM>!(ڰo=J `HdHiO}L!ob~۴3 _I! -?9&!2WKLDL}k[lYH5k).,]5qI%EZy^~77-xcuf w6O˅-SRa=ywHX˧_'\z„4]ҘR[K/G\ȏg%slVrN{yZﭞ?sW R۷K&͂l(/kC. .!Ak`%pr1Ml/t@ }*fWo^,pLmu%(r{} :CfO 2Ba,}ѽsV`O?p4}/+-kVvܷkgB4I\jdյx̞x/+yD/lJ Y=;۬fN,]an0r> 7l9 ΙqGdn! \U2dǙCK\mfO1Cuv؞T/7gք&]϶ǃYwp/ άKvgHCn$ˆࢀq.4v\nhۧ7vAl, :5Vr;m񮆬ߤϰQm 'rT6kmPR?Tۦ򇵓#?Gŋ6R}xnM?iޏ c`+J5]>Fax-6xrTih2~pAI%t*=9U{B/}rL.DCPth5kcF|/j }(C7}+h4^D (>9괤XU8}Z@v9QlX8XЍ)!^N wXU/K>~xؑ~UvedGGcfHB_jihѺ ZǶaxc VJoi\LZԲeu CfRcol"96 j?[ <RZ<Zh).[%Am br(G奻Vk[_z* e[?(-oGqY$k][I,#Q({%zWD lDC"S[5B䮐y^vneY"}m*ר=f c$Tݒ<=O?f[t>GAQA5DKյṿ~;<$)psޮ: iC*M?u9Rù;@ ǨW mR|ѓ-ك6F)*n' ]h.[ݒiIĕ8v+(4:X]rq&:&,&x:+ERvxڌ6%#RzSwW8[a,L=cj6Im+"XDn57ra)HG·v1} 2wNHۮt+]V|ɶ58xx|Uf@ K- Б>Qe$Fdoxȯa F D\̀8C1@k!쁋r.f ?=&MiPa S~4ݞc MW,J]T$|r1~n;o.Z :[P.< rމkڸH3cSN'ړ\elO ^IG9hv@ur%|?QN=}(f' @ 1qeCr#K? \äl] B죉CW \l:~jh\εZ'|#~<yaJ{D[PǨ .)_{ok?c*t>yJ]PrB_LtڐlA.QGIfv0bj`&pqu5%Zpwzz:+υѢ10WO UUVA9+ޯ%FNJm&cXjmg(>^@1%:`S>/ ~j~WvYOKL^o`{:{:xv^hS:DK{dv"yYLOYy~@,p6G@|Ho ur6pwwhS s>YFk&Wf+~x^_8صvN}eC+됣0v' k^]hOW'BjAr}p)Lb{P, J>`סZ{ FE&[G(~+@&fBl?V_LZm#}v^TJTM_ jRޔl(5Vfh~*)qfbҪ#00RXoT.MӤ4-=wHLRrF(JM{/]oXu4{J/ZHdZ>JhN8T}U!3z^cWKt3}j{ֻ˴86u팖Ÿ obbQ$dďBԌ@q%D`=ZɡAM5Lt*%@H}9&kd-ݸG̎mZjvv73ߌI`{78$뭖DE)G/@Crio5pCEoF髾"TVJ@i>7Z?{:te\. kCEfm+5 VF[Hn2q$L DuwCOSsqAp%EZZS/^|PS]JJ4/>/v$6 Yx586Lj~n.Xn:<:q#t)+uN>MJ%>3rHCyYӲ(R}%i^A%5" peH5f'2Haߦz]p In9"ўkw{m0 {bc|Ϲ7(rgqE|2g_u Dc;5Ǒ8_(q볆' ľO݈][ΣY˵DnXuy/7Q.³;CqWӁAɦ-e"]z!, AIW]Lo¾M\[TTUt,bச ǎ%bA/*x'ial3ǩ\* &E}p-CmnS%AVb*Ё'$m|rVc<6eDLO5iFPЎӍ5~!Ђ|,ӳiG|7c FcA-CNmEUE! 6>e1bVtǺ2Jy$q_Zx yk| ֯sD*H{ә}i)E쵮\% 2Tr^qjW{EA [)R!{ӜI~ZRVdBNP^3V=JK. 0FYwD#ruQ*z nV)(J\`1}hn^P6kzP%vqf}ջ}J5IXj}4Hzd T#J`dbҐZtE3}_Xonx-OMj51`LlO1ڀ7P(HΥDD X͖ isfbK~t 6bww#eodץ۞~3G%Z|kqXI1w0K ~*H!8~c+qKu問M#@Bop;"!=N/dlo KS.X^;&7 VIDTb<#aɼw~ {<غXc/#?;,5oɔ {,%|fP JޚSPXd>N4Δbj~J(.=Srjr+e<_kI/ق_9~`8+TgnOHq93`zՔC9H׿ה1w2*=|)NeglV wh]UH2b^t~ݍ@J !/}%eC{C;ilV^1̥̓L\D?~An:&i%Ymߍs6?-b{v!fTڑ?ŦEѺ~vh{v1uU!3ZlOV3k"z#/X9kB7wh/<3K>&"W#!3ߚ5Xϐ*|?_-17d(K@M|'];ߓj3" -cm{ M6@B}aHGrQ@I?Ymɇn6VqǘX v " WJ2 P}]&\Vx%S?uldۗNdи!x7<ձ]6g= _uv*pB=^$yWPz&lPpŧ()}eiM.49Qr9Y3$׬\0 Qknߨu`3$Wȹ}1- $-Sipi/KZ}C^zAC34LG7tlXuׂ$l ;"b5E +(#fxnNطel ;`NBGQ-9"N8YXg[ eQ51xST{#h'0[S+РV4/JJ~aTz/:!"GI:yO8u׺[= i PYƎ޻/Rl ]/> =;Lj(znw?xҩ;7]nnC/7Q,cZ{xzeJ!rчj55ϯvkE~ *pv"٧x#|RiMퟷ1nRumE F;90K䍷Sn$Sa}r Dֆעپy1(LFAE&ɹGB$R&>k"iO-O_81qXQ-ehlx5t9,w)$=Tu5/r? 3/NN>B0hӺ W 2_ pFX赕=V? rF#|o} - %#P#6o Hl.h\cofAיfaU뜐ϦsYO_DV_c"q&ֈ1\]%64zI-_d}TS.vD`q; K!*t;" 1 ߆_@/5:,Lh5(t}5 Wav*cQDPaŅoD&)?>3mkJjQo~u zj_SlVSdX627fָ188|>kɋb%ǚʱ'Vy_h"%)ʴ%5O_Q&3mewl9VÕUscP̈Q m2$GV3#;l50;Aث:Nn3!:@wv=I7)t ׈h3y2# "Q~3ir]>pie#rIhع~ܱi )ݓVXv_:bC^DJupO);Lq,$UR'H!k7JS1;oK|YKh l󇑜 i:ilE]j ?DmM0HД|EFyK_ &TbJ[R4DzZ0@[A6GQTV&@[t|NȘk^"tAa[%"#dd|:'5:뻤{a}2_o0cmz *Նs20\ӢmNrvwQ7/ⷔ#f\KeĭhiRd@$۟ =$T 4B9;(pI/;ʼnڎjG747?汞a$=DΞ;oea{]w>V{ՌO㦐Rqڱ1\'C~YC~Tu_^t%4&a{Y O.):k-{.ˉwlM.x`.Mo!~;'vCIeBIN=B!tߧrSEo/뫴`TW~fbI"q)X6ޝ!漡ѩMx ۏDwm_WJ){5Bg\ wk?|)"'qQzI=gtҰO?1W8E`XuČ.O#k7ve x⒋M/\YlK9Hc~}M/6q<6 k:HaF(?#.Ld:ўutM^#X7#6u)L꒐h([;O)X>,v)`wћ ATfϮQpc۬~E+e~?N}R4n)|1Jۥ|%:ě[/xk;cyP[әBͽ(|,.x!gKE%Bس'ADbG3XJ`HN.^V:s qZJXg,PE\Wa2]#T.IoR'(=n@%tEr' #ό jqCۮ֦lUiWo{#ԸL:r&l+KÎ"B c\aWE2^ r;qU*Ȱt|#<~H3A:ب/< ESE A T2#+^{ $kŚl!d`8_Wp7=aOtQ6*".q|W3p*2m5{n)?=%s%5A߫d܊P ݼcI9Y+yhxTWZ<"M&X!B+u:˃G 0#LUx#?m^fHO x~z:8AӶta?l ^?X僵gLfԅYUoi tJ8'_r yuhuء2vs#/G&8E5NZ}S[чDܛROseTJ51 gPFt |Y*O% n6le߹&j5Ip~c:߽7a7_ }тyaG6]nXo]t hsk06vޘml|P'o%<][Pj~ݹF@(HG!dЫn&b>$ԇ򁞝`س7"4}O))b(c&oQbIds h2tnRUzCS$Kʷ\Cˢx-nzُym>aK; A-nj%uBOb49mQ/i8Qq.FcǬO5 W.LMnQטȐc@¥eBD9sdbrҪ!BsxqPm*ypYj iP{A=zz`⩿jL̲7@ћTF 4atbлS=ϓ2deBV!sv3cw\5*Z E8ʋ_85Ttᶐ1?/OC{Tb!1NlwO0:7(u=Koнe~X0މRWz4 (Acgлf:o0@j@4/X* oH~ԁLۜ: G(z8EkVZ%J@:x@N H 6G\ebN_j`!cUBUԢw;ӳ䶜 ofj?O"F(qe:7wL肴aqlƍ@É7Ƞq芉Q(+Gv/FT8|w@ݗq%ڼǟ (^p+iq }`C`mXXG~nݭ[a圍|`JAMSJdY`TT=9 A($)$]{h(􏫓us}j.l$kp"G7}5#_|6Pn0A7M'o&^Lg]W)PxҗzV)~;RА~S'.r)r`v͗ dIWoCwHOf%G5XNg^kIxeb ` ~gFM}ˏdSA0qs)P);IɠK) h!X Ϙxɵ|[1ʚL\tB` y`קw_ilkEH?xHչ⪦U?Az fW/CIr5;J26LI4Zֲ`rx cdZ=;h2K,?\kZu]Y߄qz}uι -xpLhIPSVtp eڨ+wؗզuܨ_ZPa?̮.=a\+[\s?!UYR+ԛ {|ЏOuMm$+`i|lL w. ¥RBo+LL2g/h j[ES֮3o\$zb{0O:߼g\$'w`"ax,w r nvbJwŸv;(`&ˑ cjOu]y ^)LOdM d'}_Nz/^h+DdǴi(ȅLD 2o騔ք:hAL;c8_v1Y*t:\ i"=QVx>nP\!– \ZSbO̘ɸrsa4T :1퀸%g_%ϡ$t½Gu.e"QW"دjS`>I wHY4eQWшZjOp?hu"2gzքZxk=Ac\my.QVC;gb- #o t%HFIUg2=  !4v &#).ڙ8. [f2WXI5c!>i/9a?8~Je^@.oǽX hƀwI$;+9tSVBX# P Jp:]|_{qN\qNx49!SfȮ75uQ⟥nuzeF|PXIwb4{`~VG_X0;?qn!h>f?N0LYbe8wm.XTnx)+`JC2y6 i Hޢ9]KU+Fޒ%:"" ըzӌ ,K2>n8䢪4&Ӡ02L?ݍ)O ZѺ[9?8v ǎIW}[ 9ơϏIK!JŃrQrS:jޒRa\.L1Q(P:b&^;e6SPgX h`$8ȈHj>R/Tr(۳jV:LcKܵIh@_A95忱1ʍ&c?'o3௲^PÇm\b^Wl;77TTS&a.mk߂LCY ii$l#2Q٨a5zsx,RU*ra'p-.xƓu, y’y0{qT祧MR|>Ї \gb(&!ZNINzp~g6b?)@Z+A.hRr7bNZlWRd*)zIs,$0S_"cwo-h+^(Y/IY%.ēC9Gڋ6OځHYק-W;PwK|9+qi.y XKcjoiv;fbJ5Ay L!ėRF.m-pʹb7n"ДV"l^Pz a1%1D w5iƄ E D}\]M4aЇby ꒞cnu*僩0A`e_TEB/ ރ{㮛B 2}jB5/̦  v=8[(9{ > 8&8\1w$ޱ 4Q6Sa57¾uCdQy…%rЋaݠ N[ RN43Zt5qnsdHW?5a$ ߊ۪i=O=s(vYG(O~ g5[`%]fw_q ˍ#!TXt2U%x&+.c_vciE"@^$Ѽė &Ox70sQ#'}(`*;DT. IInܞ /^r\n>G96;ݤV!t5 {N;NFrui'cycףk;ZFyQʿ ??bNP!պ ):cG*zܤ9DJ.U;EQ`˟aPv(%~kRY/+薰|S |H~f-ߎ+؟V=A*^?Ɏ4'}$Fm,W)Ca=mэ$&n)#AScYDsFGPEz7ߐ7闾ll-Degv Ey'X0eͰD'!Prɜ1؍阎>-4)8+&ؔH>-ykB|m2SRm5Zl*F4MŒSmKym{XYVI1 Upw-4šo!xKdA@J;r8UvD! X$kܾqdz=c_>b0∑YK'%?RVN>^+b4iK.M#ǵܿ,%ܟ{+\% +$:M˒8chgV m\ @xP74U dubL". rކnqF23j 6׳Lr^Jk4?|5|#XG1Ѯ2r iq>^9"J#vtOv n]`H If@`Mk-b|qX8C% v],C;tR+xSr]&! A"dˀwG#h<wp͗j[8sP`KZ7cDZ^ԟѦm`݆Bsya4sAN2ɶ> j/uTv ?C[G=zJUQQS+|Byfh]R.|9M4j64m"̭:pAyړK姟Khޣ2łj;I27˧ݥ(7AfyWNB`ae ?7#vlșWg?fM5g֭;VAZjH$> f0W=-R>@ &v鸛Je Dp? 5Q8J"14a" b R3װ@ RV ʀ+F燅GgꆃNv 9.KL*_VcfڿM|+h2Kҭ}IT^<ئuiԗ:˅@4os>\ʲU*a=vJ7OZpfF N]ek "l>_T 1G"I_d?zrQgGj:tw̜Kj.X܃B==Q%.,ipe2j%h@.P5dFOYP҃|"AnjF\Ӌ%ҍ].-)#aVXpӶ5enpFVGA A~R'ttЪN+b#S-syG1;YɽWaU7,^w׻&Ҥy φ݌eIWLEM!dze5_VS2!G0:SݏQqp?sw43[Aukc/z ^mRF,^COz.4Tw&Cc}KR6F \MReuDkm,9Q~S'K?*|fk o z ඹ~.ֳ}kv.^.:&x{ix{mB؇awI[jA ʷYOlc qqms&B}&@Cݠ۶aWnt\>߮{۠Zӈk u"bU GQgy>yԷm D-ȏ5,PQKBמ>z.H!&xi϶v"t,h|=X~ F=*t642_Te_u:$OXYuש; DyF -i&1K ,yhtRwT/tnyr݊Kv0u؃*;{ᯜi_6z( H9.|drE #z0NoeO[ OL}"b90W0ۦ 5 =AYwؓNIG˹SX5W(,+#=jDBN+ǽRXdQ*܅.?^bDU[\,2uC)=9L$puC驈Sެ ~LR2KMzKfxGtl|bD.ZȻB˂e8]P}1Ɨ" #۔ybzB|5nU&l3DKXmd qq]N&}:)r(LJc"I`o'YJO=nA]H0\vtc-j@AzvA1]m1cToAfݔ/svDx-0Z/ v Km?DDI{sZQ+,>-;?ABV`Q2Ӹ77P"RRbܯ9IN@f!DޅM /BE PD t2qkJpAIoE\Ýx(=Ӓ㰯<xLSdOBN,[Qٽ9)q%~[&bPdH,G^@w#&?:}#2FQ+SOI(ڶ(QL_ICx4 'E!{c};tx'5L0=VL0+9.%&qs]7#ffQ endstream endobj 765 0 obj << /Length1 1434 /Length2 6293 /Length3 0 /Length 7270 /Filter /FlateDecode >> stream xڍt4]׶.j`D5 0Fw"jt!D ;AGDZ߷>>{}̠%k+. 7@^] efփ q p7 * y8)wDu Āb>^^ѿ0@s`7\fy7bg_5(** CAP:avЅYC`G \xx<==An0'p W 3Oiܸ={_. w'5vwtU.`_d?r@og5@'0@SI6 '7؝?qY~(j@wqAqA~+1+Bma`( W~ 8ܽy4 "^B6ʰqwчB\ 8w& ( {Y@2tlAlw\ @~6k l;lpN~@_w AMbmM% M?% y\|.>Q!^P@P ,g -O" DXL4`wXt3^A^.?*3RrwrEp3N1P fWlqwoTYӿhA)/Ys@Z07ȯ/nn;Yw-0_'( oܻ6߭HDڀ~  !\wlap_=ܵl9!^_o(q N`[߀woF;G]_`wff-6Z'ڰ5t6. ;*+x~"I4z,3KnŎh|t{e\gt wzsZ\z2׮A mO\E H<~>^%t+N?,x9*{ E{ϷOs!M'|کQPѢ|}H}B9,)Zx5or,mzptbrW˥x>(陻\^)CfzH&r~@3pb>>G0iOQKXl r8Ox7$"ф*i`:ɣv zS.\d x&dLBlQ;]վ l/Wlb%T\|eʥ5ۋ'"Hd%o3˿c&my(7qC۾VEAw~bHO6#$Wȉ\548:,RfJXG>*aor$>,#Er_Tc4˃kǫ%+=W Mj~|:=u'kI|)6-d>A1 {6bPELki'}i<u?ٌO&dbyiy!)q;{ |eP>(T |D Ax6+),jd\_p6 2ojlR]VT ot)U/"uaCWEYGz{ V^vn{hFH1!5Wɂj&:Upxh`]F-*Y+lٖn=D'*یaUۮ]S{ B+f6j?~1,\!,q*匤5k pZ{p#cTiy'Iglӽ~*KC{un |_7X5B5 Vqy!ToFWmVPRZfi/! ԟ'Z\Zt+dѭPxMJ䐫6k-X|ONR+W.:_E ?-]HJH7:M١G$zcT QaJ=Wqw A0Ci4ӦS)% ?LvN c >qfyMi.&2_UBԹtsAyuMUrͬlxa^O2\;H(+q^[{Cr-4_bo}S&XEe+1{Isd[ʮ{HBH#ʰ&.'3!WB/[GyZl2Ӡ9/yIo n$qqilUFA2ǟ-Q}`NJFNxϧ)P_1VNMn@'9\ kܩ?ӳ-R{d+L$>?QP~4t" [HY?fDl6!rX,5gFcQydd,5C̖̈Xcn0?۽qd]Qjb|Ճ1can%։Jqc)8#No:1d&5aS.ZKn7[ջfWϐ/ ٘JَQF;QSi @;,/ld33) 8ǒ8u&lwo;2+o!ՌoM|Y~b~ٞ2`I:IM!P庆&]fn]\8UoVxgG)^pvyŽ1CuKvM_M탳_兒<#,FԽwcS1Jl[ZP1Pahѡmyg= e#<̴  6 XQ7.y |`jKs5~K\˩cN=N˨"L#速e|ʇYdŪd,2L|X+PC%ּDm S,=*n$AT,DUoPRMJraF0n0^QPƫ#t^ϲd7'nrfc#to[,)Xt,gOX9fs/[^^ "v]n-5hhaD%? \zRcrlH5knLjZ=VO !VQjS6ܝEvL1Hci-0i,dyjBDLFq{/8E^YAEDXóQSh!ԛ\䕘͸~|ri@qb+\JQcAɵ4{PsU%fFmD&47O`I}"縋n^b f+H-bլZZ`2zMEcTVttPvus ̊Mu9=o=yt!"d_ǾFx'c>I[ݦ{a=)f(p\ct TM˸![]^w g,'9ţi܏΃dW{HoY2\[c| ӌ%jza]HrZ,LrP'3@܆fQ+GT!).b1~#56~( N HA#Bjh_Dr/ٞCA=O'GVT[ݓ8B֥g8avZɶRgܠ\څ# o}FrD:5b8B9' VmYf%nؾ]j񚕅7>h!V(9MHׅ'6w6́U cV5{ a]OQ z'HWoD00~,0í~*D֗2,[~iَ8U )tH;&1MD a&PixHUk,|ǮWf0גxLm31( 𘊅K2V %OuIK[d*h]j|)?!@eI\ X{9:ʭe֐wh0w}reӉ1K{>OPi98x3Q?1Yq9&] t5љp^$CI1~qchD@Xiށ,qHmMKrM^ے4c(Vm$5J!lc#ZdW`xN_밡iBZG㓗 j2n߄!V(^8fp DT,^YjnV6:y.xghN:I$R/}Awni.-8=\lt=f-!F#`'˦K͇8> Ow_='8X圧!]MMҕNoLzT>%p>Gʹsob-Ftu"U'+>wqO$ߢ|yݙG RR<{/o@2uCQ+g([)v>:W^z=w+;ګˌXs|t́0 i89*fjU7BZwaT5ξ,j,\cXP[/Yj7`PR9 KydFsa$O)KyT 1uЩ -מt5# ᲖPFs%g6 s#M}=ܺ;?#HQJ֓_J؅o=Va@?K3?]^D,i, ZO@Z+m!8{G2= ,ЬvD dbRP T!2{9GgiIVX+☴fZ0Ms..*QnG_CBnWܪ {AR3n2=ً (\ I{/!2R<,ܶ:~)j(NzBeo (XkjHd=Q)+&oC򞕠U''wvK]VYX͈L; Z _K(CK'(TyN&y^jgm|0X,7)z%'h mX!:~~eO2Y|)J:{XSvuhRYPFq$1HTT@ɷ|!Ed'zmxE|ۯD=kCX9g6E5ڜ7C)$rV 9ƶ{ =]b/vds]s ceD*i\2)R=E^uY1ؓmȹ)ԿعsplҚR,`:KgPUW-8t[qp;C$IA-s5/L9h|n Ng2XKrpDhОj}⳧DSRP*RTOXۏ{vJԓXEMiewiq>X|ʾOD5Qݑrn#h'=K0&/YDrסTmK b*r;HHfK7 YnHRfWj.MS^vCWr[h6mp?wi5`1c8CnznԱ9Rʻ [dRz)GYg fǧ} U4|i"f{'!#p]5ǩ[V|o:IYF$|DF`B⍰j R \O? endstream endobj 767 0 obj << /Length1 1396 /Length2 5940 /Length3 0 /Length 6893 /Filter /FlateDecode >> stream xڍwX}?RP i7FIwƀF ]Jw) RJ  )!t3yv]9=~m"l!4(X$T 0$ 񮈿n3DdE@OQ@W X ߒ @4VD:hVEc|HG'A4FXO=g@Okn m0A;འXpE(e ف&z@C  s9@0_x Drh7 D90/84 EBaҡ@ e# pp, 㐮?{p({U~֧"{3\ D;l#bB{ `*uQ I 'H@?0aM޿ F  9hIPgBp,%i-9ፀ&'pP*e/a9;BÅ6QۅD)ݧ` ;~Ku>B I~7&˔`{ntR*;pSU!ɋTNXA{gUiٗOfX?dYbOnCc 2oʵ*ii^x_UgUXi6ʏύL:?U gs|5NK֜ɝb_|h1*h$} I8 Ol.:a>S]#?oظTS+DxZ:%eOdz},|ﴷLWƠb}k3 oE^3cU}+E徭n_>E9rwD1 D(^FoOTjx7u/H Y{{A 4`|ɞ޾&k6(XaRBKa2hXa߯]1C4Bc~SՏ.ߧ7YK|۪<ۜ7V2Rk|0b,;W8,m9ahkTX {^l6x!'rݡAc\.Mܶn\4ҋB!]z!on_eGG=x1 :_7 #8P<|Y?|uji9 `B4oD)ZVX_02|m_8ƭmw|q@'H2_U؝trٸ:QCօKMsZD*Ae0sbWhVM akdWW\Bɲ4+!NNv.(ׅ ?^G Y6<) JΕa: - ʑ0+&Ø/g9>+l_hNV[~ZϬQ &_) HzU IhkZf@<ЦY؋DJ$;@.*g ^w>iYUz{ҵ] ZʺuQ32ek96uP-0틗eN;+g9F=-,;\etٔ#T[}${إJ$XѰ<vT8%b[vv|-bi^h !E$Rbҫңw(,>}k9rfPPw өp/4j?kz bGdu#L{{”IabJ댥 dw`paibپ o4|ۃL?wvgxT>KqIaQ~\]PcҖNbSχؒkz_\o;=^DAҁIXAl $ dVBw9cs7tZ|Xz6#{F^° y#džg$~DdIy/ԖAbB}uՊwȭwR9\]Mu1\F蹁3)$Y{{Tm.~ nW t,&hHSI~n >. R=xj"H~BA3<3{QB|-x/LܔFN!՛ R'^RWiaV@oPXcUw6#G퀇B )fz>A;i U+|'Ŧ:!:+5gN=0(l%}3YŸZW3תkD}s}O-"șH3va+Dy-D #l|9w3vm4WLL_^.(GHy멽PNnwcP֘5ۡ{ET7*fj"#r:雑']q!U$;OHN]Y ) mK]~ ^*RyJG,YIa81'H%wt! wS3[xJx׾Ԝ Ѻ>oMu)Z=y^34k[λ-ct\Jq5K8L්oQTwOܔ}'>gڷXd$I,m̵]kbR,d6A,P$MxRuL%Y>4,$M% /ߎ8uyuȊB㹍?ƁmE=p-9aV/Z3Dj ~HD 2G,oN_ "\A "yKR lfmbt|Pq?MЊs#⛻>[(FV3^Ffr]8OU3d> =p QAMngN\*RC%Cosp FÃ̻1Εַ[!qu܂.`t=9ҠA .;W7 zImV^uL\h_(~y3^QNuyfs}L ~|Ik%Ԕ46# S]g޼g-P f:?: t1¼~}Xl&ܮ싮XW+[| [yZ[ܑ!ʖd-QylmL/BbuLlB̳ׄ/(p.\mU8-wQ##0Q4͘Y'+M;؅}(Taf#vJ̺U=;bhW$Kq2},Zam5u5pz3EBx""} 0Se9dtpЇ{IIirFa[_m6K9F䂛mHp>MmDR Lm\R)%{ޣ)[z u3G}/Z'b *D?vV%Ut|М~EHE^k F,FɄ~',g%LvuJШyp}H=}apV P獬6{~)aYr9c/ ib"݆}Y=H}μK o̓lw{vR ),N![6|ay(4lǒ* .qlj2OOx#by:#<Կ|5ّu7?϶]xp"!D*[YPVκ8wIIFVӥÙ5H x+qyO0jn at`b;FkijrUsG8z s'uI Lὢ?ZcgoS}`ZE/?Kݦvu/0@&jپ(bߩlҷ_hr!;s~˒S+U|+=k'da=. |rLUd*׃.]V/wu))vdbQQ>o+B'؟}5|&żQiaPQ%uukE}{|{k6q-ۛRbDxʩ&Ez$^AbxVp;)CoLݙy۰](iBD[ݰ־%2nW]P&49IUƨу .7gvLuwHYG=MS N 7SK,4EQc&kU['(SA\DͿf$s/1Ya)vUr9QJv^bc,R͏J2bxk\^+-R@"_^9P?I߅U~bϠ׋ D[o7dsLL5#.)j!vGJm_>!'#LE?ď0SyS 1jzc{h$5@.~ty'fw:skxT}J~W(3*M_xn!>$w792Esǘ'ΰ"<` HVGs%&ܬqɔŦ8Jek6 kyB6e96B\PWg%ۉy>mnBTBUp=:)mަo`?--q91srMy*sMc^s2??>E>6nUսəxGqs<` N*X{D{-_4־F^O%Au3BLT/ݿ厀d20|Mhbnh:M\Л;3wt5m7A]boCH>rVm4֎ROpvةm$s֌z={بb݋YNYmH=*`ˑtxTqoi=r2m J_UȗNixk .&.YgTMI}{/rYA{Nw!|^"c/N[-/nL$Ȩa$ ƔZsH6 M~;绂 9.>Xt:LHΈ%ze _u7,>Mu* \]J1EHqoկ5j7oI hC^pEĝ dMFl&]J WN֌<it41,\M&SJCKG|ʸtwV/X=LhK7q UmV~VaRO \ LnAQ8hAk{F%3U &jGA4[#VL׸<ЩjESsg>GPK PU ÐC`1l3o"wm&yAr^փ2L|2LPב^ߝ\SegFֿh=%d+.L'Vb{P9:SKݾP=D,>c).]\xLE,bs*٥Y YZG.od}v0@UUe*0ܴol7u\>d#e=4˜#|ahMlq|\@Ez˒pڅvӁZj\$GN% V e}qPt#$FzCyXv 3`l*)` |vWh: endstream endobj 769 0 obj << /Length1 1478 /Length2 6403 /Length3 0 /Length 7390 /Filter /FlateDecode >> stream xڍtT>H( R3tww30 /!ҭ04ҡtҠt|ck}ߚ~sγgVc~E'D GRe]# B&P &0 =8(#!`S0~8@  @bR q)  J@JTP'@ xs(#PW昿nGHRRW8@ :]09 #?Rp˸PR>>>`7OEE 7 0@L` #Q>`$`PGw ƚ:}wo>@J'g"(W0A.g( W@`OG0{0W`!!#~Rs˪p'e$Y  q\>#|6PON^pDS "7AD@0: Loe1 g H#{C($(? @'# q‰C1GB}V@@߿V6y9!0ꯠ!o))!|"@()2q"i ?eG&]- B5PRS, 5/엙1ݠ0?z0]!Vro& E _TB (Gj21@xB>+~Lkˆ-LJ#_&fry*sĄD`$Gi2f' af KA8 `H`LJi bQ#e c? uyy F_/ q$G8J? o WnW)Iv! 4 l?"͸5#cm]SocXˬ`֯E:jҢq8DN։吴Y+ySŪiƊ.VO]&a +c^z<9KBlu<YKlhoDkbϳ}s %wbWϲX'uh+n_. asxLq;kYf2!e߈@X55_6ūAśZxSZXZ(4g{8S ⻡f-ccwc?TpaS}oX~0XxAB2dL&3XHz-mt2cuo>'|kau۷)4$v}9xVϛ%| dD@cL'XdbuAHm/W4Se, }Z֦%W4SJ0Wb Z7y;k3 kDASKSԠߍn2h =}Egg5`a}aN9ﰜSbG$i0dkYm8{^X1x30Ƃ{ȟ޴mv?U=Jwx=+J_I'[*+i^qw_z %ub9Qղٍdj lٺ/{_CIa5C; Y /C/ޝ)C9=`ު!bDCB/N= 5;/.Wnվf~?oeD⵻A+Y&SdbdgRI/vjxr2vR{\$5P/j4V-vΈt~˷dX7>da+l/NWoηJo],kz|2JRZ=LY>kbSoaZ! civX0;iېp㱁xO(l.Rf-޳­ϑjXH3l"8D|(a$kB滔>s][l)?S|e3 }fm=,Ԅf?~VpdkViaN^[<(u| Y~crX1HZ{SĄ'jD ~6#oJ_$dzO7jbԞ=&[8)V][E?v>1 шȡF`~Q%=T4U&ܘa}RL4~T`ǘȯ09v.A>Ae{@ o2z.MXebjE[U_7lIB']7g/JxͲ#R{;9z=bqf:ATf4>|Dz\4(.UpuTQkJR꫐󇒚ߓ3p?_RNPzrG֖v{Z37[- 7v̐1qO)nhEk .]i`by3te:/E^˧c}::n? Vu2S]~~Uh+X[QՎ{I>pb1"-={CwRAncD^/m3AC1=]&==$t7^'=3Ƌai>;hSsSzv4D:%@ź1רصaKLCi߻OXYnopԢ >_d0!C}m7,fVۄ2OqDͷsդoqqQBc+ [54FțHm+LҮ][+d4.68שԸ&L3ck7 #WJ=Ē$R6z'8lM~}ueE>V]ok|iV`,ERuwT-1Mk# ^3rc$ihF& wM{V2q "~,}Q}-A´0̇lυ2ǨԢӃuѮ$2:$bmue@kUA:cUƔ1R!1m» {$BVj&/2g028nMӅ\B5? u+#bZʮY">?74Eax켌i#yG# mY%cQȓw,w.&_Vl; g+|ߜlP%/GR"K- e #9i/4 F?`[]dh0槟3/4^5/SDsut̞ѾS0o-g޶\1T+mRjYt;&Ui9]W '+wb;#{|UqPv_h6.~/V IRwu:4P4lתjs^&\?u?F,RnѕPKJ Hħ>ÑGj؀ϣ}_O*F!|=]/b:t9M9hN64c'˅i^qKGcJnhT [Q5fB<b]iIM3A9]쁱Â5c{,m_^s[D.7[*\xcܒPrDC3_U/q_j;v4?Ī7|<l佷X=p7m0e_}2)wb\;ǦZ+-iChg@fi/snNN0cl'2*_ wtGrc M.FRF83T7.Ney,Ay RpJR9l0Grԥ +Vv4I@opw:-e.ҝgρʥX{օX6&ǝCZUFe> stream xڍT[6NH׀ttww003 ] H %HHI^{k}ߚf~g}}fְ0;A*0(G_mh.ca1# x,& O0 *_ E)!DmD$D%!<$Jv`6/@y(~`'gr<؁qqQy7hh!Anv! !]Kڹy`3 9~ бs)` `sDyHH/`Ѕ"p4 +w?޿@:@WEA~ 0bg$N"CV>OC~+ PEDݏBa>ЀP_e8x`w/s!""; tF2@A`G/@xx DAN`(?ё05=K~^?Y!B>b>#3MsUe?%mTPx<"0 q/_u# W>'e?`3 ҁ! #@W7#/䷝/na @N6 9 ]m;4Cx/9@Tnk `(H u dž2+DJ  ~ yȕ0 @9 bBa Yc`E|v?  GB:߆ KC5cHӯrBo A6(tCzLB)O7N zӤhV&I>%%[mhN璻n 쒘1 _}Ԝy1b8eSpBg<7MĜwYBgŚu"/Hk0Qkz*_*Vf$3QEۊ~-|2$줣zOXW#Lx^of+e[j3w}KHI,\ m%I)kۄA iЧ "zzҭTTO]ek!7j34nۻΑS1LhYWVu$&"` ݪr SLI&BDEF$vPup%"Cf I]+jjDƞKIg?8uDܰyOu) famQ2 vW|&Tt~Pq iœDž \47X@b{f7m^uY &fNwe5\bڏJ 1EB[;Wb-:/p<[. X^I> [6W+(-D ma1 V"*vn9Lpʋ؂\"/>d~Gx ?]!h^}Zg+Op`ԝF)L+ZyTIyX֝঍`0< l=^Taח7: tgeG9IhY7! *?k8 ҫ){9 !P~cljvs9NRk14]Adi1L/ j>[UEmGhV$2ߋ5W6YSɜ/C^rc夳n~d'RA>Ũ.AWܐld\2YA1 ֘ѻ0U1A2=AztY;bp1S\i#LoŌR|}%g<*Y9!|. yk=k\2a5WvPdCc=F͉qOHq΢#C7IE۴Xtr£K%j2=l\-{x 眏&@!QO3hS(MD'UT(#hQ̱# @_ޮDP/:y07B&^@5Vq@NΆB|Mb#FPl^,J-NU34яjyc@j2{Et+NBQwt%Fë։ǰa[YϬH I[o769r߆/N5v2I&fzY (H|,~1y09}UIjŇ53=8,W86LzW C?n6~ "Щ C9qfVwZ@iSB]c51cWku+;Ǎvtf(e;ԍ)2kO6X1ïp$\{\u,m^w#I$oVKKR+ P OIDXլ*2VJ}w2EFK v?Kz1ܕpaԁ KbPbM2hd-b-Bދy$"ZM\Z\>2_h5b7aȟlDV 9Ȯ4aGr1m6=RYUjsm؏fpľ47i-B̏&{w%~h}wXJeD3%o'\OK ߦ+7߿ZDO<~ʍZSl9aR /;$8.,j(HO ܩgj7ZQ t1}Qhs$])h6?!ʟoeF""=V ~ѷu~#xKM۹zt NLu67]HwÄ]%Qv1]^,gs2̱u)ZMC" ̔0O#Ds~@`OO?܄fYTcN#T))' bW"t dGa8=&ԟ\ꌏ4/I}]:xqƯ_}Wσ(i[ ^@ag]lRS]kX CkBxNeY_J`VU2?Upb8_:Pf1]|=/ ;KwZIs X<;h2}r˃C^2ו6``-x@"6g*Yx:x-ǗϴFEG(eŮcq.+84P~*Zu֤JS=YJW f%}Bu?/x1fX=, Wz>,Sᬮڰ};0+!Aw笣94ڽ#3ԙ+9E6@/j"E@?cjI>թ^s?LI <.r^Qg:ING5B=k%pŝe٩Գ6>/VoP2b}68p6w ='׏+>1hk; .]F:ХZPDq8L4~If]s-q0J p(q& #LMC5?;ֈ57ld9ݗ *'Q7x|*\A"JP,ΆHXTi3ݭC]&OGzW5cG$O 9Rǭ97(Ĥ}QRn~gs`+U柅4AE[+('Usҁ )aҔ/82R2pvUb`5`[\|OlaUw*Xy!c-eDnBNhiDQm{WL)|/tҊ޲4NS+6Wyuh k?3a XX9Is։tC)l@9 [@ni?ҁ/CZzJm;n6cf TX5݇ h.*H\GvC )e8wvV ]6Q!j}IJ>V%!]4dSFJ.R28S#/]]]ԑaۊn_+bfʝzvg=Oa^A?Gm>Nkޭ2-acN$z@gfb\OV٦%Xtl 6N;w#TBf.GRЍ`t(c}!f-R@ q9c>}>?oB5W͜K&m W?}ȗwr[ UQgΡpjSH*:XwQ R7r-ҢecB1YW"Y *_^kNDEqUwΘwDIe3.q44ZMNo$ClkKΑ|Qh}nFg/ּZm('||:9JL53jYtVUa}C XE z΍Ot,0GlcBqNWgqwpf3oCQm!5:Wm p°Wl:۝ü4D7y\k~4 מ]P}fM”J7Cr$q6ن$fC*nli޺l!QI ^'!VmxY܏{wMq!!?(P{E']y"[@Y9㋫aZP"4VQK_Rtd^ͲaFfwW'=RUDyev.5g#FfBx4?T1܊=-A lV6rՐּ콥k4 ˭ymT(|aXx9):+5>'IƊjւXA>AQ <|s @e(jj@m̔2Rw!:ƍ7ES\nl8?vv $] b :| 8.Jj$yDQ9[WCD*oTcdb TnK)*?-058|{jo Wr,pY +D¬]Of t#!ۇH_H24֝*Y~ u5q--B5c uLWFOD'e\G1-GB29idN#2ĹENuprڟESB\C"Y7Ss(, >08^c[g*0ɷ.zDg/8)=X;NTOҭLépO1 uM}pg.{: U׺kz[>6SqBSLߜ78*K™8?湪z)n~r`{жV.BySv{ZӊZ)m>"UV0Y 0El)ɌGHb {gfX3<cYT]֪"N޾s^)^~6^90Uye&s)bJGI^MccIh~xo{DB5Cy3u-x7Fm7+^ZM1cj> g9ڲD$Kclܤ}n~/~5!`@橔h%7S2IC.(}hؼGe> }oJ|a=WN1Ъ^;#HlPDn!FGi*euAӇ*H饿d{CcoFcrXr} BِX,tG|p*&Jf/leP5zr36j _?迢87/t$SQc{Sl࣭Dd}קs|6~9|#iγ "NQ"O(Mptm Tk70_"4e9qF.ѮNz:,$!+ׁtu-JM&Ď .vE?O 礋˽ ):5ٻu_JcGd=m=$@ $< =mƧPwi@!]9\C<:بsRd/5USW1KFBz|Pͼ%'Mu:-KK4]h\K,m}`kL-'x1cTB{)psTӥ8܍(#"sUz}})&/{ P? nIڹUR$ 0yq +? >|Y^RIbw!1GË}Ž(Zd_-m\*avoLwK~ ,]kii Q Hde_mQ)Zq8;ϚY ڂr4a4Nusаz)Q\ߙTD*_ɋ8>(&IHz*b3Ձ:l#f(m24WsHcfvpGD&0ф1nonNkOۺV.J?~8Yn[@c8w\LLj>k\;=M[Y**< ,N[I:lRWcɅwQxFcHV4)*ksӉѾo؟l V}jss)j9<X㤡mbAίPZxDBH& (p($姳A2z endstream endobj 773 0 obj << /Length1 1238 /Length2 3672 /Length3 0 /Length 4555 /Filter /FlateDecode >> stream xuT 8m$e!KɘdMem13f"TlY+"JxoٷRX .}}g-QGA9o P( U䐒%2CAuLT`0u*B )@3800/ @ad*8v.\LOE!;I %@/Ca tPD ڍ "Oz)hĩf]ē1H?2'2(8Hn `x 0q e\b (ĨF&!h' ),JV@&DF  vL=@;6܎2`pH,2+5@39D@12'z+F$GbA & x AUq$Ae2J($ )hIuw\aBav $b2A `]o} b]~ (XEɝv( 7q.qh ?! 1d2ŭv waP?bn5δl?2`4Pan Ɔfr_nXģv|+D"x42pƸd賳(n'3Rϸ "ΛQ N+ +!Sp"X~SUa Oܙp5@Da5fϩC~31%\2񎵻wN}JP@jJU`ꃠ#5ݓRGҚ;ti**i5j6D߭gl=2wGَG˅Z=qKұ3}3if{yF^ͥ׏,EJ?9Zl['<7[1VG>!.⏞Vpf+8ku7.jfc2eJ堇lHLH'4d! fز}eSɌ)1::f6.w6l~J0)G&ZiM`+Ega%K6QFL*`euÚo$kA qCM/o+P C#TD뮃&e qn(♶6ke+S*4 ji=Tu%u>qֱY* =}Rӫ &oV2h2,28WJ.@"}Gs}2Z| 8e(05\D2#f!p0is/?R_iAfvF}=+FnZ۝?ˊlsĹW \^fXHx{1Lb5f&>.ܾ%ꌍx) ƽX8"/2Gn)%&jC Aɟ>?3۳-%L]Dg;SŒ6ׄ]&maC^oq \jSPD>Wp8bYBSܺ#2dT ꚰ9Tb][3CbRJlRG{ ^RdD/auUiѼهˤD6Wz}}$rs?df\V?[]C h/; C)~j1JE.ᚋ ơ6^ݦRMd\0;={F?^p ;폘.eOx\~{hvrij{ypHʹ.7%`'of 4 wUQn]Ź(\ihiAհڷ=}Ol:'=ȑiDf"s4J1ʔSnS4Z2Y{ywuKQv {cZ&FdZiB 2EyuF}{T¶RsY+U[)N.&qG*>0Z|R՚K,GE:x:=}>rs|~ |g2ک?+|S&{eU43hYu|4tGҌqLޚrnۙ+e[ٓ_~Ҕs:'Ӟ5 VuRY(q~i2v^W&>Y'q&nnDqWAb'#f]+IݵV7Vo0Y~hy,g<$?Mѷi>1Gj5Z7x=1*4L_^ˤTgfF}HdWs%#WsFVa]hn g'wMp(6! i<i$Zn9qiZ2)p{c;LXvO;;Bn5)ۙrZA p|DgJz_vRϡKԧs뿚K;N[x譼`f{9ޮ~h l_P6w<HVxÎ??Rhjq g#y^*[x=^myާ|0ܸ4 ܂}?IH [oX#O})j {a5CUo aoe\ y|9.x5|fkԊ*|?c\sǾK?FC3?tcs+>9&)?@,mHCO$gޯaǺW?\ϓ],$ %1χ<ԥ߉A5=뽸IҦ)"Arj55s# 3Λ_5p;k \A8)/4}Y=]ߐ+[Eni[(=z"' S~~cK:?݃i#wSƹ!^ ܭH0ܶ =xP:}j/aw0^ZY:D; O y1ۋdoQbRdwAj%p/H:Y0s/ԯ3M:%xmo.b>/D깙GMc濟׾%{d(4|Q;K :7Js#ܪ_wk}AK*έ2ZڝV9[zy 7B:y(ewKk{YAa endstream endobj 775 0 obj << /Length1 1247 /Length2 3578 /Length3 0 /Length 4451 /Filter /FlateDecode >> stream xuW 8m&)k_<5e'D$m63Øh,w"R*ʾڢ!%}xxc뼶9?ii-ÐFxY,,xs(-w bDA,D$ d`DP `U  49E8``  0p2C08qnx7y#$Z&@_٥ZnH7^ʱ6ɬv-<_:w 2$tk tv_g; e?7zGШ%11+4)qK XY=xnCO/+lCM.9HaY#LUCϬm2k9PcjsêM$<̂5nv?0Ek5ݑJ7ssF،xPץrFiwdf2WԂr+P 8:8}p̃zF}> daqJ|_tXHbdŲ{:8f)m+y&(TW-Ot8XjpʏM+.Yb!}[Fo}zt#"]QF۩$_۸L?chc _ ไbyqYK[;H'7o'N}=4Z=z!k4N9ZBjaq`UK'gwd>dږj04 8rIh*Jϼ4s9o`򺩲A"p4z\Hvƴ(cD|k9;p&lba~]`'v9H0~m=({U-w~nqkZy2-C@k"}8?8(ӆmsm*]GԆ_bD;n u/ny$䗞@F'Z9O"dFƖԈl9+7&xN^+,hP%HQv֭`oKyugw.7ecW[g|¦)w_lØf7YQzM`wu0xVWԊJg%X**v}Hqfy{$y[d9:Bw5wSe!/kVIMM-cck ܘN`%?}yU5,1!R 6.ɠ.+d+.(|fը%d΅e(^A+%\71Q=j9ς&C_Jk Z[6?Mv~z,dg٪SQf Ş^lZEeitxAԩUh.z)1Lǹ*. >hP<,Qg1o&V jb@_N{pl$[q݋ ̹{| N_ k8FɱqL(QtXqIs2 [lNsZϱd&S, &2'U8%a?ˍoh ]RI5.>2Ms 2F[}AArGr/ei 9tO"Q٧t7*\GGTw;v"}%f$ߖ6\8&X#kQBbք}[qVɲn8>9UCuK6w޹W*5YW*3JvkGˠ혯}Jy`kcpܿƒJەVsw`KU؈54\ɽ,bsJ+}Z\A?&O mSً7&tG겂e"!Q6#Nƹ_+5>dpV|ЧObo6Lg!--۔J+>[:>Wr(p6!*w&VEl6.[nXbр-Dsw6(jqy0k?|a5\ԅ:A'}Źr4K>.,7hi7`ٳ{ J>w?n& GV Q۪_`g8]ipv;\:azB/^$u#Q[z-u.Q닂/g7ìN’Vqt/ݵ"ddfҮv&^ͫ 1l){[`HaMz澜&Ilڟ`=a諛$ pXIKT %v{o҂;I ;&wb__ͪ=Kޛ?Tbx"x4}_3զ%)W_hq-̯!oե׵"zMN»vCMnfKVmmc:w3i*b7 DŽWo"ʮR4lA=i6z q3;- g6w&8!/ AƊBYa=lQ"^CuyQ76!`V&^8i$CwB{=_)qm)= v&:?t_Rߘ9NmC)svsr~" - ~"[>+=4F!Xʫ^d]iSͪS$(v||gLRT2 endstream endobj 777 0 obj << /Length1 1614 /Length2 19827 /Length3 0 /Length 20665 /Filter /FlateDecode >> stream xڬctf]%v=mvU'VŶmb6*N*m}ݿgkͽ9J&vF@ ;['zf& ௙\hdag+fhMb@c  jg`afAMKK_BFhaf :NTN@5 CZA@% JF9 c#`jb ; @ci@7c?.:=;``hwNv [ckgKo__0%;G'Gc {'ߪJbڎ;ӿ&v/_# O-# o`pv5/t5/__} Ͷ7rprZ21i-?[Evg?{/ C;[kw QoI D Or-lm`h7 w @%XX{&?8P BL Lapp(Y8L N_ W gfbo>5s c+.W3~UUo*nD.Asx3Y|Yٽb@o3iE'A^ bf--& ew(©V'j?R|? G{$XNFڂ3GᡞȾ}|ڜXXr^ClS$'wOW2X7B MŠ~`9e%}dS{\3pTV_{H"RB@_ugg!x0뤁˩ $IN[mkĸq) ӴIb"&g~!IJ맣_n ZlVh"}ԟ1_e !~r}NpMk`~udrnmwLA[zک':%D3̘PCˆSwa R&E (ŧ#J~QJHExUTv&"zj(MFa[Y.$DSYBn^s{ '(::YS4?7Db13a:JatY w Ub~h2A}fŇ;#Kn}S=/ЬlUll=Q /j+VvqNT-=W7OJnHQDZ.uKv*'u':ģX[rzB^@֡q^aإW(br' O3bW:EZ-**uJh'oF`SLN#(D'6.}HИGzq/JL޹5#;n6 MڹreI0dB% 2[!)\BDH=uB8?.lZ,Jv_$מWlV!,vj~{|UF*a>P0ɼ VSUȾijaQ/N= EŶlQv9k?>Ygng}L|qI _DZ% #ћB,pcjAE׍61 9;Kfz;QY{+5A@BڽUx;RTUeRV.wGEzlcho~lc_Gͯܒ>t>Wl.0__q&ܻV텢,[ũc;x =W/;,!^XZ]~&y_':1TWنWHP9S7mRkq`{:m>UtȔ1͑+MKq|W glwYrla+7pA[+1O7WH t\7Pof'L(&1}P@0JVw0.T"|4VؼZJw(ce TYY|]xnut7Ap}P~X%S)AK͢\*O(z}J+j/l=J*Il>ye7!&Tn9+}MֶA!r,daѫ{Gؖ"i❋0:1EIe'e95Wr㬏z[ [}Xv:g-4gHT3")~ЭȑE,T'񃖔kh ӽC^|M}tm8V+P~NanlXNpd)GfB^dS:}H0(T6]] vܤGM~:Rk@}^0j>@a|732+èn)=T(RDN̬FkQ;v.eبN-,,L6gx׷,ӵ:JCʟ=kE}} LErܞ$h~o~e 8f^4Q'}Nvbo ٙ._`ľ5 ԌXR5TBLw}{pg `ʀakK.<(fl H#ֽDSdf%jd{vYitqSHX9L њ=ս4]({1,|>?{[N=jvQ"N6NJcF=6D?:?"]b[x[ojuI4-* R_[?${96%m¦!Xm.(x XnjnDz.K]?OpݣȥzF (Saؔn{vMAd^~jUu)9?uֻBFVH }AѦ~-,5'KqHG<)SpX'HjiWx*V\u"m13NX EH޻̜L"7BY-3п6״at1o)21Yh=>-qPҝG׎SE c"dx?7p'ںH_8piZK̽@4YMTy6gw:'78w7n+&q[) d[(ld7>`vigTPD *MBQ^ xB*!n2RR,1R>qJ' γb96,\#iҔ"^vTlra ~N9[^(wǢjT,Q;[/Gl/0Y:xp{J{U'=8pիse MǤqn`?RdF $[D/r<n^.HԔtzŝ *(PI_ơŜ$["xxA, ۑ5zryD@!!&L !3Mc|I]b*)gE(" 8H+1dKYT@SL%z׮D}ٮYND*c#lreP.&E|o}#t,OYeDzJMlv~)-F\gI<9p4ƉHڂ}"K%u&fԈv)Ŗ4_9{FGoְ"YKĬ)FDyşD@q^s5:iY,L?+ke7مW O# >ewv*aL1qŪwl6l#Y 졡ͯĻ;P =kxdZ&_THwfjGX?uzz`9Je1Њd⽱.FrZK%^VЇޚWc)fN= W& ٖȻ [Ag'y<*zA"uHfgvn/L7'=kgprROqWAeO/ɝt-1AjmD5x0Rn @L,+y`yۗx[A,Y=5ON؍iӠ9QggnP*3)=-:E +[p,]Ͷ51>S+4)e<݈(Ռ?d BݚRj)Oa#3g蓦L1fGD>m8V <О" /H?(Ӧ%o[؇6_FI܀t]v%WZ{?EUU e897 Hv^@ZCG>T!9? O 'pb ǥa ꊴ Tmaa!IlF?ƕ*2LNjH;8 -BW%u罽8sS4*^6W~4c5 %ْ+R}θ{ˮaod~pv|'H\ӂbh AC,).fcݳ Y8MIhoT[v/^87P~ؕ5j d\+\*9$P+z:CߓY yjl /ĈHփTfj%V[oT==w (8xFTpo~49nˣzhz4ɑȏބ@ElU.y6fJ7u t,ú+ADŽ|oGI!I@ Բ{xe}DK (Ѵ9ƄS-(r vi@YrA-VM[]F/5+At񑚾Bo36*m]tdX՞?mwV\`8 V<%SoXWظ>pE~ MB*0vyB-]=RmaϻÆ *^03 Z.3BZ^c'2}Yl ڻB6$k|~pm>fOSYptpAx_d`?g.( AxE~*f3e=T Y GBfH<2ߜ#X.6 V:"|w#uf/-BnZb!í*Apk8KXK|7;"#⥆{6)F#b.u^V8.TqdEudPOD6AyY˩#m}L ,t]oY`#%(0J`Vc!/^O;~RP3<>'q~bΆF(qwCuNP%BR|1I`.<);.^铓,sb-iY0WDؑ "Cn)zbc>~Mɑ6ѭ ׮2R]_@a. PAkLo'[>U1wbR#29RxyaKgUr 6Fpiuf?jY#>1f<ypI߲3,?%rl*J#{9 =7a!,g'$u-%GXDn"MvR3EP\pW@Fa@2|"sI_+%>t1me${LL0z@Q7-SRGjM?? >(7H8 fzXcsNMҎ~H?h\fq~טF6ɋCBˎ(#nmZ?{W#Jni!X8e_]8?Ɨ[ᣏA0]CӘ^ui}B f/Gׇi)DI}δ3K=|U>QDM.VX.&h'Ǟ Eq\;=-DdA>ִ%"ZpE!0xVsyUs~35KLxd'C9dC)8cud<#v>U]0V J~FzɀV9}2&JDɬzw/j jrBLe"V{EgUN>a)QM7"~pHg8:>OߺαZmH^w _Z^?% 8p#v|f&>;*EeD05L䝌شq74AI:cM`vTrl_m5oU+w X꿊9UXh[S, b',LYը֐ asl~7N?1)^xX'+6?\&9SRN19I܎2+5qI#ãdʛskC}R9"x+QLԜAQW ҏoJAa7@[Z7FeU>'`C} zgt?+jyn޸ՙ)f节+C`Zslԧo,æ$4"og>A  SOʯz71Q}'ȟi4fںsm>b* J'/4r*,sbhZsL& hT¾Uym"# ^pmDpА 7V.%El$%n([tFS+b@i}gɄhK,#~rUk>5w^#8TŶ5wI9Yy>=}WŮWis^)dE) > 2EQR1& B?DOJkqE,f(.Lh>$F;-J!jFCSzBzʇobtvcSyICmT[ɟxY7n2l 의0l~vI(-A U>qKM=kmg<o6pAu>''?.V۷oݯڵ^c"J{t zw?Qr~7}9!p8!K~Q7Q)D\|c}g!(mC dD^٨!}dN!;ff 9ƆpfwP/s(WsViY[Kݫ(־S&W J=D 򩝋Iqjtc)*tTJvZ˓oS'(ܳiZU`Do3)S7RN a]#ߡ{;pGKxj|%!@ ;SvhϓUn?.vzYa"e>_Ѫ)m *~.̔gX{i׊lAC6T_m[U&ZEqQg{o}6FhH$WZğ?#nFnr@L<! fucf 3ʍH0p6["'ߖWBpMCLcSfipK-Cngsf<+)md@1qE* nwKO6>ob%T~0P˦洶};pҔ#;9) ?Bwq`dnJ^uVԖ U$ p]̟hdgց,\_9e8 :@Aqz%G0Ꭷ$"E۳|%ۃTWKSO }eK.ey1bw#$gO!qS(%ɐ>o:H>#_lb"G"wt- N [dg#y 12ھq3֜,Kv LVy~C(C!2oIӆ$M>IS0JBzQ 䄱^,_-2?V<s-Bg{iV>K"⎷=nfDz9p"&vw,+?;J,1D Fl &.ep21A0" ؽ80dw yȡț{݉5FB§h;#93%QYcg-k$~] Rܻȧ;B_)?0f@UG# k.k\NHng^'WO RP^r"8թqEO^g<,L.m.TpE po4&p@BҾ $umꆲ{+CJ]VJcQW)5Cu?]c=j0x&u㯯cOa .]g6?6q7pLAq'scQ]c7q,x#w(q(V޸R1ٶuBWb4PJv3uOvnyr@In*dɣ\#RhWQ`2S'D|42"رu'vRw*u59U?`S0YG<{ߘ\SS{P*)қ][Xj\1oi~@7+Duu!I. y-ʨVfi Yrx'D2X}Z[nBX"rǓ .jdT~PoutB Jd7~JuS1nwP^5ĹxN:|0jdcR-$|כ/6X_RdJAdۅ}3 as66m_0 KnBP:|8ߗT|(C͓~_C<90`22'|5G恖BRKMɹDRT eH` ogrϴ}|ך&啻gn1\ hc'鯥ZnR~.=oV{i G,(uv#di ),6}Q9m('#}-#̚`}dTBT`ߺ'ZY KQqv_1?@KGt$B(.es!q hR#?{ނ3ՖMY`\K>A#XCpyA1x `#yc U9Ԕ'3̓ 砳I12ڨrx GJ:v^K݀4r5*w:=~l DT[~%4NKhO#[=2FUQ*F`SJؙ?9qz(OR% 'x<]3)4vzd,=B")y019ԯFR>7FWV2)fjKhqmc)/5#qm3j։XۆcD(}mE]LjQtH(_^OH)ׅ{ufLJ3 7JP߸+(ʪϦNA~ȵ.ɋ}wfwDX^lPϯ S1L!wi)Vzc1jeyvkᕉ ɷ)&y,*$eFĞԦbdΏguzya#mzq\d-N8{^L1Ԡ滷C=ܻMhwlVX `gxH94!>n DBǹ}a޸h#_8s<0Ve15N X1uȊ[:.ƲϠ:glvjt`҈Pw}`%ۛ}+u], 67W6!fN ݹ>i؂#nHt0&VGOXcuܿ@[L0XZ*ſC~L#'q EeO4K'ڋO1;ςj>K>Ev;Q^j(  SQ(#U"J*}H^8:)CPw*Ijrku6f%>kQ#e^lW )+{;Nq3kl>21lܢ߉b<ӣ-Eb|O*Mp8+ e䢝K"`S_:V?HG!&-Қ rz7%+!Lns;W1i<N] 7=g1Ąw%A1y\]/F"y#"V[t qYR1_s78TZp{! 2pLf\#=#]Vs؎JSFmȒ#' LfMtУ>x Ҭ8=%[FX1]o}%DZ雀g#`Yy2Db_-6DM,oQ*>,{s0m?4No(SIEtx͙w<ӓ|e]Y 2I/7#VQ?fh4`@igRod3d`-oӟ%fo_S5{'qHd~eٱ xKl^XKug0ȵmU%܏ٍ( )!wDZ./poU5%$/G)& џ)5M\]Sj0H{t \?x tG4urs{} (|~"pMJF -c RY LZ!5%vu=Q@l=iO%[7,0<:PnvxJ# `7H~򆤮(_ _]m (A@jzVoLp=k>0 ܤb{j}m rI sxruFMM*[r{TafnO.RDðD8 zaZȮ@TC%qߎ|-m4?Y83\WP1~pj~$!ThB2$~aGj-x9F϶RM")smAI%ڛ~8c6OCu1p_hj,PWSgdIs@wK)#1eۢ~_U`EmkoJZ$Q0{' [S C2Յ-z>oIXV`U,Epg` jbkz(ߘ h0vzDVMq8b$k, '=Ae@4҄nk }cVc(=tp֧èZ8M8V7[,Bhl 楯󵼙8 P'KٷCaUuo6F1W > >84$$ܘčaOg%1u(R[n{3z(L/f/'L70"oz[*&L>bA)mo_@ڟ>fVC`eOnT#yWQ!Y}hiYR%8=d\1PNf,dvaGZBTW3$m%]^*Ȭ!}z=V`4H25WiZ1d\?6#@yw -,9u)'.]jF_I.~a ;j*yEΏ9Ϥ`.Ƭ;&{#hGe(agUA胵!fKbd-5a!##.d ~=t.߇"O:횎~mO d|##|N=TW[L[5Q5b_`pO"KeQxOq^;N@_doUjCŒ4S~:2z_L=]2H)Kj6JAǠBjqQ!GhZOɱƴ?aR^aV>S pd**;57&VoUOw9DEb0||%|:Y'c8JMIX{Gaʈ37aLwus|D5H&";B*qB +ф?0Jjj:&N(Vy6)]*Od8 fx ti$b}&nҤyM%r/e;biw֗ YrgD&0bhV ijR@/XÏ= NxS9ZxTPOt:} p;mo>Aŝ*Z_1M뭚%^cr1q6=AhS:Ju6m4bgWTtfp9`bs׿Jk]V-+8|{<?)ADTJG8UOBёQmT΋Z+eB?ڮmD^*80h4/h]u(1mU H蘲[2QB`ƭWl L朤+Mjm^kUkݗ}|͠^`|6VݳEMKRCM˺-`Cq~Y,ȴ1&S j3{~4rE$TOm}]6 !fT3 AA$a,Eu[^vT0uQ#{&~L875r- #6]̺^GIh]C(FY9WJG-$^q>: Du&"pV鐶s)VGd 0&ҦB*3R#!e>}ͬI!D=@e-ݖ^ZGvH=j룈3r,/>aV9QQCMfI,gnZ8\0w(m#-ʁQ1DX_|.5 vh&YDMN҂s",| Ǽ =m|(Fe3[<h50*L_*ʨ ,yhczj 0: ՛J-`=FaAsvkd :J*6ajZ̪ >t9WrWvAG ړ|䆭h>[\RH Ō] EDO>7Ug,eHez 1eLgn+{x7gДR &<~.zeC[ ج߉"a~P{>.?$`?^i/I.Xqp.qKĵ_TT`h+FgL;W mރ?we0aƘx'Ti6e0jҤ?+:v2  ͕;L"%.@%F4)B=Jߺ]10 ʩWxDGç a5)jj~Y\B:9'g$D}fMzŖvl9:]uEfٽNl96q]aՅS>z!M`{9GTZ|G`4/KwP.NWF[sXŌB lݒ"!,ҭ[V=$ 9pbvLTr7e=si0 dS}jla_T׼}7j$bk'.m {j!.eSMMω7䥛E޻X#-?$ă2td^oh4 } +@FBiڏБKDLbN9XL5q _)@>9'd'fpmO*1W΢'Ln^g R -AwN@ˬX/H!?!]|NO 8A H׈љQ42{OoN/Y`xXУ޺ } ֓QIYgGUe& ]uh䱷ug&ۙy| R%DCM)D|k]ˬ! դƊȍe[&Oz4$y/@7M9sӘ_ܓo< dJYj6{Ӌ9SYv ydpG#ATA7ɅljE [''QL݅GIu*334]-<-&r-lt5"=8 䱣C2=ߐ`KܙIB_z} aS]I& V(w.X5K; ~ZgQv"P*n=ߺZqS䯞?ze{{7Z:q{|){Ӆsxܠ$"'_OU0ag׏h-3n1FB[ȏF2iWHm{c>p.V93X{FvI{D!Roߪ8X*Ս`d(ǀU:2~R&[? yQܔ X;M5NoӟiBUR$N[PM04F1K5s=F`jp.<60Nt乡HE*, u"EaVxD? #MZ& :A5}B/_P˭hԙ^$()ps3+FE:M ]{\w_|s֭^Zt`mo}n.@r^,@6┾4,Kz"ep3qAb.TJŢhc]"/ËPl7 $npyrM+'Η zI`w#n+&ո)[7H#)[{ЏQU_6>J8]mpƷ3jc=^R1̹9v i&vs ,Bod,nf D Q5FC`9U6[r+)1JS_Ⱥ᥾G E(K=* )QP=ć9^0W\/TeP,>cu!D7|iэ^K|Crԫa*y'sG,paϴosxl$H7_@-27 Er w:Rgo>ʇNcm;|-M3+DT'HBey%]Hnl{> i9:W,ېN>ES4jF %rSuiO55+)\/9AWs$lb 6?^#(eɘ-n!0'[& o\"Dk5py׭^:LS\潐77X@L :c}{ge-?LyE%$|YBDzEjo>Q z=BA6dz!}?b$uVO9@t8Ǝzu@BC;'1GD -1l|);0˛*՟:{3E[a9 1G)ay!{P4]Ͷ@$N;A-l:?nM)Ǵ}@@K8s#V(Q۠c.GKA'S$4t%mθ6 *%Ti߉q`M 6IU\Gl=(x=X)ԯ/S+ٯǯ:(lYVvʅ%cNh#+|E( G}9෼k!_udz xm-x2VKD͏9Hc@Ħn8-#AnqYدG?z̕Q5y4.Th^6C2Tv-cPp"5xĀq**BNzAc;,& lߢM +p*o |> stream xڬUp]K%*bc13K3,1눙bfffff%D|͛+3k\U"67Ez!;#-CY]N^ON.4Yي<u @h `a0sssÓD-AԴte'`3,l_\v6@[_*@ dZX" R*  -ldma 0:vlM,)͉/d4; f E:X89}X8 mA{X[;C_Bv#l)9-AYE'On'nH;cJdha@2L, fh/ g' [b@p:X;U'vFO ')<3ߜƠ,lY*Rvf8oY3IZLv)Tw*3O"?qF&; I7)u_E'Q^s(E(-&I%ewVG'j?R? G{$XNF0³sӧGᡞ[C|ڜX8r^CloI wOWgxNtzR/SP mZNVeLy>J<=dlNFG-qG/=ہsd}S׈D/T=]'f>d e+"4'\7K5F{+!|ZU 5@ցl8cz\~ZlL9Cn6\?n+?;o/U[H'A=|4¦w.46H^䗅҂t0E떶(.-r>q aMUZRg+S'y"(6a1GP(8W$UNԴT7lVËjz1#*I&=f㓭@Cdc &R0{?3gINQ ~(YV8oRx6r((堉6&·ʟJINzӶLdˡEi2{[n< W+$P"Cbͤ~-ȅI>j]6x~_-ZJu';6Z`tw) ^d~.ywh/C=<Ԍ"!cYYBYLj5MQ. 5_j:;V lcRt+`4t +觏o2tY&3Op|ag2g7>-vK|O-BvpE/ $,d|hV`\v#Ut.8Faa*yN?krǜ`SYh#(ǫ+RKW(AMY֑KOG[EA~ k#"򵉤+qTpV / a4h`F+3Z*Rk@'yUT رjOINH;*5<9Qm>&v|(ݞy=%v(wN,%s>)& \e#ycO~T 'P7}O;+{bC]-q?8E7 xzY{[m*HF2'] {zz1ȹv{͘ d< p[v@X+3:JIr%𾟓$'h %jPQ ]{qűc=̧=l[L˙Q ,g*]G%˥±zZ;K5 a{vA ;y+G :mDQ@KJlm8*q^ZK/il*HxEl􁮺܁\x֣\q?qKf[r|5G( ak gľLUߐ=e4_x68SQF@>p'LWk/o¨ whfn]AJ$+t)|BzF13ǀ^8 gZu$l!<Zf&=FgU+Bt4 Ay[RGZGQߕn,U_R G/`XqYﹶ%+@)Ek)d.GEz/ʱN=ɝkt/EB'C _ёk2 @4T9ޘQB|JH"$`,$hA{/ގIȖ\x~s2i+TkpC2LbX?Zlys@9ӱ:M}RVMQםlNdU)Ȍ/vE/ 5D6}Qb5,FMt+w{t;ozZ \Q77_`TPEfu⦭w+ˎPmK]sao Rc-Q_)銋N9J,\%[o{`fIȣl0?/dl`|'Q,}C WF^BP?H$RFne'Y9ElP땒i;Gq*:c5t1Ll`6 g>,'ֺǑa{XM%>2u䄹rxb6!w!Pn>U9 YIкvfmH-> }oaf< ; ݜE•"2${זU_#:<gٽKX7I_K=~<4(fP$gksHؼsC\8Edpo,sڔ3d/AYi(BZ BZZ0C`[mIY*6#(Lȼ >YR({\/N̄nrl*Gs<[h7*Y<2L&~_Gh1~ЊL+)!_w>pJMgP dli_yyniMmAOB$)FЛ*GKat2DyfrV2J&ƴG|H7S}ڼfıɗ("$=vd*-L;[`HL@cK6!:x(;Գ5-ΙF>d׍~Mo}Ht37|goa)n 5Pw’45Q|?Ct7 cukLtrF^t ++!%R7ԀӦZ$36fG'+K4{A>ĐqzSLyesEJ`sv)MΤ>(gR=kڬ oE&Liw7?G>m1C҈6՚U+a_^> oXN*2lvt%7|\efDžH֩=jwq7%TLRJK׷ `t2:J([RX(<$>-?׎w~AՅPRҕH_W| }q4~'mGy\TC&am9)4GΫw<E$!/)Bfg?4>fs5tU̼< Y"OSzҾnه?K7M~7_V=M|1DbɕLQأ) DI5rw Fޕ"ȦJPI1>&҄kkōz-B?zS72 &|7JPoYc#PfGHK+ML>rs#ͻ\N0aC }Ȋ[n%iDQ'Ϯʽ$$ N}t -&4aa" &mއ*rY @UۍFݢPXiOUz+'zDk"f mQr-н35}EG`i<~m-?X)&L5nٵ-Skwä8};FVf zAnQ](toa/u<˅sj4Sn/@c>^k*Zgf74p4?EN|(&Oje=<ɋN3.m'Ij~C&^{иj(#vVȂF?,"#AÕÆu,NE1tY܇\SiMOχ3'|8$,o@ux@v]MxmqH[sÝw2Mܨkc:wJi sBygקOε]f,Ħ$ᾦ[|zmZk RQݜ<}:y!WLbrY;<1z/8e#ę,:p\xUo![UsF8 >P^A Kr)SxMy:6&{ =] cSKIZ0=Y^ZdY? ;iny>jǫ=( 7}QQ:ܑ,c!k սCc-rܗ QۼUCS^g/2/5YUW\C^mRBHuqlf'wy*At=G$9-KYR9:f?YnwCďe-Aw@-NT0i|XLj<:qf;?=;[UHj8҄}+.> M%ֵw,yox=Ij܌-exguNEӋ.ClSJ75v??#1= W&R䋝El)ʌ/n4Ի8n,mv`;֟扭?~ʩx+k6 No4$YkQ,̓A4+H:_~y'sFnIqJ[իWRz2VHYA@=A8XCbssnQt֟I[w<Ir#a&̯ln}l*!k옅Eݦ~r} "3š 5m0m͉0 )i8L8{)\j".Az3;gxO;~J 8EI:M ^y%Y\Y󡡇k QdO魠N@[%~oڣ.>- |v63hI,V1~j<%X%^/@㾣%V]1%u.%+s IbU`PE|tcrN!3K1Āf`5Œ_ˠCse;Rixо2spmx@oWq%HTmC"s01ɈQ|H걨 -\@Z"K)(^p64yC愒GZf XQUhIQErq6Pϼy yNW[+'l9It@3.w0?8\f$ Mݒ7 gl%-N.]\^ȃc&rbN&A#yxV,hUzW5n| rÀ f#}udiF[pB&ʒ,J,6i#>xMZ4w/.EX}yEIHsEz@-6HnBVGj NZv.8ۆ4tdU}r"ԟF2% YΫU.o.;u5hM͵XSd2oR/͛h՘fW.vbpvLuD+St,GV7KMʴ%Q/mlCK`v^0U{ɲW긶U(O9-\aq\8GH4ފU6 a ׁpj/Jw&Q ^1D!KYB_W6f#pެҝe7h]ϽҭӒsTr&9646ʩl\2eg B B=YȒGaDh}~&;;sԃ[P()[2F׽ثG-Z bH$矬:𸼈Fb>.@5;ֿM.3\%LVAmԬXSYކKYDd>؟Y#Qz6`TfƼ]#Y#iLפQAҹ􁎏݊s v:r+ŮIE)ӌv7zvDe1Yk.hiko}Ut˄hnq/Ru$֖;{> <9ּ~c+zy²./`qCd(VCZIєvR6nE"^.7fl|ԠsTYt:8]'c_ ;t 8[ɺʙ*!)$~\ǣq1P,u|FC9w(]=f".x xm ҲCy.i'|61uac8FJd=5&L iǝI]<ďwZ㦆lh{K?T3)#^RJS;p+H) `tC֔HV4w`ðʼS k>gT(j_:ʋQ_ٸ*"$#d5IŬ _Ή&JH]If zxbcC6IZG];LU=T Hߔ˛=cE}]tE6at0ZDT_xaR0{&fw.7M_lSX}@cU靁XEͮ{In4Tʑ嗈B.O6ShCV޾Tȉ*ߐifY] E{DY`iCI;kL`xgJ, #2uPjRcijſA D5N|m#2˃pF})?!%=o9zO1w U""b7MCc{_LSDHVUԊ?>=M_Ppgͤra(+iHk]U=R?Mp xՆo(ҙ_h̰{OLvz{s-4xlɧU_iD"Bvǣ 8ĩ9'6&*_Aܖl@}nv[FFOנoAw=!%6)J<.˞%%)LmFԑ)&MgʯeN {N۪:H|OShB/PMxX2tND/AA;t r>6-oKs(2#k OO0}%*OhR<9=I_#D302){ZQntӽ"Nh9M`:?-;/s _ik yg]`g;gbtH^ŲOu԰uGAwQ sO s@!JD/wγu~ !&Sj2c}DB7 0RitG81wz:0``ص|#9o5Flĺ¸>jr.@{.8Ay,\apn#٩l҄UmKհF"|[ +޵'Q}Y-v I]kK)ϳخ#[RZlA"4[l"hȯ ߹(X9F OMcn0<ihIon=eEOѬ뚍gy8TdeU tZk˸RW :e|r ̍na! Y4,aQeYRZ{=d9op>k"+$O*o:2WxS@09-e۝gtd,niB.0ؤwTx,|"2$r 6[W*/v{4:Gj8A~BG:_*vuxXFwЫdiodA臙 ՙKO ^o+m3RM9FWgq<1ڰ)ZWb,P0C_h +бcTOvs1t5>܈~ӵxD=V4S4?Oѿ[o_ՐouH=eybe==$b=L ztٗV5+̧g{S2Q@0/Jj&pLjFs 1_%1x`P] <{,'SςTV}e PUiA)-3B~kt&֨OIYOm z/tkL&VRh&0JFJypj'"mYr6[qvѥfKKU_fz=dj.'"p,ߚ `}hu8\@hA?"2:\&2wjlٷmUF~w {̨*7kI74%B%x,JS1'$ (Lsl eؽ+݂`.%a ;)>NUX$%/&vxgnW*JV^@g;ĮGbH ӹ* PӘ+p~яFZK[#kW/EސE",&2Qlm׋II@FZ8luAo~S` #+qKpXgiKWNǺ`upcFS. z [J&ϛى#B¨ =k;Z Έe.|%ҽ朲e[Z.']JWX*v~5eRA&O0_}>ZOfj1qf’  4]F +d&MEA錜?\vl`1\yksX5 "挧kȒ{l1a/zmxН2Xu:Xz&{U*g9aH# ?XK['$S0,ԡ,{tdҩ:=e cղͽȬR=*\W Q"zlv!$ޯS֛ ''!I;Z-D +c!JXV4'!8u_KE%q=Њ,rE;Y4=y~=ej-v_~9HO] 6t$lgh + VnzH}O*Zr0Mf7x(*؇$JR{jo8og5M7qSmk3[DqYǕc?w36P=>Gs]λJ{O[=CM ?HfƠD: 2$aQ~ i_U] F/|k y=%M5kGp~J?N5F|"ƒy݄C3/$""X<]=j,ɲ G0p2]9N:aYC))jWo]ɠh+x)6g:MŽ!\c?}psjJ)TL 9*-ƬXt`43:b"l/Nշg5sLéaU1vQw[=U8fD )$FJV 5`:jI%9-Z3$\Se7gqbyc>[2^T4efӪ :e +#E˾y{<Dz}76p w5T!6 մsɀV o%ػ-R/j" 1typl츢Sd,<k7r<8mYOG=<+Xznqw9<a& 豎]7Ri4۩j'R8U@%ƠA,ۑI[4 WWhIS\6 2~y+HLbz/Uky0ϊ ︩wY= NZ UkۈK%d(rKIυ@kR=KnavX}EtI{׶>|r}c,aiE2yž@Ip\5ET٘m-?5šq2J:Wm j<.)}M?+ XY4SIҊhG[̫PJĊXL6R֤_oK}Ej][|D+-D,|'4 m@̵z?۝U6$u|GG ڻ Ȍg6qd(v.">:ux )^:#<πXU^KCهM.rD^k:A5M^ rR\J/Ʌp6ZptGUǹ@U(O`-wcgM f\65 +]o&uz4QԒ~}pa)R,cO*_7ʺ &ahGGL,qCjLKY:-- r;>CyƐawWW4`c,QEunǛOlx'֌P}57Bd\X`%.q3]J-i6Y;6SD5e x㯋 +ztOK0 *?ig={ =g5NhSqރO"CrE!#X Sn-ǀTfA 'ncKkҟm\՛EW!$EpcjJRk,֖կ0-=vSS.c>g*ܤɨ-UbG(`vu69*4Yq|}vQ6C/G6qSr$w`&+ ~H6F?lӣQj̾5RQHCGvNA#H>9:l=n ;o9 յ6kU0yɽn྿<9JZ{NCeB7KoyΑRQ&àO'qq#JX᱅WdT蟨:9Dp'"הDu_Kga G*uƄ;<NÛ=M])!n\Orm^D&<4l Lok?3ppeÚGEd֗q{܄E q.@#P튟hZnԱW)酞OC [j"ЉҙV]bwyVfCJ.Uܗ؄ww cɡ-kMn {: eK"aùcyU(֪D~kjX~m0@;v'&M!)B}$q̻K{E~c֫n嵅k!Wbm !%Ԃɑ18.#ֆmmTx}B.rv qĶ| '7V#г0Kee2xaҒh2MW\Ii+yv`%z8+բa> N~լ\ β\NX; ҟzzESfK WQZ"ts9t5f"25j[V;H=/\FӜ\\=gb1"-i I˨8Ű_"-=+…>npU\=:Yi$e虂WLvHvz6/~_me}3 2:Z+C0ٽ~ 3Sv%|5@kdo̎ }|i׮@"j@՝hV;4vqvr\_헩T1j;uŜ]enͅ&^we  7qB':9}#%Zg>TCRcF׬mz^~coHg0<һx_xx#tRbx@lw^.5^t͋vbx"BvNV*aQn"G6l;q$F6 +D5w/ni20@@I[Kbb ߆͟E|P0T+qRI/cbւ0)VS$D".#m84J}j+VICChH`*/Ng*Rhv$EL>QΘڗI+*K.g~ClU77F^Psh+V-\Wp.ɋOtR)so ;O2~!c73RmK,1ů>?ÕÈs]IiF75`D r7|'u4FDi"KENQa>e8_BYN(Ss9=b^za:߰pš" s22<+@f  @s-iVN9UB|sB]w(<7c郧!5pς=Mk`}B9jJ C$j~GєO]ttv"GXε)*ӯzJxLA KdlY| vI݂5oGD`>0e #'-quHס,|zvrLu*M%&ey4jP;5LE=sRz8U5?nA*$sSy+.&?7 Ej՚I=0ɟ 3V[;HRt*rZdCvEI@E6kӊRZ ۅ&PnYu0 o@Z>ƅ6Ĭw_>lX(̷̜`*- rKh51F?;S X 9!-S`3}|)-YIuYHaJI=X@ڔY/B>짍Jiq(a',3)j6)\[즈?ai#(] =I\HAXEحtij:W.Xrx PQv't\3H/KQHEr'9A1/x*β .3+ag00A^5:E\-\Fϩg8ax TLaH*x\G|N7_k.K=So݀O NbS}QvA߰k bk4s.CԆC4eW D!13Bک*%aOSrF_&NxmN(IK,K-̭G2Ѿ!J|!d1wnŵi:&c{#6(|Fw]~N|+a RK0$RXokk0ݗ M\N6YH \W [ɛ˕":2d1K\>WhU$8: 0 k x@2egUa[3ř^q 8j=%b&87'K3q|٬y&IJD?QhYidܸgSrc]Q3IXyu֔([Vta+kqMJ&U=wL6 'D%0lu" ݢEB^jm+~Cԩ9NJ<7bRi0S&'0>?x>v4 Ϛ%㉡OTo$2),ۨDbƏ Q\ ~gVĆNZ X.L䤑qu:vRzdYNyкIhF"_]tY ቧ*'>Z @ ~iýEO-{hr܍2?0dcgE-PnS\Ŷ`f ue~)PipϹ8 ze2bau{щ}G`cy͖0}mJ7An2Zu %גJ`Qυhiin%AL ?-FQk#p?4?\ka^ MhyXܳHj&9#)h=VE 8J.(d0꯲2ta#PA{Z&mPQ#e2RjuFyn.ZWc Y k u{SM@U^Ԓ^6}w-9'8[ۓZfG惡XHUR5>}킜xFK۞=R] T;GO,=!N38-HԔ))9R:hWyW jK}T|x-kDM$[*q;)r$'@ʎB/gvF֚*H$v2R՝óUkG;5\hQup}G|ȉC޻L?'}TxٻhjeƮ-0_nsт=ad }h2cv^ߐ1\k*a/UN7蛃qLt&ʐ?,ق?w}oiq2)'CSVqyC۹REQ{`-.j4|PkTo@a ˨՞r\X[ـis b8Ilj,/w@!h)5; \ؽZ4D\G\%隓39z,ʗH_cGރ~ob}n?␂; qKߘI!OJ%V#i5(τ;rw8BwL)Hga*GZoN;Y4ͤҩ&|r6CwR-Rpv\IqY$K@2R?zxGkk *BA1v[W2j 2d<+Rg IN6kiک7gP\ՙn,c.#D뻢.BF^Q^Di%sDq@֊aC$e&Ȁ9aq%A[o>5t:vt,\Qee}x~_:3e?-y9&IFh|R3MXGŬ{;~,u q+G|'cܿPRl18|+}M"(: 0Mhb0J,?Wi9OSœ^kvSnN㨹͏*9 -iϽHXۊz }_t{lYK@Q8϶&,)pBRmBRK_ТU(&ԝI7c۽J$MݡÃQF>~if* Df u DEG0neKrf 5R;l.'ZꭰşTT&<\uo7;SѠɌ_DPlO‹Hq.aɩN7"! ,];'A F' a85?q9RrW(r s|LOBy\Rxz> R/mgھkLupM N^͜Z8lOy1SžK{Ji!}=@ܐ9%Q״+:{:AcOp ǃaCMt_cBܲnST|2u^?aqZ,[;ˆjކ?e{5a3'_ ĀNwG7|m o #aDY9"c Ԯ?WPekZ.DڏRka ;GkMLVwDEfLn^y80%kMMm#D4sBM+%Pe4/Lj$JcW$^7 \L`~& rɚ٫(ѣP68޲E={ xkP+aƨ:D< ًDO`!Mf7^{Wփ,1e%vՁ`M0/_nd9=&͟aKB)(3˃)፛ޠOd+,gA<0y9P<}]-i^(>o|:ǥ4/3 %ySwx)}aՇ'Vq$Aڃ@ɷ.Agq67WmfsJ.W 4dPԯϷ,g͓& rDʞs{{ 6rm :Wg\N`XJ "½KmWy/#3O/7V_g zͥ~p>nw3Q,$R:f+͛03):Qn&iXr:#y9R.F4[Mm2&~jK揆"6MlŸL@!9&b3? */)ˬwP6=H2e` kBsn'e#8ӬlCމ`u9{rRޘ}f(HYjYRoBpHpv){Iʙ9]BZO+/mKRNma"@qo^o5D&0Y2Pµ|M(_S\pYLkJbY A^m 7RL˝m,ZC븾IPK)+>=|7yeDGVqGFYn㿇b)ƿ#xT^7(ph}D2Tɹ+^,T1J(UZvэmW8DΈ+nȒ 'L ]4fܤRW~!?A WNwݐ^OG@:lIl B] 5>'Au]C\l@M#l zu@" AB,prX1Kg;uD%~t$?k>㜤%cb3jھ~`O/|nND.8nYhL,KEԛ/ }]h{)$J?ܖﴧ&@JV!Ve<~MbƠ @DI e9NWE4'7TͰ)d4l+ MؓlL6a"zqمT[waP%_ɺ}mV(0;>Bal|r$T wInL[9gW>O/Fl+kcaH_j}ik5S̒Ł{oˮ9Қ,rNꂤ &u3S;ZtSLB` HWQ9ѓ%<_B R'e%nL6~h _,-g 6O}*C~dfI._`As F=3?.ظܥ4j SET>ߍr a`Wf7* n>l{VIh˿&h;nWMC1̜Ö1 <.*7CP~jR3.$ZvNYr,Rc'?Kݔ2n..GSX*Ml0qYJӧ5Go c[x#RQPt'FR endstream endobj 781 0 obj << /Length1 1620 /Length2 18017 /Length3 0 /Length 18853 /Filter /FlateDecode >> stream xڬcO%͛+m۶mەmҶm[oY=i?ܻ~q9`G RBy%Zc;CQ;[gZF:N45௙TVلfb 6101988IBvf4e`H' 3[Wk;{[ׁJ&&gs @HN^CBV @!&35qۄ@Ʉ`j`dgklOkNt'{#a&F&@4{G ' '8,l])_;%srv2rw*/,: dؙ43raiNgwr- Ĕ}Hdlԇ%pjQ^ `  xS̎ϔĮ$OFh@ȵgd'Oc#C=}89P\gI F_olS0oXiaRgZJ<"Ob 7)] j2mFTkRy\Ω"j3$&vҘYx09;Zl_zA*GT<.D8P WA(Tb'b訖$qyoB.X=!G75alcf &;[t$}]i?6^D˂Zl}(7EiJ2--xBY$\2>Uh& :Z +Vk4_Wi?60jR 'b6j]CdsQ`*M>:T #m-*U{)u7ei_UNvHڞ|\Uӟ(#Uc\ٜ$'!{w^1`2I|`ϙWv (ZK%5n08ѢE ;bRhL APi^K9Wlãf E3{Q(%ϟx U ܫA;՜28Jq.6+LR+"/<bnj ,fAV&GEY~Yegw.,]+t6k&8 JMu')sG*e~du?ӨsH>" eV=^"Q3fS!rLq/Хl╰vGO=UxXgmlx\ܛC*$2ңkZ%8Gta5 c"V*58'Bh-&efs9=, C>Si 5*jjVF͏> HzesWcn9 VQ%1 -5~9pL>8p 47Wm"smOбO7˛QS]:^7 AG:{}ƛ],OO$(腤=6"Uӛ,KA9\: b_HQAPu?jXZ)dɏyәމdq&qUg2V` sQgԖ^OB&&XMXuc3x֩JD0BH,("JKOW[q/TUTlu?eL)?Ц%L^IS7LJ-)8:EᏘ+ɪ)D~f-h8qHh[w>.>M}8b1&-VjU鰜P<~`ktp]aQyxz0*oT} &ez~[#fɷK0wGbf%8CeSXŠXX+o4~7HBTFR,џķqnQFMMRmUs4[#䗚(D/{/r9<-ܠH%<QFlMz@(D9J qRí**7;cLEzY[ԝ49u"ǿiеTfTʢU6<\<{v3&P%v DrUUO ؽIok7Ҭ#0GdL LPG)q?&^,NAAi _,^qN-0~v|poN*9/{MQGEr:=Zm5 JQ8gP"p>8%r0Q ⸊[tYKG(JB xCsM.rW)vDI S} s䑮:C<#]վJAS$aGj" ;Wc|Bq~5E*!Wf-~ d퓈jYk,y@Cg,è\;qlȄ%a:dze*ΌxxֲL(Spl' ,77+tAa|#p.zڝ&eY,ŢO:u^ [52<*CbL-F&f`8>P0 WƐ W6Ș@|Yi5[$c)63)G6/i>Q,DxkXB^ֽMKD_;<{`V M[8њL{=f1FQzxt*:FD2$3w lBehsT~EU%V_O)G uSPȕӃd ϱWs %$%kϐH4}N!a ӓ6 8:JӸ0H9;'QS"8Jna :x=LBR:I!hޣ=ӡt漆Ձ_@Vx~n䥦ta?.1QփIP`Ƕ $pD$ņ;{n׌G,kѓkx#K3 8+ٔ(Ũ!f n r)FjK7a`ٟ*`jJʖ>#z7롨9Ҫ ޷(Ty~M_1М B&6URKi3L\Um ũ]aj4 /tIv¢l"_X*q+506{馫eZU~RlLW=C._0Ogh[e Sx" pH5hFxi)=x. 1(7'hr/DJьY@IQ>B7g U*4>Ds6TO?dO ]A)Pd|Ąf%X]p$/2 2<($5zV=IЏXR^vzPs8 7$jF4)e* $,0|yrfl^K.WS.$x榁p;#ͮԍ`#۔ԆBBJ(UODkh#MUV|6pم85㥨*pгy;a&z2_jNkJ-*gMcs.X?"g{fch/DpXɕ<{K8pyVoZ`{ӪdSpb"@[QTUAK4{n5HƸؾ³3=vp$_zhk^~m WfØW8%/ߟY~?^_+tQ0Ly8 $UNj>WeB0zgYwA6@(u͓%/KfALיr"v~KOy*ǓJ{cOy]6Rˀ>gnA(^t C:fH/_`;WGLT&` cCmn"4XmMW0У+|zh!bFF/% .sUJ|4+)~أ"$ZC>-1DH ;PdKA:L'&8v;pM{64Īggt3CVecJ䤘BVWFc[y8*!z3渝*kݿsaUζ0pʖr\`(ۺ\qа5)a)#>!!zeV3V 4T,vpy9f4^MXxdX/ :؂@os8 2vkhXMB ZNG>o&ڭ\XmYg6k#Uߗ.ǂ ^+pBe&T/sگ "ګGègogmGw*:0!@ΰe!Mm%zL{*+VOnF085䌂VEq. olJ5ک18M:}EFw)\(-R7/we&Ujn+RMT%es|*}0wR\&?}L^~2 D aMI?/*xO&j~[: S#?fVzMaй[!G #K"s4ʷR~kWa-'c,\ V>A4O K|l =𸬵ed:%PkL[2r)IOFi^ *Fٖ/oqnu"34/aKY| JO sb;?'5 @>C|rP Fp 757E!Ѣۧ17gKO8#8\" JHT8To3&{9p0 3y/41 tzK)RLv'D!$130]P@@)Tq6N4qd+y91{L{ꔿUj(*"im?6Bs"z@q( 6g >(ѸЉ؝1B+5!^lqtiq6VOݑ\ G◢a.O}; saړģ.UG:`@. Bolz A5Sj a4a0j;R5VjZFKhݤBI Yn\ÇuNiBGmD~y,;"k+&Xp]y7IkK=He`oT),vfIX)U 8}Qz9e˽c+Լmw["fmJ1+M1>G[Q[5T; =ں#sȯ9y_C,量[8BY07_by LTo;רjͽ5t+(00_(QvN,c/&4\`p%B;hʐlv{Ot"Z;WI6l{-NvBb;4%I2kuNIpȜ߼4az4ʺG W2*t dh 7XPXzGb/i-<hxQnlX\!OdմFpRmg)gg*dxQzR?*IE#Gۼ`r  GbL.~ #:b}MP뵑\]l-/R@;dsF1c 7^R61&؇Xv|1!/G&ؒQGF'vxO9e0<8csC͵&x?9(CA17jdf b}" ugUtdJ4;Oau TW-Tfbe[4Rϰʰ˺X9+t/KӐ(z^QP0%g?95h7*"qL`_lsUs/G%e DhTS6^LC6 4dͿ_p堁 LSS:*5M𔖃%K^T;}+{XZ8K-}. f?޻04BTώԟhNeJ'țТٝ+xiBi<9q5@ fOC!붟{pۥ|Zsq1{s`~1o};WZ<jN۴[wy?5 TU)–nF3ۛ'񁺗*R联^nfS2j&Gtw!U]Tܺ!#0`eгլj =wɤ$礐NR8Dvj^;s(2H,dbe^ e@bCo 88׳6CW -ޔ;&Rf:(ͮ7`3 )ΗYMH(]2OĊxZ/` v0rFqYY6bwz#Rc8ZZx`ǻ5-f%Q 4 ;^o7wz~77PҀҲ ˄Hn*҅ˑ{ڎ%|y@K40! sI-T߳pʷ滔WG}sV?&j w h?nVY:_zIA%Ot; J|ke'!4nսyp2(<[= `0o.\lPˊ&s];*IІ;g>I4ǘ-cYXfZ&RU$yuFTQzK:.`Z'4YEz}c`t,_LF]įQD^ajfoF L_Bf4bu7Z!Qg.eT,rv KշХ/oi@zhgP} ip+$o0.\ O;qwpyRدݘI^f4!ʛ<犰3-LTj+"\{b'G#_0jU"{Fp+6HEBh~#͏@C&+=[J- 8;}OXoJzN['窥;'9:{wW3hhB%-`?Ƀ-@-+IZŐ%Cx/q]-\ 0|؀WP( gIgP%3U+wԘۮ3K ݭc|+y[%,]o 2CK깦{V2tM} 2DIcex \t(NE띋dΠ ^2hhO,;g9-Jnlʅc"hY/]K! ڡFn>8Rޱۅ|$ gC)`emLc")gM=Fi4 ?$&vZn2/NMEKϰ:*?6oQ2]ޖ2VivbZ؎A#:<]W>p/?݂K%`_s[+h9.!;Z }.9,4 ʂ}ClXI+YP!hxU=QاtU2p@ *ꐀ29|t3IV}PEGtOV_ġXQn%mNx딛sDl걎 !:>Uc^YMjOǣe _<}EcO1]g?DgMJ󳩊{˵Π!K [h+1K/E٢eSW a77&͎G{Nb#oɗѥ)f-&9N M7Vh稏FãMZ|RHXʊOy;@7&b4{9f*j~W@d{C4p䁔w?}TJPB auAvo.?{&9p.=ְ85aO=DT8,MݨEpgi0*&vAKZ.zⷀpwr:vJtiFّ]^+ߵ47+u1DZV{aUḯ 'U;{K+P]ޖLp>QA(H\ٵod.+Bp$5)ӑU_L"Ia_\8Vhaڂ{5-mpu:MaM< F)'dhv(PNqV= +٦)d*xBL[Sp#QWA/<`'}8Lj&CcmjL7ax:`j VDW.j>P0oa-$ӎgZjTo6^ jjR^R;Q ڗG?7C;`nIUuQPK<q W1%F{idPQeBjp17eZX8eLŀ: wuλVh١@'}m?EĤܕt`JzZuYkGArM3X ?ɚCz9<_gk2!RtD^#8.VtJ?혎x٪s:g9.IOOCH_Qo }RD0W[jm # *u1I^(s_0^ђGڥt|(ۆgEay 3yG{eoBf}6(Jg٤fw^?S"g YmF=) 1B -~AMQ' 9zx$n x0 z\z+*K˫'][.j(te%xFMet8-˴9+ }%{Hm# 975s2c{#OaUy V31r˖4Ԝy5PɓQX@JI1`qa,\ۘɑ',ݐfX>nGnO(sSH6;/t@LeWvYc~ɾh^ ^Rڸp \#`J͛]]Pׯ]^fR = ȫH'D;+BC)YvWAs#D{$# arz ]L Y(wV "&,b^00"viטATέuDŅLS꣍[\aG[\?5TN#@0W.n@_D$U"$N_YZb|gԼfi!E5khᙿMgMo\Gu?sZ ݇6.H\' ?oٍU1dkNPHm\*`yO`Np |.c\4ݭ(}J2ip0Yӳ(B=lgW_FFtj|9(؟.$O[)?CgǶn9F7a4W`ڟT5LfH-An{*,MX@MCr,_%:b)Q}瑋٢숕 .y'v2jafY~*[OSL;rdOU'cc ܝ/2U[;1pp@vTs#ܑW]4ٳIyhs9HU;|' LpSb-Ef)hP fL쾙kn@eҌw 8,#RĦ8PAP\掊<;wmݱn%LPat+> =DIDdET'|;th2 $G=c;#3\lqUc]q4R:.^';_y7k*00Z,lOkx_>wŚEC']62 :!_lCUZE254wds>o>yf0'og%ifol,ZkfZ2X滙~ZAݠk*ƆJ㜃R1d,29KXͣ;9T6Epfy#nF5| M˼? gnmVv°0|y\b.#ެ$59_>O8FMsOjYGpPnbaJ4XRĊNn0=LI0 Kw^πp{:<hSvFhYSW~=MF_A -׍2G4JDo87A?Ic{3> -:GD|xuFJuxQo6~kA,运D'9WJn_)dMJ EL:k D`W< PTI?Hl&1#օ6eqFnو2Qiڮ%Sha!VnXD᯾V@Y "OMqBM z=Fc^\/Av||w/Xx.7҂P+ñ{Ld;̚qIuZG$E^CoTfPTPF:`6 |sipU&Q9_"^V;ydF77SLc3Wd- 6"袍C..ށ&)do9~j7q6/CKF̄C]ZLn !OYvo/Bkſ.9(Tb"d[hjmLej$D*bjg\leܿs2r3jduh "mYbWacARt=y=GjLWhpH6ZT: }OQu9E8zm*0)v|g%^& f˘R@q (2i-’I+>EJcT-K,sA},E1=TpVv8nNP]K\UuReGAO Ta֌Djё4?cn[Qʛ| *aPXç3 P{+ =ux&8I7JFc|HfT s z=Ivg2^BjP<Ɉ:0W~j3ro%lkőSUy:=F¹ҴFwflMߡh43!_ mG`w.ñl]+JV >e_p_.hxc;bWD#fg ժK f^6096Sd|ģ5υVVlg u;"<}|?͑HSVXD׋")%܀e7l7He"nB"QcDӉ|o& dۨ䦴p5} ?De}/ ~g,yBÃ؝^J3(C d}x~Goh;ro~~1Zyjb,PʋC9DZ-SzPf UT vuZ0F:5GQco&=ó%"~В1RUAtd5۶lM u~8W U( &AP3xo40B>5p+zeBc0/i=<.&@ܷK‘Ib Ui7X!I >h\̚T{VlzaWhj7d׌zː |"P!C| 9{χ^3(:ZDIռ8'WP pF)~0ä/xھm![E~+}60(EQ+X{8ڨdOŚ:Ո(0Sjvk|%?p(9,.Q-+p3tOKurfT|=8ݟo @Va~'83<yR)n=9{{q}jݸ_,Z_iQBf{//|D+kuZ=P'>"o!^HkkoۭgB:eR lrq& mZ&ލ:~%o6;;j'/DKD2! YfgʥYէ䌍ڳsX78wkVޞ$P' _a4SqGܐo\A(7@ lŚ_:0nE<==(%.jC f:(/+{5xP+_m0=HyqLh\/TJaaK^'ni`vi\H=0[UQO_]v+0v>9+N=LP9Y:^?Z{詺v͐1bzDb`ktX tO߼m̱|K;qrS!j!dZ!QZ@]<Px^p`}Tn/:seubՍC]YCGq(Ō$Л(5MĄWꆆgLTѠ}*ݿ=!QD!A&~i~%vջ FrvK]3NF?Ig@YK<+$ߔHٻ\stM~?J='ql1`.wC!1$ *"=LxWj{yB(IÑCv͝p'1H7nAM24u. yiTT _07m݋2"`Ŏ?z{$T?xu2'9dgRW[ƗyevD#v'lq Aؠi aܖ(9\_>y Ż;LW'xx@u`dvϪ؎R*]ȩOPnRploM!LӴA8QqZ "iT*.uޑd[9Sá K1b}^ m}\ZC08TI0<<ŸW`uEEni!օ 9TaZLz7U,A_ST,t9:[TlRGx5oT׬' 4ݫXB֠wCG\Q]Kn_Egp< hK!lHei2pN炸70"~rq6%:JGj. O_"F"6$,W.f8_IQ}!>tzƺrؠuQ^,9iߦ;C O"wZ5͕l 遮/҇98P'(5j"~u$6:bөL!w#α%ET)#?"&\a]v@RhVѼtᗌןo:EaG![;ROdGTR1!!P{-Wy؁7-U#CE홮ྖXK'Vg=6RjbjD`D@! kX}>0[K.KPOp<&QG&!ri%b =5ِ25BNZ)W?s7.rSҶ2B?`]%[«WR9rnlq[e`vrɃL?W13&H;|a[uyaӢ]@j=m?ܺ0FpX[^YK6)>Z3g D7T$ [b) A3=lN*)gG=P9d#0`0tOj\n|;* uQ{2oEOzX> stream x[YsƲ~ׯc\)anvH"t )A[Yz{:!29!34*3&3h3K\ :-5w4q# %tx˔`NLi @2F8I9IsLy I$;a0v` UĂ:ūA&G/MJr2)mͤ )B{ݻ;ؓٛYf͋20do %rpKvyD(y{D(sFȺ<(u(-B+21s".eΝJ<hirNs)U45 ra_({\x}t>dXP:7j29\qxs9ńAmͽؖЀ&C+r `ڒڂmVJCƃ`k lSbX[ rVEF\33) }!lkdn0~HM؃d8)Jr1E/}E]fix6#D<DllIe tlt\~0{S~MD{ 9IӺKn-gŨ\*zYKϴHD ^ 3#]Đĵ](Q 65._;D- rBZkc󬽦m]T$GF!_f^K}↱YcXv{{3mD|o\H /̶uZr Mh B6-=ޣM0|3mk :)?Ao댯Zl,vomkC)Z U16QˍhMp33hƍӳKnEyPyuZ o}u2i7t5Zw>tƀDsw!i:i}4}Z'q`L-e Kfպ]KR9֥NuPJVtICbbڮT҂IrAۘS:oK:ZTީoJcTJze6tMR6ܧ/,5'`d ""W }[X{ӷ`8PAqt?m 1ju/|no1dF}{#S͊JRm?ݪ}{2$]!r9ZTzH E?xӷϞ~l:MIQV<[M j8)ΖN=7JeᄲrDI{P̟ybRM&%][{4ơyu=v=`#$t`/ُ{~bG옽a?w= V,GUUWqӺ\TXQOS1m9)ӢNg 2Vm#6MfS/. 6f`%U1a\j٢,05;g_UWI\ 6ejZSXVgS6c3ܘ9b4ijD\Xl>Y-լ.ǟ&dY4llY~ƴ K,׬>_%[Mǘw4[3}a_ٟr1b5_}4CxG,.}BﳖCv=Qo0մ.Ť.kޯzb&&}l2-Y|ͭ Ϯǰ}#,imn7G?} 6P,vv:ٰΘm-6n"7x8~CvWʭ{Xq|BFe5~ڝ7™ $Y]j XMj>ʦYAoz@$l!1aLj?_T\\ɫ_^ǐk='KIA]MOiUWjTq>[ m|7c0QkG\#tҫ)Ym}p(2>ދ Wb2NObeb0ǯ^|ѻb⸚8?ws+ P Tq>skݣl!U{؝2> endobj 785 0 obj << /Type /ObjStm /N 35 /First 283 /Length 1476 /Filter /FlateDecode >> stream xڅX[o6~ϯc3xI %ZMf}m"K$~ͤDgO(IC"%HJ(3D(’N!I5n 7dcc}z{ұwXGG $ո& N#;pjM_g% zxo&__ܕK`hK^vиꊢ22˲]uHs1KZ/6fGY326ݪow'̚"Py[QQILQǺ+MpE)7߳br N|^7U]-荳Usv0|o70@UvǼ-e,0DɜM]t;W#6E2;l;c{_ȊN;g.]M}eUemnlȜM<\>GW8y㎛ 4r<|N&l*PB\OZ/M=<ЁݙyŶ;2~~GW}IUles[ ~L-o7xT?T,y<{`)i[~w~eC83㏣h {QG tttqX˟hwc8b=YM߭J/rM?b[\o[[&xXܑ1us />\-Qj<9| endstream endobj 808 0 obj << /Type /XRef /Index [0 809] /Size 809 /W [1 3 1] /Root 806 0 R /Info 807 0 R /ID [ ] /Length 1884 /Filter /FlateDecode >> stream x%[h^Y:i'ͥͭiM4mzIsi^[kTԑ'G_HFF_fY^DAe`e|t@E|o>>k}}RJ*U8 &?&ZUfZ*LvZ5Po}8lrl/a}mZKw;}v#[A}1vA3b;F/ިt5^?xݠq"`7} ~08=p/ou8` #(80 pS4N3` 48.`7-n;Z{hҺL6UZ+xvvb5LOu 8 %kjи.Z0fevO(͘xaLܘ1q{gk47fO. P$( (m@tm mXG166666666666666666666666̶˒^W m]` ,( RFAaaaaaaaa=Qe"Qu6 c8ob%Gm`hNHˆW}7.` '88%ug@.Oڶėu'{ @7`7{@?{  8$W1` #ਤ}#.Omp} <A˔|| q,8yp\ f XK`\up5wldjN`:u X'>(2D_m G87$w=Nq'*qqqqqqqQϷ [88888x,"svw` @ 4M2ff(8>ߐHxZ&Ĺ΃11̏rͩzqǩzR|Lȧ9999999999ȉWDrDrDrDrDrDrDrDrDrDrD@A8SNA8ǛSNA@E:x(gƇUð_uP#"2kry布e1O{>VʞY3in2f2{[n4۲>~,l>!pX[*4|Y/suɳ`N7h(ӷ[I70Nܱ&EY=g8 ΁iK΃ "fDޗj’ȯߊP~upC}1M%8{*X$ex |i} 3lHը1@jM.UOdJV*YgGBBBcc{BPPPPPPPPؔcV####5TI,ԏb.-' P2dPS$Og(@]lA)S7)SRLICV$JIUңGY(PQ8B! h/BpJDmBŷ *&*xE.E @nHq!.DBt -_Q>I?QQxx!=b_}!XH@aeF7^ƠzRYhIm6ZRir0ZWZڛ_\$ތֲ%bbT/[w8kGvhmt`]^= `PS\ endstream endobj startxref 297029 %%EOF ctmcd/inst/doc/ctmcd_vignette.Rmd0000644000176200001440000000676713304502710016544 0ustar liggesusers%\VignetteEngine{knitr::rmarkdown} %\VignetteIndexEntry{A ctmcd Guide} ```{r setup, include=FALSE} library(knitr) ``` # A ctmcd Guide ## Introduction ctmcd is a package for the estimation of Markov generator matrices (i.e., the parameters of a continuous-time Markov chain) for the special case, that only discrete-time observations are given. The implemented methods to derive these estimates are diagonal adjustment ("DA", Israel et al., 2001), weighted adjustment ("WA", Israel et al., 2001), quasi-optimization ("QO", Kreinin and Sidelnikova, 2001), an instance of the expectation-maximization algorithm ("EM", Bladt and Soerensen, 2005) and a Gibbs Sampler ("GS", Bladt and Soerensen, 2005). For the expectation-maximization algorithm a Wald confidence interval according to the method of Oakes, 1999 can be derived. For the posterior mean estimate from the Gibbs sampler, an equal tailed credibility interval as outlined in Bladt and Soerensen, 2009 is implemented. ```{r} library(ctmcd) ``` ## Generator Matrix Estimation In order to perform a generator matrix estimate, the discrete time data must be available as a matrix of either absolute ("EM", "GS") or relative transition frequencies ("DA", "WA", "QO"), depending on the method employed. ```{r} data(tm_abs) ``` loads a credit transition example data set. In order to perform a diagonal adjustment generator matrix estimate, this data has to be converted into a matrix of relative transition frequencies first. Then, the gm method can be employed, requiring the time elapsed in the discrete time transition process, which is 1 as the example data has a single-year time horizon and furthermore a method specification, which is "DA" in this case. ```{r} tm_rel=rbind((tm_abs/rowSums(tm_abs))[1:7,],c(rep(0,7),1)) gmda=gm(tm=tm_rel,te=1,method="DA") gmda ``` A maximum likelihood estimate can be obtained by the EM algorithm, additionally requiring a starting value gmguess. ```{r} gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 gmem=gm(tm_abs,te=1,method="EM",gmguess=gm0) gmem ``` ## Confidence / Credibility Intervals Interval estimates of gm objects can only be obtained for the methods "EM" and "GS" by means of the gmci function, e.g., a 95% Wald confidence interval can be obtained by ```{r} ciem=gmci(gmem,alpha=0.05) ``` ## Matrix Plot Function Both, gm and gmci objects can be visualized by the matrix plot function plotM(), which can be easily accessed by the wrapper function plot(). ```{r} plot(gmem) ``` ## References M. Bladt and M. Soerensen: _Statistical Inference for Discretely Observed Markov Jump Processes._ Journal of the Royal Statistical Society B 67(3):395-410, 2005 M. Bladt and M. Soerensen. _Efficient Estimation of Transition Rates Between Credit Ratings from Observations at Discrete Time Points._ Quantitative Finance, 9(2):147-160, 2009 R. B. Israel et al.: _Finding Generators for Markov Chains via Empirical Transition Matrices, with Applications to Credit Ratings._ Mathematical Finance 11(2):245-265, 2001 E. Kreinin and M. Sidelnikova: _Regularization Algorithms for Transition Matrices._ Algo Research Quarterly 4(1):23-40, 2001 M. Pfeuffer: _ctmcd: An R Package for Estimating the Parameters of a Continuous-Time Markov Chain from Discrete-Time Data._ The R Journal 9(2):127-141, 2017 D. Oakes. _Direct calculation of the information matrix via the EM algorithm._ Journal of the Royal Statistical Society: Series B (Statistical Methodology), 61(2):479-482, 1999 ctmcd/inst/doc/RJ-2017-038.pdf.asis0000644000176200001440000000041313156522656015742 0ustar liggesusers%\VignetteIndexEntry{ctmcd: An R Package for Estimating the Parameters of a Continuous-Time Markov Chain from Discrete-Time Data} %\VignetteEngine{R.rsp::asis} %\VignetteKeyword{PDF} %\VignetteKeyword{HTML} %\VignetteKeyword{vignette} %\VignetteKeyword{package} ctmcd/inst/include/0000755000176200001440000000000013413134010013732 5ustar liggesusersctmcd/inst/include/ctmcd.h0000644000176200001440000000036213411740163015210 0ustar liggesusers// Generated by using Rcpp::compileAttributes() -> do not edit by hand // Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 #ifndef RCPP_ctmcd_H_GEN_ #define RCPP_ctmcd_H_GEN_ #include "ctmcd_RcppExports.h" #endif // RCPP_ctmcd_H_GEN_ ctmcd/inst/include/ctmcd_RcppExports.h0000644000176200001440000000570313411740243017564 0ustar liggesusers// Generated by using Rcpp::compileAttributes() -> do not edit by hand // Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 #ifndef RCPP_ctmcd_RCPPEXPORTS_H_GEN_ #define RCPP_ctmcd_RCPPEXPORTS_H_GEN_ #include #include namespace ctmcd { using namespace Rcpp; namespace { void validateSignature(const char* sig) { Rcpp::Function require = Rcpp::Environment::base_env()["require"]; require("ctmcd", Rcpp::Named("quietly") = true); typedef int(*Ptr_validate)(const char*); static Ptr_validate p_validate = (Ptr_validate) R_GetCCallable("ctmcd", "ctmcd_RcppExport_validate"); if (!p_validate(sig)) { throw Rcpp::function_not_exported( "C++ function with signature '" + std::string(sig) + "' not found in ctmcd"); } } } inline RcppExport SEXP rNijTRiT_ModRej(const NumericMatrix tmabs, const double te, const Rcpp::NumericMatrix gm) { typedef SEXP(*Ptr_rNijTRiT_ModRej)(SEXP,SEXP,SEXP); static Ptr_rNijTRiT_ModRej p_rNijTRiT_ModRej = NULL; if (p_rNijTRiT_ModRej == NULL) { validateSignature("RcppExport SEXP(*rNijTRiT_ModRej)(const NumericMatrix,const double,const Rcpp::NumericMatrix)"); p_rNijTRiT_ModRej = (Ptr_rNijTRiT_ModRej)R_GetCCallable("ctmcd", "ctmcd_rNijTRiT_ModRej"); } RObject rcpp_result_gen; { RNGScope RCPP_rngScope_gen; rcpp_result_gen = p_rNijTRiT_ModRej(Rcpp::wrap(tmabs), Rcpp::wrap(te), Rcpp::wrap(gm)); } if (rcpp_result_gen.inherits("interrupted-error")) throw Rcpp::internal::InterruptedException(); if (rcpp_result_gen.inherits("try-error")) throw Rcpp::exception(as(rcpp_result_gen).c_str()); return Rcpp::as(rcpp_result_gen); } inline RcppExport SEXP rNijTRiT_Unif(const arma::mat tmabs, const double te, const arma::mat gm, const arma::mat tpm) { typedef SEXP(*Ptr_rNijTRiT_Unif)(SEXP,SEXP,SEXP,SEXP); static Ptr_rNijTRiT_Unif p_rNijTRiT_Unif = NULL; if (p_rNijTRiT_Unif == NULL) { validateSignature("RcppExport SEXP(*rNijTRiT_Unif)(const arma::mat,const double,const arma::mat,const arma::mat)"); p_rNijTRiT_Unif = (Ptr_rNijTRiT_Unif)R_GetCCallable("ctmcd", "ctmcd_rNijTRiT_Unif"); } RObject rcpp_result_gen; { RNGScope RCPP_rngScope_gen; rcpp_result_gen = p_rNijTRiT_Unif(Rcpp::wrap(tmabs), Rcpp::wrap(te), Rcpp::wrap(gm), Rcpp::wrap(tpm)); } if (rcpp_result_gen.inherits("interrupted-error")) throw Rcpp::internal::InterruptedException(); if (rcpp_result_gen.inherits("try-error")) throw Rcpp::exception(as(rcpp_result_gen).c_str()); return Rcpp::as(rcpp_result_gen); } } #endif // RCPP_ctmcd_RCPPEXPORTS_H_GEN_ ctmcd/src/0000755000176200001440000000000013413134055012132 5ustar liggesusersctmcd/src/Makevars0000644000176200001440000000006013413134055013622 0ustar liggesusersPKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) ctmcd/src/rNijTRiT.cpp0000644000176200001440000002060713413134055014310 0ustar liggesusers// [[Rcpp::interfaces(r, cpp)]] // [[Rcpp::depends(RcppArmadillo)]] #include #include using namespace arma; using namespace Rcpp; // Implementation based on the C++ Code of Jon Fintzi: R-Package ECctmc, 2016 // according to Hobolth and Stone // Simulation From Endpoint-Conditioned, Continuous Time Markov Chains on a // Finite State Space, with applications to molecular Evolution // Annals of Applied Statistics, 2009 // Modified Rejection Sampling // [[Rcpp::export]] RcppExport SEXP rNijTRiT_ModRej(const NumericMatrix tmabs, const double te, const Rcpp::NumericMatrix gm) { int n = gm.nrow(); Rcpp::IntegerVector states=Rcpp::seq_len(n); NumericMatrix NijT(n,n); NumericVector RiT(n); for(int x0=1; x0 tme_vec; std::vector state_vec; while(complete == false) { bool cont = true; tme_vec.push_back(0); state_vec.push_back(x0); Rcpp::NumericVector cur_time(1, 0.0); Rcpp::IntegerVector cur_state(1, x0); double cur_rate = -gm(cur_state[0] - 1, cur_state[0] - 1); Rcpp::NumericVector state_probs = pmax(gm(cur_state[0] - 1, _ ), 0); if(!(std::find(remstates.begin(),remstates.end(),x0)!=remstates.end())){ cur_time = -log(1 - Rcpp::runif(1, 0, 1) * (1 - exp(-te * cur_rate))) / cur_rate; cur_state = Rcpp::RcppArmadillo::sample(states, 1, false, state_probs); cur_rate = -gm(cur_state[0] - 1, cur_state[0] - 1); state_probs = pmax(gm(cur_state[0] - 1, _ ), 0); tme_vec.push_back(cur_time[0]); state_vec.push_back(cur_state[0]); } while(cont == true) { if(is_true(all(state_probs == 0))) { cont = false; if(std::find(remstates.begin(),remstates.end(),cur_state[0])!=remstates.end()){ complete = true; sampled(cur_state[0]-1)+=1; } else { complete = false; tme_vec.clear(); state_vec.clear(); } break; } cur_time = cur_time + Rcpp::rexp(1, cur_rate); if(cur_time[0] > te) { cont = false; if(std::find(remstates.begin(),remstates.end(),cur_state[0])!=remstates.end()){ complete = true; sampled(cur_state[0]-1)+=1; } else { complete = false; tme_vec.clear(); state_vec.clear(); } } else { cur_state = Rcpp::RcppArmadillo::sample(states, 1, false, state_probs); cur_rate = -gm(cur_state[0] - 1, cur_state[0] - 1); state_probs = pmax(gm(cur_state[0] - 1, _ ), 0); tme_vec.push_back(cur_time[0]); state_vec.push_back(cur_state[0]); } } } tme_vec.push_back(te); state_vec.push_back(state_vec.back()); arma::mat path(tme_vec.size(), 2);; path.col(0) = arma::conv_to::from(tme_vec); path.col(1) = arma::conv_to::from(state_vec); int n_elem=path.n_rows; for(int elem=1;elem < n_elem;elem++){ RiT(path(elem-1,1)-1)=RiT(path(elem-1,1)-1)+path(elem,0)-path(elem-1,0); if(elem < n_elem-1){ NijT(path(elem-1,1)-1,path(elem,1)-1)+=1; } if(n_elem==2){ NijT(path(elem-1,1)-1,path(elem,1)-1)+=1; } } } } List rslt; rslt["RiT"]=RiT; rslt["NijT"]=NijT; return rslt; } // Uniformization Sampling // [[Rcpp::export]] RcppExport SEXP rNijTRiT_Unif(const arma::mat tmabs, const double te, const arma::mat gm, const arma::mat tpm) { int n = gm.n_rows; NumericMatrix NijT(n,n); NumericVector RiT(n); double mu = max(abs(gm.diag())); Rcpp::IntegerVector states = Rcpp::seq_len(n); for(int x0=1; x00){ for(int draws=1;draws n_thresh[0]) { arma::mat path(2,2); RiT(x0-1)=RiT(x0-1)+te; NijT(x0-1,xT-1)=NijT(x0-1,xT-1)+1; } else { n_jumps += 1; c_prob += exp(-mu*te) * pow(mu*te, n_jumps) / Rcpp::internal::factorial(n_jumps) * R(x0-1, xT-1) / p_ab; if(c_prob > n_thresh[0]) { if(x0 == xT) { arma::mat path(2,2); RiT(x0-1)=RiT(xT-1)+te; NijT(x0-1,xT-1)=NijT(x0-1,xT-1)+1; } else { arma::mat path(3,2); double hold_tme=Rcpp::runif(1,0,te)[0]; RiT(x0-1)=RiT(x0-1)+hold_tme; RiT(xT-1)=RiT(xT-1)+(te-hold_tme); NijT(x0-1,xT-1)=NijT(x0-1,xT-1)+1; } } else { arma::cube R_pow(n, n, 8); int R_pow_size = R_pow.n_slices; R_pow.slice(0) = arma::eye(size(R)); R_pow.slice(1) = R; Rcpp::NumericVector state_probs(n); while(c_prob < n_thresh[0]) { n_jumps += 1; if(n_jumps == R_pow_size) { R_pow.insert_slices(R_pow.n_slices, 8); R_pow_size = R_pow.n_slices; } R_pow.slice(n_jumps) = R_pow.slice(n_jumps - 1) * R; c_prob += exp(-mu*te) * pow(mu*te, n_jumps) / Rcpp::internal::factorial(n_jumps) * R_pow.slice(n_jumps)(x0-1, xT-1) / p_ab; } int path_nrows = n_jumps + 2; arma::mat path(path_nrows, 2); path(0,0) = 0; path(0,1) = x0; path(path_nrows - 1, 0) = te; path(path_nrows - 1, 1) = xT; arma::colvec transitions = Rcpp::runif(n_jumps, 0, te); std::sort(transitions.begin(), transitions.end()); path(arma::span(1,n_jumps), 0) = transitions; for(int j = 1; j < n_jumps + 1; ++j) { state_probs = arma::trans(R(path(j-1, 1) - 1, span::all)) % R_pow.slice(n_jumps-j)(span::all, xT-1) / R_pow(path(j-1, 1)-1, xT-1, n_jumps-j+1); path(j, 1) = Rcpp::RcppArmadillo::sample(states, 1, false, state_probs)[0]; } arma::vec keep_inds(path_nrows, arma::fill::ones); for(int j = 1; j < n_jumps+1; ++j) { if(path(j, 1) == path(j-1, 1)) { keep_inds[j] = 0; } } arma::mat vs_removed = path.rows(arma::find(keep_inds == 1)); int n_elem=vs_removed.n_rows; for(int elem=1;elem < n_elem;elem++){ RiT(vs_removed(elem-1,1)-1)=RiT(vs_removed(elem-1,1)-1)+vs_removed(elem,0)-vs_removed(elem-1,0); if(elem < n_elem-1){ NijT(vs_removed(elem-1,1)-1,vs_removed(elem,1)-1)+=1; } if(n_elem==2){ NijT(path(elem-1,1)-1,path(elem,1)-1)+=1; } } } } } } } } List rslt; rslt["RiT"]=RiT; rslt["NijT"]=NijT; return rslt; } ctmcd/src/Makevars.win0000644000176200001440000000006113413134055014417 0ustar liggesusers PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) ctmcd/src/init.c0000644000176200001440000000162713413134055013247 0ustar liggesusers#include #include #include // for NULL #include /* FIXME: Check these declarations against the C/Fortran source code. */ /* .Call calls */ extern SEXP ctmcd_RcppExport_registerCCallable(); extern SEXP ctmcd_rNijTRiT_ModRej(SEXP, SEXP, SEXP); extern SEXP ctmcd_rNijTRiT_Unif(SEXP, SEXP, SEXP, SEXP); static const R_CallMethodDef CallEntries[] = { {"ctmcd_RcppExport_registerCCallable", (DL_FUNC) &ctmcd_RcppExport_registerCCallable, 0}, {"ctmcd_rNijTRiT_ModRej", (DL_FUNC) &ctmcd_rNijTRiT_ModRej, 3}, {"ctmcd_rNijTRiT_Unif", (DL_FUNC) &ctmcd_rNijTRiT_Unif, 4}, {NULL, NULL, 0} }; void R_init_ctmcd(DllInfo *dll) { R_RegisterCCallable("ctmcd", "ctmcd_rNijTRiT_ModRej", (DL_FUNC) &ctmcd_rNijTRiT_ModRej); R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); R_useDynamicSymbols(dll, FALSE); } ctmcd/src/RcppExports.cpp0000644000176200001440000000745213413134055015137 0ustar liggesusers// Generated by using Rcpp::compileAttributes() -> do not edit by hand // Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 #include #include #include #include using namespace Rcpp; // rNijTRiT_ModRej RcppExport SEXP rNijTRiT_ModRej(const NumericMatrix tmabs, const double te, const Rcpp::NumericMatrix gm); static SEXP ctmcd_rNijTRiT_ModRej_try(SEXP tmabsSEXP, SEXP teSEXP, SEXP gmSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const NumericMatrix >::type tmabs(tmabsSEXP); Rcpp::traits::input_parameter< const double >::type te(teSEXP); Rcpp::traits::input_parameter< const Rcpp::NumericMatrix >::type gm(gmSEXP); rcpp_result_gen = Rcpp::wrap(rNijTRiT_ModRej(tmabs, te, gm)); return rcpp_result_gen; END_RCPP_RETURN_ERROR } RcppExport SEXP ctmcd_rNijTRiT_ModRej(SEXP tmabsSEXP, SEXP teSEXP, SEXP gmSEXP) { SEXP rcpp_result_gen; { Rcpp::RNGScope rcpp_rngScope_gen; rcpp_result_gen = PROTECT(ctmcd_rNijTRiT_ModRej_try(tmabsSEXP, teSEXP, gmSEXP)); } Rboolean rcpp_isInterrupt_gen = Rf_inherits(rcpp_result_gen, "interrupted-error"); if (rcpp_isInterrupt_gen) { UNPROTECT(1); Rf_onintr(); } Rboolean rcpp_isError_gen = Rf_inherits(rcpp_result_gen, "try-error"); if (rcpp_isError_gen) { SEXP rcpp_msgSEXP_gen = Rf_asChar(rcpp_result_gen); UNPROTECT(1); Rf_error(CHAR(rcpp_msgSEXP_gen)); } UNPROTECT(1); return rcpp_result_gen; } // rNijTRiT_Unif RcppExport SEXP rNijTRiT_Unif(const arma::mat tmabs, const double te, const arma::mat gm, const arma::mat tpm); static SEXP ctmcd_rNijTRiT_Unif_try(SEXP tmabsSEXP, SEXP teSEXP, SEXP gmSEXP, SEXP tpmSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::traits::input_parameter< const arma::mat >::type tmabs(tmabsSEXP); Rcpp::traits::input_parameter< const double >::type te(teSEXP); Rcpp::traits::input_parameter< const arma::mat >::type gm(gmSEXP); Rcpp::traits::input_parameter< const arma::mat >::type tpm(tpmSEXP); rcpp_result_gen = Rcpp::wrap(rNijTRiT_Unif(tmabs, te, gm, tpm)); return rcpp_result_gen; END_RCPP_RETURN_ERROR } RcppExport SEXP ctmcd_rNijTRiT_Unif(SEXP tmabsSEXP, SEXP teSEXP, SEXP gmSEXP, SEXP tpmSEXP) { SEXP rcpp_result_gen; { Rcpp::RNGScope rcpp_rngScope_gen; rcpp_result_gen = PROTECT(ctmcd_rNijTRiT_Unif_try(tmabsSEXP, teSEXP, gmSEXP, tpmSEXP)); } Rboolean rcpp_isInterrupt_gen = Rf_inherits(rcpp_result_gen, "interrupted-error"); if (rcpp_isInterrupt_gen) { UNPROTECT(1); Rf_onintr(); } Rboolean rcpp_isError_gen = Rf_inherits(rcpp_result_gen, "try-error"); if (rcpp_isError_gen) { SEXP rcpp_msgSEXP_gen = Rf_asChar(rcpp_result_gen); UNPROTECT(1); Rf_error(CHAR(rcpp_msgSEXP_gen)); } UNPROTECT(1); return rcpp_result_gen; } // validate (ensure exported C++ functions exist before calling them) static int ctmcd_RcppExport_validate(const char* sig) { static std::set signatures; if (signatures.empty()) { signatures.insert("RcppExport SEXP(*rNijTRiT_ModRej)(const NumericMatrix,const double,const Rcpp::NumericMatrix)"); signatures.insert("RcppExport SEXP(*rNijTRiT_Unif)(const arma::mat,const double,const arma::mat,const arma::mat)"); } return signatures.find(sig) != signatures.end(); } // registerCCallable (register entry points for exported C++ functions) RcppExport SEXP ctmcd_RcppExport_registerCCallable() { R_RegisterCCallable("ctmcd", "ctmcd_rNijTRiT_ModRej", (DL_FUNC)ctmcd_rNijTRiT_ModRej_try); R_RegisterCCallable("ctmcd", "ctmcd_rNijTRiT_Unif", (DL_FUNC)ctmcd_rNijTRiT_Unif_try); R_RegisterCCallable("ctmcd", "ctmcd_RcppExport_validate", (DL_FUNC)ctmcd_RcppExport_validate); return R_NilValue; } ctmcd/NAMESPACE0000644000176200001440000000134213304502051012554 0ustar liggesusersuseDynLib(ctmcd, .registration=TRUE) importFrom(Rcpp, evalCpp) import(stats) import(coda) import(expm) import(graphics) import(grDevices) import(utils) import(numDeriv) export(gmDA) export(gmWA) export(gmQO) export(gmEM) export(gmGS) export(print.gm) export(plot.gm) export(summary.gm) export(gm.default) export(rNijTRiT_ModRej) export(rNijTRiT_Unif) export(ciEMBS) export(ciEMSdR) export(ciEMoFI) export(tmci) export(ciGS) export(plotM) export(gm) export(ctmcdlogLik) export(gmci) export(gmci.default) export(print.gmci) export(plot.gmci) export(expmMC) S3method(gm,default) S3method(plot,gm) S3method(print,gm) S3method(summary,gm) S3method(gmci,default) S3method(plot,gmci) S3method(print,gmci) ctmcd/data/0000755000176200001440000000000013156514133012257 5ustar liggesusersctmcd/data/tm_abs.rda0000644000176200001440000000036713156514133014222 0ustar liggesusers r0b```b`fff`b2Y# 'f+ɍOL**A` 8A%͇ ('B0;Bwo {tqBki?9P;//~ct(9%3H2(*KM&!a::P&c0;99d,F8p@`0(ctmcd/R/0000755000176200001440000000000013304501770011545 5ustar liggesusersctmcd/R/gm.R0000644000176200001440000000007113156514133012273 0ustar liggesusersgm <- function (tm, te, method, ...) UseMethod("gm") ctmcd/R/plot.gm.R0000644000176200001440000000044613156514133013256 0ustar liggesusersplot.gm <- function (x, mattext, col = c("grey", "red"), main = x$method, las = 1, xlab = "To", ylab = "From", xnames, ynames, cex = 1, fig = 3, opacity_factor, ...) { plotM(x$par, mattext, col, main, las, xlab, ylab, xnames, ynames, cex, fig, opacity_factor) } ctmcd/R/ciEMoFI.R0000644000176200001440000000632113303773026013111 0ustar liggesusersciEMoFI=function (x, alpha, eps = 1e-04, expmethod = "PadeRBS") { JVector = function(h, i) { J = rep(0, h) J[i] = 1 J } JMatrix = function(h, i, j) { J = matrix(0, h, h) J[i, j] = 1 J } signif_level = alpha Q = x$par h = nrow(Q) te = x$te tmabs = x$tm QUseable = matrix(0, h, h) for (i in 1:h) { for (j in 1:h) { if (Q[i, j] > eps && j != i) QUseable[i, j] = 1 } } VQ = matrix(0, sum(sum(QUseable)), 2) Points = length(VQ[, 1]) counter = 1 for (i in 1:h) { for (j in 1:h) { if (QUseable[i, j] == 1) { VQ[counter, 1] = i VQ[counter, 2] = j counter = counter + 1 } } } Hess = matrix(0, Points, Points) LowerPart1 = matrix(0, h, h) LowerPart2 = matrix(0, 2 * h, 2 * h) ExpQ = expm(Q * te, method = expmethod) Ceta=list() MatrixExponentialeta=list() for(i in 1:Points){ alpha = VQ[i, 1] beta = VQ[i, 2] UpperParteta = JVector(h, alpha) %*% t(JVector(h,beta)) - JVector(h, alpha) %*% t(JVector(h, alpha)) Ceta[[i]] = rbind(cbind(Q, UpperParteta), cbind(LowerPart1, Q)) MatrixExponentialeta[[i]] = expm(Ceta[[i]] * te, method = expmethod) } for (i in 1:Points) { alpha = VQ[i, 1] beta = VQ[i, 2] for (j in 1:Points) { mu = VQ[j, 1] nu = VQ[j, 2] UpperPartxi = rbind(cbind(JVector(h, mu) %*% t(JVector(h, nu)) - JVector(h, mu) %*% t(JVector(h,mu)), LowerPart1), cbind(LowerPart1, JVector(h,mu) %*% t(JVector(h, nu)) - JVector(h, mu) %*% t(JVector(h, mu)))) Cxi = rbind(cbind(Ceta[[i]], UpperPartxi), cbind(LowerPart2, Ceta[[i]])) MatrixExponentialxi = expm(Cxi * te, method = expmethod) for (s in 1:h) { for (r in 1:h) { if (tmabs[s, r] > 0) { Hess[i, j] = Hess[i, j] + tmabs[s, r] * ExpQ[s, r]^(-1) *( MatrixExponentialxi[s,r+3*h] -ExpQ[s, r]^(-1) * MatrixExponentialeta[[i]][s, h+ r])*MatrixExponentialeta[[j]][s,h+r] } } } } } CVmat = -solve((Hess + t(Hess))/2) SEvec = sqrt(diag(CVmat)) SEmat = matrix(0, nrow(tmabs), nrow(tmabs)) for (k in 1:length(VQ[, 1])) { SEmat[VQ[k, 1], VQ[k, 2]] = SEvec[k] } diagse = vector(length = nrow(tmabs)) for (i in unique(VQ[, 1])) { elem = VQ[which(VQ[, 1] == i), 2] if (length(elem) == 1) { diagse[i] = SEmat[i, elem] } else { combs = combn(elem, 2) CVsum = 0 for (k in 1:ncol(combs)) { par1 = intersect(which(VQ[, 1] == i), which(VQ[,2] == combs[1, k])) par2 = intersect(which(VQ[, 1] == i), which(VQ[,2] == combs[2, k])) CVsum = CVsum + CVmat[par1, par2] } diagse[i] = sqrt(sum(SEmat[i, elem]^2) + 2 * CVsum) } } diag(SEmat) = diagse lowermat = Q - qnorm(1 - signif_level/2) * SEmat lowermat[which(SEmat == 0)] = NA lowermat[which(diag(Q) == 0), ] = 0 uppermat = Q + qnorm(1 - signif_level/2) * SEmat uppermat[which(SEmat == 0)] = NA uppermat[which(diag(Q) == 0), ] = 0 limits = list(lower = lowermat, upper = uppermat, FI=Hess, CVmat=CVmat) limits } ctmcd/R/summary.gm.R0000644000176200001440000000064113156514133013772 0ustar liggesuserssummary.gm <- function (object, ...) { cat("Call:\n") print(object$call) cat("\nMethod:\n") print(object$method) cat("\nParameters:\n") print(signif(object$par, 4)) if (!is.null(object$burnin)) { cat("\nBurn-in:\n") print(object$burnin) } if (!is.null(object$niter)) { cat("\nNumber of Iterations:\n") print(object$niter) } } ctmcd/R/tmci.R0000644000176200001440000000746113304541652012637 0ustar liggesusers tmci=function (gmem, alpha, te, eps = 1e-04, expmethod = "PadeRBS") { JVector = function(h, i) { J = rep(0, h) J[i] = 1 J } JMatrix = function(h, i, j) { J = matrix(0, h, h) J[i, j] = 1 J } signif_level = alpha Q = gmem$par h = nrow(Q) te0 = gmem$te tmabs = gmem$tm QUseable = matrix(0, h, h) for (i in 1:h) { for (j in 1:h) { if (Q[i, j] > eps && j != i) QUseable[i, j] = 1 } } VQ = matrix(0, sum(sum(QUseable)), 2) Points = length(VQ[, 1]) counter = 1 for (i in 1:h) { for (j in 1:h) { if (QUseable[i, j] == 1) { VQ[counter, 1] = i VQ[counter, 2] = j counter = counter + 1 } } } Hess = matrix(0, Points, Points) Jacobian = matrix(0, h^2, Points) LowerPart1 = matrix(0, h, h) LowerPart2 = matrix(0, 2 * h, 2 * h) ExpQ = expm(Q * te0, method = expmethod) Ceta = list() MatrixExponentialeta = list() MatrixExponentialetate = list() for (i in 1:Points) { alpha = VQ[i, 1] beta = VQ[i, 2] UpperParteta = JVector(h, alpha) %*% t(JVector(h, beta)) - JVector(h, alpha) %*% t(JVector(h, alpha)) Ceta[[i]] = rbind(cbind(Q, UpperParteta), cbind(LowerPart1, Q)) MatrixExponentialeta[[i]] = expm(Ceta[[i]] * te0, method = expmethod) MatrixExponentialetate[[i]] = expm(Ceta[[i]] * te, method = expmethod) } for (i in 1:Points) { alpha = VQ[i, 1] beta = VQ[i, 2] for (j in 1:Points) { mu = VQ[j, 1] nu = VQ[j, 2] UpperPartxi = rbind(cbind(JVector(h, mu) %*% t(JVector(h, nu)) - JVector(h, mu) %*% t(JVector(h, mu)), LowerPart1), cbind(LowerPart1, JVector(h, mu) %*% t(JVector(h, nu)) - JVector(h, mu) %*% t(JVector(h, mu)))) Cxi = rbind(cbind(Ceta[[i]], UpperPartxi), cbind(LowerPart2, Ceta[[i]])) MatrixExponentialxi = expm(Cxi * te0, method = expmethod) for (s in 1:h) { for (r in 1:h) { Jacobian[(s - 1) * h + r, i] = MatrixExponentialetate[[i]][s, h + r] if (tmabs[s, r] > 0) { Hess[i, j] = Hess[i, j] + tmabs[s, r] * ExpQ[s, r]^(-1) * (MatrixExponentialxi[s, r + 3 * h] - ExpQ[s, r]^(-1) * MatrixExponentialeta[[i]][s, h + r] * MatrixExponentialeta[[j]][s, h + r]) } } } } } CVmat = solve(-Hess) SEmat = matrix(0, h, h) for (s0 in 1:h) { for (sT in 1:h) { SEmat[s0, sT] = t(Jacobian[(s0 - 1) * h + sT, ]) %*% CVmat %*% t(t(Jacobian[(s0 - 1) * h + sT, ])) } } SEmat[which(diag(Q) == 0), ] = 0 SEmat = sqrt(SEmat) P = expm(Q * te) lowermat = P - qnorm(1 - signif_level/2) * SEmat uppermat = P + qnorm(1 - signif_level/2) * SEmat limits = list(lower = lowermat, upper = uppermat, SE = SEmat) limits$method=paste0(te, " Period Delta Method Confidence Interval") limits$par=expm(gmem$par*te) limits$alpha=signif_level class(limits) = "gmci" limits } ctmcd/R/ciEMBS.R0000644000176200001440000000740413157574171012752 0ustar liggesusersciEMBS <- function (x, alpha, eps = 1e-04, expmethod = "PadeRBS") { tmabs = x$tm te = x$te ERiT_func = function(x, Q, i0, j0, i, j, ...) { n = nrow(Q) Q[i0, j0] = x diag(Q) = 0 diag(Q) = -rowSums(Q) dtt = expm(Q * te, method = expmethod) uitui = matrix(0, n, n) uitui[i, i] = 1 augmat = rbind(cbind(Q, uitui), cbind(matrix(0, n, n), Q)) caseRiT = expm(te * augmat, method = expmethod)[1:n, (n + 1):(2 * n)] ERiT = sum(tmabs * caseRiT/dtt, na.rm = TRUE) ERiT } ENijT_func = function(x, Q, i0, j0, i, j, ...) { n = nrow(Q) Q[i0, j0] = x diag(Q) = 0 diag(Q) = -rowSums(Q) dtt = expm(Q * te, method = expmethod) uituj = matrix(0, n, n) uituj[i, j] = 1 augmat = rbind(cbind(Q, uituj), cbind(matrix(0, n, n), Q)) caseNijT = Q[i, j] * expm(te * augmat, method = expmethod)[1:n, (n + 1):(2 * n)] ENijT = sum(tmabs * caseNijT/dtt, na.rm = TRUE) ENijT } ParMat = x$par ParMat[which(x$par < eps)] = 0 npar = sum(ParMat > 0) ivec = as.vector(row(ParMat) * (ParMat != 0)) jvec = as.vector(col(ParMat) * (ParMat != 0)) ivec = ivec[which(ivec != 0)] jvec = jvec[which(jvec != 0)] diag(ParMat) = -rowSums(ParMat) FI = matrix(0, length(ivec), length(jvec)) for (k in 1:length(ivec)) { for (l in 1:length(ivec)) { if (l == k) { ERiTder = grad(ERiT_func, x = x$par[ivec[k], jvec[k]], Q = x$par, i0 = ivec[k], j0 = jvec[k], i = ivec[k], j = jvec[k]) ENijTder = grad(ENijT_func, x = x$par[ivec[k], jvec[k]], Q = x$par, i0 = ivec[k], j0 = jvec[k], i = ivec[k], j = jvec[k]) FI[k, k] = 1/x$par[ivec[k], jvec[k]]^2 * x$ENijT[ivec[k], jvec[k]] - 1/x$par[ivec[k], jvec[k]] * ENijTder + ERiTder } else { ERiTder = grad(ERiT_func, x = x$par[ivec[l], jvec[l]], Q = x$par, i0 = ivec[l], j0 = jvec[l], i = ivec[k], j = jvec[k]) ENijTder = grad(ENijT_func, x = x$par[ivec[l], jvec[l]], Q = x$par, i0 = ivec[l], j0 = jvec[l], i = ivec[k], j = jvec[k]) FI[k, l] = -1/x$par[ivec[k], jvec[k]] * ENijTder + ERiTder } } } CVmat = solve((FI + t(FI))/2) SEvec = sqrt(diag(CVmat)) SEmat = matrix(0, nrow(tmabs), nrow(tmabs)) for (k in 1:length(ivec)) { SEmat[ivec[k], jvec[k]] = SEvec[k] } diagse = vector(length = nrow(tmabs)) for (i in unique(ivec)) { elem = jvec[which(ivec == i)] if (length(elem) == 1) { diagse[i] = SEmat[i, elem] } else { combs = combn(elem, 2) CVsum = 0 for (k in 1:ncol(combs)) { par1 = intersect(which(ivec == i), which(jvec == combs[1, k])) par2 = intersect(which(ivec == i), which(jvec == combs[2, k])) CVsum = CVsum + CVmat[par1, par2] } diagse[i] = sqrt(sum(SEmat[i, elem]^2) + 2 * CVsum) } } diag(SEmat) = diagse lowermat = x$par - qnorm(1 - alpha/2) * SEmat lowermat[which(SEmat == 0)] = NA lowermat[which(diag(x$par) == 0), ] = 0 uppermat = x$par + qnorm(1 - alpha/2) * SEmat uppermat[which(SEmat == 0)] = NA uppermat[which(diag(x$par) == 0), ] = 0 limits = list(lower = lowermat, upper = uppermat) limits } ctmcd/R/ciGS.R0000644000176200001440000000107613156514133012523 0ustar liggesusersciGS <- function (x, alpha) { draws = length(x$draws) n = nrow(x$draws[[1]]) draws = length(x$draws) data = matrix(unlist(x$draws), n^2, draws) lowermat = matrix(0, n, n) uppermat = matrix(0, n, n) for (row in 1:n) { for (col in 1:n) { lowermat[row, col] = quantile(data[(col - 1) * n + row, ], alpha/2) uppermat[row, col] = quantile(data[(col - 1) * n + row, ], 1 - alpha/2) } } limits = list(lower = lowermat, upper = uppermat) limits } ctmcd/R/plot.gmci.R0000644000176200001440000000115513156514133013570 0ustar liggesusersplot.gmci <- function (x, mattext, col = c("grey", "red"), main, las = 1, xlab = "To", ylab = "From", xnames, ynames, cex = 1, fig = 2, opacity_factor, ...) { if (missing(main)) { main = paste0(round(100 * (1 - x$alpha), 3), "% ", x$method) } n = nrow(x$par) if (missing(mattext)) { mattext = matrix(paste0("[", signif(x$lower, fig), "; ", signif(x$upper, fig), "]"), n, n) mattext[which(is.na(x$lower) & is.na(x$upper))] = "" } plotM(x$par, mattext, col, main, las, xlab, ylab, xnames, ynames, cex, fig, opacity_factor) } ctmcd/R/print.gmci.R0000644000176200001440000000036513156514133013750 0ustar liggesusersprint.gmci <- function (x, ...) { cat("Call:\n") print(x$call) cat("\nMethod:\n") print(x$method) cat("\nLower Limit:\n") print(signif(x$lower, 4)) cat("\nUpper Limit:\n") print(signif(x$upper, 4)) } ctmcd/R/gmci.default.R0000644000176200001440000000137513304502134014233 0ustar liggesusersgmci.default <- function (gm, alpha, eps = 1e-04, cimethod= "Direct", expmethod = "PadeRBS", ...) { if (gm$method == "Expectation-Maximization Algorithm") { if(cimethod=="SdR"){ limits = ciEMSdR(gm, alpha, eps, expmethod) } if(cimethod=="BS"){ limits = ciEMBS(gm, alpha, eps, expmethod) } if(cimethod=="Direct"){ limits = ciEMoFI(gm, alpha, eps, expmethod) } limits$method = "Wald Confidence Interval" } if (gm$method == "Gibbs Sampler") { limits = ciGS(gm, alpha) limits$method = "Equal Tailed Credibility Interval" } limits$par = gm$par limits$alpha = alpha limits$call = match.call() class(limits) = "gmci" limits } ctmcd/R/gmGS.R0000644000176200001440000000573513157013160012534 0ustar liggesusersgmGS <- function (tmabs, te, prior, burnin, conv_pvalue = 0, conv_freq = 10, niter = 10000, sampl_method = "Unif", expmethod = "PadeRBS", verbose = FALSE, combmat = NULL, sampl_func = NULL) { n = ncol(tmabs) gmest = matrix(0, n, n) for (i in 1:n) { for (j in setdiff(1:n, i)) { gmest[i, j] = rgamma(1, prior[[1]][i, j], rate = prior[[2]][i]) } } diag(gmest) = -rowSums(gmest) gmestList = list() count = 0 if(verbose==TRUE){ pb=txtProgressBar(min=0,max=burnin+niter,title="Burn-in",style=3) } repeat { if (sampl_method == "Unif") { draw = rNijTRiT_Unif(tmabs, te, gmest, expm(gmest, method = expmethod)) } else if (sampl_method == "ModRej") { draw = rNijTRiT_ModRej(tmabs, te, gmest) } else if (sampl_method == "Comb") { Mmat = (combmat == "U") * tmabs Umat = (combmat == "M") * tmabs Mdraw = rNijTRiT_ModRej(Mmat, te, gmest) Udraw = rNijTRiT_Unif(Umat, te, gmest, expm(gmest, method = expmethod)) draw = list() draw$NijT = Mdraw$NijT + Udraw$NijT draw$RiT = Mdraw$RiT + Udraw$RiT } else if (sampl_method == "Ext") { draw = sampl_func(tmabs, te, gmest) } for (i in 1:n) { for (j in setdiff(1:n, i)) { gmest[i, j] = rgamma(1, draw$NijT[i, j] + prior[[1]][i, j], rate = (draw$RiT[i] + prior[[2]][i])) } } diag(gmest) = 0 diag(gmest) = -rowSums(gmest) count = count + 1 if (count > burnin) { gmestList[[length(gmestList) + 1]] = gmest } if (verbose == TRUE) setTxtProgressBar(pb,count) if (conv_pvalue>0 && count > burnin + 10 && (count - burnin)%%round(niter/conv_freq) == 0) { parmat = t(matrix(unlist(gmestList), n^2)) parmat2 = parmat[, which(colSums(parmat) > 0)] mcmcobj = as.mcmc(parmat2) heidel = heidel.diag(mcmcobj, pvalue = conv_pvalue) if (verbose == TRUE) { print("Check Convergence") } if (sum(heidel[, 1]) == length(heidel[, 1]) & sum(heidel[, 4]) == length(heidel[, 4])) { if (verbose == TRUE) { print("Converged according to Heidelberger and Welch Criterion") } break } if (verbose == TRUE) { print("Not Converged according to Heidelberger and Welch Criterion") } } if (count == (burnin + niter)) break } gmall = Reduce("+", gmestList)/(count - burnin) colnames(gmall) = colnames(tmabs) rownames(gmall) = rownames(tmabs) est = list(par = gmall, burnin = burnin, niter = count, draws = gmestList) return(est) } ctmcd/R/gmEM.R0000644000176200001440000000370313156514133012522 0ustar liggesusersgmEM <- function (tmabs, te, gmguess, eps = 1e-06, niter = 10000, expmethod = "PadeRBS", verbose = FALSE) { n = ncol(tmabs) if (nrow(tmabs) == n - 1) { tmabs = rbind(tmabs, rep(0, n)) } llvec = NULL gmprev = gmguess for (k in 1:niter) { dtt = expm(gmprev * te, method = expmethod) ERiT = rep(0, n) for (i in 1:n) { uitui = matrix(0, n, n) uitui[i, i] = 1 augmat = rbind(cbind(gmprev, uitui), cbind(matrix(0, n, n), gmprev)) caseRiT = expm(te * augmat, method = expmethod)[1:n, (n + 1):(2 * n)] ERiT[i] = ERiT[i] + sum(tmabs * caseRiT/dtt, na.rm = TRUE) } ENijT = matrix(0, n, n) for (i in 1:n) { for (j in setdiff(1:n, i)) { uituj = matrix(0, n, n) uituj[i, j] = 1 augmat = rbind(cbind(gmprev, uituj), cbind(matrix(0, n, n), gmprev)) caseNijT = gmprev[i, j] * expm(te * augmat, method = expmethod)[1:n, (n + 1):(2 * n)] ENijT[i, j] = ENijT[i, j] + sum(tmabs * caseNijT/dtt, na.rm = TRUE) } } gmest = rbind(ENijT/ERiT) diag(gmest) = -rowSums(gmest) gmprev = gmest ll = ctmcdlogLik(gmest, tmabs, te) llvec = c(llvec, ll) rel_err = abs(llvec[length(llvec)] - llvec[length(llvec) - 1])/abs(llvec[length(llvec) - 1]) if (verbose == TRUE) { print(paste0("Iteration: ", k, " Log-Likelihood: ", signif(ll, 6))) } if (k > 2 && rel_err <= eps) { break } } colnames(gmest) = colnames(tmabs) rownames(gmest) = rownames(tmabs) est = list(par = gmest, niter = k, eps = rel_err, ll = llvec, ENijT = ENijT, ERiT = ERiT) return(est) } ctmcd/R/plotM.R0000644000176200001440000000372313156514133012772 0ustar liggesusersplotM <- function (mat, mattext, col = c("grey", "red"), main, las = 1, xlab = "To", ylab = "From", xnames, ynames, cex = min(1, nrow(mat)/8), fig = 3, opacity_factor) { mat = as.matrix(mat) if (missing(main)) { main = "" } if (missing(mattext)) { mattext = round(mat, fig) } if (missing(xnames)) { xnames = dimnames(mat)[[2]] } if (missing(ynames)) { ynames = dimnames(mat)[[1]] } nc = ncol(mat) nr = nrow(mat) posmat = mat posmat[which(posmat <= 0)] = NA negmat = mat negmat[which(mat >= 0)] = NA if (missing(opacity_factor)) { opacity_factor = vector(length = 2) if (prod(is.na(posmat)) == 0) { opacity_factor[1] = max(posmat[which(posmat > 0)])/quantile(posmat[which(posmat > 0)], 0.75)[[1]] } if (prod(is.na(negmat)) == 0) { opacity_factor[2] = max(abs(negmat)[which(negmat < 0)])/quantile(abs(negmat)[which(negmat < 0)], 0.75)[[1]] } } specp = rev(1 - ((0:(nr * nc))/(nr * nc))^opacity_factor[1]) specn = rev(1 - ((0:(nr * nc))/(nr * nc))^opacity_factor[2]) if (prod(is.na(posmat)) == 0) { image(t(apply(posmat, 2, rev)), col = rgb(t(col2rgb(col[1]))/255, alpha = specp), main = main, axes = F, zlim = c(0, max(mat)), xlab = xlab, ylab = ylab) } if (prod(is.na(negmat)) == 0) { image(t(apply(abs(negmat), 2, rev)), col = rgb(t(col2rgb(col[2]))/255, alpha = specn), main = main, axes = F, zlim = c(0, abs(min(mat))), xlab = xlab, ylab = ylab, add = T) } axis(1, (0:(nc - 1))/(nc - 1), xnames, las = las) axis(2, (0:(nr - 1))/(nr - 1), rev(ynames), las = las) rvec = (0:(nr - 1)/(nr - 1)) cvec = (0:(nc - 1)/(nc - 1)) for (j in 1:nr) { text(cvec, 1 - rvec[j], mattext[j, ], cex = cex) } } ctmcd/R/gm.default.R0000644000176200001440000000246313156514133013725 0ustar liggesusersgm.default <- function (tm, te, method, gmguess = NULL, prior = NULL, burnin = NULL, eps = 1e-06, conv_pvalue = 0.05, conv_freq = 10, niter = 10000, sampl_func = NULL, combmat = NULL, sampl_method = "Unif", logmethod = "Eigen", expmethod = "PadeRBS", verbose = FALSE, ...) { tm = as.matrix(tm) te = as.numeric(te) est = list() if (method == "DA") { est$par = gmDA(tmrel = tm, te, logmethod = logmethod) est$method = "Diagonal Adjustment" } else if (method == "WA") { est$par = gmWA(tmrel = tm, te, logmethod = logmethod) est$method = "Weighted Adjustment" } else if (method == "QO") { est$par = gmQO(tmrel = tm, te, logmethod = logmethod) est$method = "Quasi Optimization" } else if (method == "EM") { est = gmEM(tmabs = tm, te, gmguess, eps, niter, expmethod, verbose) est$method = "Expectation-Maximization Algorithm" } else if (method == "GS") { est = gmGS(tmabs = tm, te, prior, burnin, conv_pvalue, conv_freq, niter, sampl_method, expmethod, verbose, combmat, sampl_func) est$method = "Gibbs Sampler" } est$call = match.call() est$tm = tm est$te = te class(est) = "gm" est } ctmcd/R/ciEMSdR.R0000644000176200001440000001245113166742536013136 0ustar liggesusersciEMSdR=function(x,alpha,eps=1e-04,expmethod="PadeRBS"){ JVector = function(h,i){ J = rep(0,h) J[i] = 1 J } JMatrix = function(h,i,j){ J = matrix(0,h,h) J[i,j] = 1 J } signif_level = alpha Q = x$par h = nrow(Q) te = x$te tmabs = x$tm QUseable = matrix(0,h,h) for(i in 1:h){ for(j in 1:h){ if(Q[i,j]>eps && j!=i) QUseable[i,j] = 1 } } VQ = matrix(0,sum(sum(QUseable)),2) Points = length(VQ[,1]) counter = 1 for(i in 1:h){ for(j in 1:h){ if(QUseable[i,j]==1){ VQ[counter,1] = i VQ[counter,2] = j counter = counter+1 } } } Q = Q*(Q>eps) diag(Q) = -rowSums(Q) Hess = matrix(0,Points,Points) LowerPart1 = matrix(0,h,h) LowerPart2 = matrix(0,2*h,2*h) for(i in 1:Points){ for(j in 1:Points){ alpha = VQ[i,1] beta = VQ[i,2] mu = VQ[j,1] nu = VQ[j,2] UpperPartgamma = Q[mu,nu]*JVector(h,mu)%*%t(JVector(h,nu)) #Build the matrix to be exponentiated. Cgamma = rbind(cbind(Q,UpperPartgamma),cbind(LowerPart1,Q)) MatrixExponentialgamma = expm(Cgamma*te,method=expmethod) #eta UpperParteta = JVector(h,alpha)%*%t(JVector(h,beta))-JVector(h,alpha)%*%t(JVector(h,alpha)) #JVector is a row vector #Build the matrix to be exponentiated. Ceta = rbind(cbind(Q,UpperParteta),cbind(LowerPart1,Q)) MatrixExponentialeta = expm(Ceta*te,method=expmethod) #phi UpperPartphi = JVector(h,mu)%*%t(JVector(h,mu)) #JVector is a row vector #Build the matrix to be exponentiated. Cphi = rbind(cbind(Q,UpperPartphi),cbind(LowerPart1, Q)) MatrixExponentialphi = expm(Cphi*te,method=expmethod) #Let us now calculate the bigger matrices #psi #derivative of Cgamma DCgammaUpper = JVector(h,mu)%*%t(JVector(h,nu))*(mu==alpha && nu==beta) UpperPartpsi = rbind(cbind(JVector(h,alpha)%*%t(JVector(h,beta))-JVector(h,alpha)%*%t(JVector(h,alpha)),DCgammaUpper), cbind(LowerPart1, JVector(h,alpha)%*%t(JVector(h,beta))-JVector(h,alpha)%*%t(JVector(h,alpha)))) #Build the matrix to be exponentiated. Cpsi = rbind(cbind(Cgamma,UpperPartpsi),cbind(LowerPart2, Cgamma)) MatrixExponentialpsi = expm(Cpsi*te,method=expmethod) #omega #derivative of Cphi UpperPartomega = rbind(cbind(JVector(h,alpha)%*%t(JVector(h,beta))-JVector(h,alpha)%*%t(JVector(h,alpha)),LowerPart1), cbind(LowerPart1, JVector(h,alpha)%*%t(JVector(h,beta))-JVector(h,alpha)%*%t(JVector(h,alpha)))) #Build the matrix to be exponentiated. Comega = rbind(cbind(Cphi,UpperPartomega), cbind(LowerPart2, Cphi)) MatrixExponentialomega = expm(Comega*te,method=expmethod) ExpQ = expm(Q*te,method=expmethod) #Now we can calculate the entries in the Hessian. #The formula for this is written down explicitly in the paper for(s in 1:(h-1)){ for(r in 1:h){ if(tmabs[s,r]>0){ Hess[i,j] = Hess[i,j]+tmabs[s,r]*(-(1/Q[mu,nu]^2)*(ExpQ[s,r])^(-1)*(MatrixExponentialgamma[s,r+h])*(mu==alpha && nu==beta) -(1/Q[mu,nu])*(ExpQ[s,r])^(-2)*(MatrixExponentialeta[s,r+h])*(MatrixExponentialgamma[s,r+h]) +(1/Q[mu,nu])*(ExpQ[s,r])^(-1)*(MatrixExponentialpsi[s,r+3*h]) + (ExpQ[s,r])^(-2)*(MatrixExponentialeta[s,r+h])*(MatrixExponentialphi[s,r+h]) -(ExpQ[s,r])^(-1)*(MatrixExponentialomega[s,r+3*h])) } } } } } #In order to find the information matrix we must take the negative of the #Hessian and invert it. So the information matrix is, CVmat= -solve((Hess+t(Hess))/2) #The estimates of the variance of q is the diagonal elements of Fisher #Recall for the normal distribution it is 1.96 standard deviations from the #mean. SEvec = sqrt(diag(CVmat)) SEmat = matrix(0, nrow(tmabs), nrow(tmabs)) for (k in 1:length(VQ[,1])) { SEmat[VQ[k,1], VQ[k,2]] = SEvec[k] } diagse = vector(length = nrow(tmabs)) for (i in unique(VQ[,1])) { elem = VQ[which(VQ[,1] == i),2] if (length(elem) == 1) { diagse[i] = SEmat[i, elem] } else { combs = combn(elem, 2) CVsum = 0 for (k in 1:ncol(combs)) { par1 = intersect(which(VQ[,1] == i), which(VQ[,2] == combs[1, k])) par2 = intersect(which(VQ[,1] == i), which(VQ[,2] == combs[2, k])) CVsum = CVsum + CVmat[par1, par2] } diagse[i] = sqrt(sum(SEmat[i, elem]^2) + 2 * CVsum) } } diag(SEmat) = diagse lowermat = Q - qnorm(1 - signif_level/2) * SEmat lowermat[which(SEmat == 0)] = NA lowermat[which(diag(Q) == 0), ] = 0 uppermat = Q + qnorm(1 - signif_level/2) * SEmat uppermat[which(SEmat == 0)] = NA uppermat[which(diag(Q) == 0), ] = 0 limits = list(lower = lowermat, upper = uppermat) limits } ctmcd/R/gmWA.R0000644000176200001440000000074613156514133012534 0ustar liggesusersgmWA <- function (tmrel, te, logmethod = "Eigen") { n = nrow(tmrel) gmest = logm(tmrel, method = logmethod)/te for (i in 1:(n - 1)) { gmiNeg = -sum((gmest * (gmest < 0))[i, setdiff(1:n, i)]) gmiPos = sum((gmest * (gmest > 0))[i, ]) gmest[i, setdiff(1:n, i)] = gmest[i, setdiff(1:n, i)] - gmiNeg/gmiPos * abs(gmest[i, setdiff(1:n, i)]) } gmest[setdiff(which(gmest < 0), seq(1, n^2, n + 1))] = 0 return(gmest) } ctmcd/R/ctmcdlogLik.R0000644000176200001440000000042713156514133014131 0ustar liggesusersctmcdlogLik <- function (gm, tmabs, te) { P = expm(gm * te) ll = 0 for (i in 1:nrow(P)) { for (j in 1:ncol(P)) { if (P[i, j] > 0) { ll = ll + tmabs[i, j] * log(P[i, j]) } } } return(ll) } ctmcd/R/gmQO.R0000644000176200001440000000151013156514133012532 0ustar liggesusersgmQO <- function (tmrel, te, logmethod = "Eigen") { n = nrow(tmrel) gmest = logm(tmrel, method = logmethod)/te for (i in 1:n) { a = gmest[i, ] lambda = mean(a) aorder = order(a + lambda) aest = a[aorder] for (m in 2:n) { if ((n - m + 1) * aest[m + 1] - (aest[1] + sum(aest[(m + 1):n])) >= 0) { mstar = m break } } zstar = NULL for (j in 1:n) { if (j %in% 2:mstar) { zstar = c(zstar, 0) } else { zstar = c(zstar, aest[j] - 1/(n - mstar + 1) * (aest[1] + sum(aest[(mstar + 1):n]))) } } gmest[i, ] = zstar[order(aorder)] } return(gmest) } ctmcd/R/RcppExports.R0000644000176200001440000000103513156514663014172 0ustar liggesusers# Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 rNijTRiT_ModRej <- function(tmabs, te, gm) { .Call('ctmcd_rNijTRiT_ModRej', PACKAGE = 'ctmcd', tmabs, te, gm) } rNijTRiT_Unif <- function(tmabs, te, gm, tpm) { .Call('ctmcd_rNijTRiT_Unif', PACKAGE = 'ctmcd', tmabs, te, gm, tpm) } # Register entry points for exported C++ functions methods::setLoadAction(function(ns) { .Call('ctmcd_RcppExport_registerCCallable', PACKAGE = 'ctmcd') }) ctmcd/R/gmDA.R0000644000176200001440000000030213156514133012475 0ustar liggesusersgmDA <- function (tmrel, te, logmethod = "Eigen") { gmest = logm(tmrel, method = logmethod)/te gmest[which(gmest < 0)] = 0 diag(gmest) = -rowSums(gmest) return(gmest) } ctmcd/R/print.gm.R0000644000176200001440000000020713156514133013427 0ustar liggesusersprint.gm <- function (x, ...) { cat("Call:\n") print(x$call) cat("\nParameters:\n") print(signif(x$par, 4)) } ctmcd/R/gmci.R0000644000176200001440000000007013156514133012606 0ustar liggesusersgmci <- function (gm, alpha, ...) UseMethod("gmci") ctmcd/R/expmMC.R0000644000176200001440000000177613166662617013112 0ustar liggesusersexpmMC = function(gm, t, method="PadeRBS",order=8) { if (!requireNamespace("markovchain", quietly = TRUE)) { stop("markovchain is needed for this function to work. Please install it.", call. = FALSE) } if(!(class(gm) %in% c("gm","matrix","Matrix"))) stop("Error! Expecting either a matrix or a gm object") if ( class(gm) %in% c("matrix","Matrix")) generator_matrix = gm else generator_matrix = as.matrix(gm[["par"]]) transitionMatrix = expm(generator_matrix*t,method=method,order=order) out = list() attr(out,"states") = letters[1:nrow(transitionMatrix)] attr(out,"byrow") = TRUE rownames(transitionMatrix) = letters[1:nrow(transitionMatrix)] colnames(transitionMatrix) = letters[1:ncol(transitionMatrix)] attr(out,"transitionMatrix") = transitionMatrix attr(out,"name") = "Unnamed Markov chain" class(out) = "markovchain" attr(attr(out,"class"),"package") = "markovchain" out = asS4(out) return(out) } ctmcd/vignettes/0000755000176200001440000000000013413134054013352 5ustar liggesusersctmcd/vignettes/ctmcd_vignette.Rmd0000644000176200001440000000676713304502710017032 0ustar liggesusers%\VignetteEngine{knitr::rmarkdown} %\VignetteIndexEntry{A ctmcd Guide} ```{r setup, include=FALSE} library(knitr) ``` # A ctmcd Guide ## Introduction ctmcd is a package for the estimation of Markov generator matrices (i.e., the parameters of a continuous-time Markov chain) for the special case, that only discrete-time observations are given. The implemented methods to derive these estimates are diagonal adjustment ("DA", Israel et al., 2001), weighted adjustment ("WA", Israel et al., 2001), quasi-optimization ("QO", Kreinin and Sidelnikova, 2001), an instance of the expectation-maximization algorithm ("EM", Bladt and Soerensen, 2005) and a Gibbs Sampler ("GS", Bladt and Soerensen, 2005). For the expectation-maximization algorithm a Wald confidence interval according to the method of Oakes, 1999 can be derived. For the posterior mean estimate from the Gibbs sampler, an equal tailed credibility interval as outlined in Bladt and Soerensen, 2009 is implemented. ```{r} library(ctmcd) ``` ## Generator Matrix Estimation In order to perform a generator matrix estimate, the discrete time data must be available as a matrix of either absolute ("EM", "GS") or relative transition frequencies ("DA", "WA", "QO"), depending on the method employed. ```{r} data(tm_abs) ``` loads a credit transition example data set. In order to perform a diagonal adjustment generator matrix estimate, this data has to be converted into a matrix of relative transition frequencies first. Then, the gm method can be employed, requiring the time elapsed in the discrete time transition process, which is 1 as the example data has a single-year time horizon and furthermore a method specification, which is "DA" in this case. ```{r} tm_rel=rbind((tm_abs/rowSums(tm_abs))[1:7,],c(rep(0,7),1)) gmda=gm(tm=tm_rel,te=1,method="DA") gmda ``` A maximum likelihood estimate can be obtained by the EM algorithm, additionally requiring a starting value gmguess. ```{r} gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 gmem=gm(tm_abs,te=1,method="EM",gmguess=gm0) gmem ``` ## Confidence / Credibility Intervals Interval estimates of gm objects can only be obtained for the methods "EM" and "GS" by means of the gmci function, e.g., a 95% Wald confidence interval can be obtained by ```{r} ciem=gmci(gmem,alpha=0.05) ``` ## Matrix Plot Function Both, gm and gmci objects can be visualized by the matrix plot function plotM(), which can be easily accessed by the wrapper function plot(). ```{r} plot(gmem) ``` ## References M. Bladt and M. Soerensen: _Statistical Inference for Discretely Observed Markov Jump Processes._ Journal of the Royal Statistical Society B 67(3):395-410, 2005 M. Bladt and M. Soerensen. _Efficient Estimation of Transition Rates Between Credit Ratings from Observations at Discrete Time Points._ Quantitative Finance, 9(2):147-160, 2009 R. B. Israel et al.: _Finding Generators for Markov Chains via Empirical Transition Matrices, with Applications to Credit Ratings._ Mathematical Finance 11(2):245-265, 2001 E. Kreinin and M. Sidelnikova: _Regularization Algorithms for Transition Matrices._ Algo Research Quarterly 4(1):23-40, 2001 M. Pfeuffer: _ctmcd: An R Package for Estimating the Parameters of a Continuous-Time Markov Chain from Discrete-Time Data._ The R Journal 9(2):127-141, 2017 D. Oakes. _Direct calculation of the information matrix via the EM algorithm._ Journal of the Royal Statistical Society: Series B (Statistical Methodology), 61(2):479-482, 1999 ctmcd/vignettes/RJ-2017-038.pdf.asis0000644000176200001440000000041313156522656016230 0ustar liggesusers%\VignetteIndexEntry{ctmcd: An R Package for Estimating the Parameters of a Continuous-Time Markov Chain from Discrete-Time Data} %\VignetteEngine{R.rsp::asis} %\VignetteKeyword{PDF} %\VignetteKeyword{HTML} %\VignetteKeyword{vignette} %\VignetteKeyword{package} ctmcd/MD50000644000176200001440000000616613413137507011671 0ustar liggesusers04fd32ff52fc4a0be74e2e4ff21ae1f6 *DESCRIPTION cacd6005f6a6559737db049fa5a93e7c *NAMESPACE 483c642d6db3f2169b4424f4f193bf0f *R/RcppExports.R a16fd38e3f3024583a0f375a4b91e681 *R/ciEMBS.R 988f1079f528ab326c0dc82b886dd7a2 *R/ciEMSdR.R 47be39da5275eca9cc8e9a2f7f333141 *R/ciEMoFI.R e3bfd1c71613802631993ec1518a9b7f *R/ciGS.R f888783e1897c9bcd870f2a09b98d017 *R/ctmcdlogLik.R 722f3e262777419c23b61a8138d5b768 *R/expmMC.R 9ee61ffb74ef64cd6146851d4c2eebaa *R/gm.R 82b4e0454671ec972d9496c02436fa76 *R/gm.default.R 88398a592e176037840db39c5bb87b33 *R/gmDA.R 3dfba61fcb9acdd3b26159ce57412eff *R/gmEM.R 8e4d4665cb4b9c3442f7a10783d68717 *R/gmGS.R 78d3347e3b44589e1d7c5c2a4b882aaf *R/gmQO.R e1671677ee148d2acac17462bd664b82 *R/gmWA.R e4c991a3d0e9cbd1f94676c6c4493b33 *R/gmci.R c09f412342cdd28b0fa8e9a9653539a7 *R/gmci.default.R 32aaa8beaa773efa65543d6011ee2932 *R/plot.gm.R 301c4b85d28ea8456a0829a3fbf8689d *R/plot.gmci.R cdd823ef614bc324c1ab0ae4281962aa *R/plotM.R c00159d58910bdba2684203a962395c1 *R/print.gm.R 99d6174e20c206fa7daf4d8ce649311e *R/print.gmci.R d703e7010feac5020c5e87ff3c9188bc *R/summary.gm.R 2aaba6ea4d0f8468fb3d88b612ef9748 *R/tmci.R 189bd0a5472433575270499f82c05453 *build/partial.rdb c71ce136fbb68909907932694b65d8f9 *build/vignette.rds d06464f8759c413f32ae4d09e9ba590d *data/tm_abs.rda 30e91a3ca1df632906ba0a50d0be2da6 *inst/doc/RJ-2017-038.pdf f416c029a5c53128d2e9fd50242c7a76 *inst/doc/RJ-2017-038.pdf.asis 1539aa2af88dde207f1d558e9e676900 *inst/doc/ctmcd_vignette.R 61e4fb7d4d75fb401be17c11226bd0fb *inst/doc/ctmcd_vignette.Rmd bd436fddd66e8db00ab9a7228a2cb0e8 *inst/doc/ctmcd_vignette.html 917b7dba7a9de2d1bf3002b6a2145871 *inst/include/ctmcd.h 3b835783f7e1bad81f7f0f18e55926fa *inst/include/ctmcd_RcppExports.h 69b1133bd2cf54e59f38d377dceb3540 *man/ctmcd-package.Rd fb9aa07d11eca80a32496fd79bbcbcb6 *man/ctmcdlogLik.Rd 52fab1a2aa706ed79f57436bf8f2b12f *man/expmMC.Rd 2a6fa86a37bdc15b40a6af6cb1ccdc86 *man/gm.Rd efad5bfbe71f967e951ae5394caa9f10 *man/gm.default.Rd 9dcefa90c8e774f2ffa06a446018b2f3 *man/gmDA.Rd d525ce7b7f7add99ebdd8c4ee03576d9 *man/gmEM.Rd b454d1d77a13a56841b17a1d319d1e57 *man/gmGS.Rd 4594d4cf3de3d0544b75638635d94a90 *man/gmQO.Rd f752e4f1d0f2397d799380a06db155d7 *man/gmWA.Rd 38b5c9de93290738f3a63842cc68c099 *man/gmci.Rd ea580fea4752a05be40ebca9f07af792 *man/gmci.default.Rd e29c0fa0407d28cb99f35b90897974c2 *man/plot.gm.Rd e41806e9e9f9ca0834b96bd9c2e6af2c *man/plot.gmci.Rd fd8334258db28ba9cce0a03a1a3e5cc5 *man/plotM.Rd f91a12f39d7631da92f65bca5162f979 *man/print.gm.Rd dcd603ff7000ae7a604b4cf0d0e7277c *man/print.gmci.Rd 3ce0920d66d8d4b450e4d377cbd625ca *man/rNijTRiT_ModRej.Rd 1adff29e7977a5ad8d6f42483b52d87f *man/rNijTRiT_Unif.Rd b3b49023d8fee253992ea6e6b7a5e2d5 *man/summary.gm.Rd 13193bf3b28d3641ec07ae1445110e4a *man/tm_abs.Rd c0de5272a8a663038cbe7817992562d6 *man/tmci.Rd 2a6f9e9e044a78154d3cfda5936d6f48 *src/Makevars 8d46d69896a1f1d31ed76035a0e49d67 *src/Makevars.win abc469ab9e82a2a373e4e5513f861b69 *src/RcppExports.cpp 99da32a9b61921f782c083e0b6d058d2 *src/init.c ac99e2fa7f1333133cfafb17f0df958d *src/rNijTRiT.cpp f416c029a5c53128d2e9fd50242c7a76 *vignettes/RJ-2017-038.pdf.asis 61e4fb7d4d75fb401be17c11226bd0fb *vignettes/ctmcd_vignette.Rmd ctmcd/build/0000755000176200001440000000000013413134054012441 5ustar liggesusersctmcd/build/vignette.rds0000644000176200001440000000051513413134054015001 0ustar liggesusersmQQO0.l>h|#L4* !:C ̚jn '`ζ*_jXdܰ8^kEspuwb%K``_ @a`w/. ^k Pa)ͳ4}#\#{u?pG܏b*ljNTx#OI-[?ҝ(5vBo3,zj?rqX3h/4OpX(9-[$BΗc8ni#Ul6åGTfXY jǓr^^Y[];}ť@]%=R\Q# 葹rɬ`xedIi("t!56ohWZ 2N )t l}qBU B끌N2NZCq3x=I(q֋*6 {$~kOMr0xAW-p8 >hd>夑WxI Q|8t2T;8m$E!AkO?+Ah=je(+9BQ*bP'뎾VYV>WN^$(Þ=1ŘF@pI|<]W%~JȆj}-ë'w/QE 1\qaPwYA2.u΅rMε^d2ÙȐJ=ֈSA]R4 TL 9Onv9y4~.~9+%,D}\(6Uua*.u۲LViQ1ļe,N1^rN.ɬBh)m )"(^IAR߱.ܨWn/Wˋhe|[I C,L-`>TD;<~XygcubW o7jN[6j3ƌ5\k ƔaFmYrmCr[ҥwV5P/- Ѷ`aXaY?$ YɎc-a"9䁃m&mn';P-2c3J((tnx`^.7($)a*-Zz[.w+k $_@E:L-`>z;*߳$f!:boĴ !\a~7Ymu7u2"U ps.VGa~nՅ2ͥ07ajLM{Z!K ݦ]oU~]k."2o:XԷhϡL%.׊XXkBOy}E텛7*7-ZVHo`8?_WoY'TFWJ2H|2]I.TSK-4_mq8 ,dT="'Iz.Äo _f3l>JQP$ Gz.u,]i -t/xS|薤9BQvy~YzdӨS PIT(p˙Yg ;wV@ REn#r]*8rQ}EђCO} ~uKo"4#u㌔'w^Z @Q8ѵSހ)jkDE-թ>3Xj>Kw{@&K_LDäk~Dp(^WeR"L-`>|MjWYkmin%{B4#"6u\\^ZE CŪ8]T"JY*%թ9~ \?ʡ̎? iT [ 3"Dv?"H˵$#lzacD?k-`C?j E@=yzXu b aVU͑ЦPT8# G&UӰW 78ѡ=r^ΈZ5jC$+Q MTC1)jTFc6ڍ0;ceZ=Q (W=xw? 6*R'"3`ӥaS PWژڴnjZe;y=.|=U`NIVkxՍ,,mU/%a[7|';pG0,YQlJaۺ1cDL[vtΈ B[S`~ M6ud,ͫGTsh%M#3Y1ϊzH_TMzĦcA;5"vRtb&RґJ/ۄՎI>h 8TdP䞉mx2)7NdWQTwBW +NO `b9 c,Qڊ񸤈 `҈,tdTڹcw3ireP I |'Eחņr1 z3 m5l]~A{'FlWqW**N'6*g?Y))(ߕKJIY]Rr!%c=uY>?sJ)PSz(1 YtOY/'ڍFCuS,<ؾd!gukR]T3K6ԩx8c$vӫ˨ o[L=cy 8s1*\|9 &NX2;Ir&.y}=HI•C"'ӿhp /V@nԙ_ #Kctmcd/DESCRIPTION0000644000176200001440000000165413413137507013064 0ustar liggesusersPackage: ctmcd Type: Package Title: Estimating the Parameters of a Continuous-Time Markov Chain from Discrete-Time Data Version: 1.4.1 Date: 2019-01-02 Author: Marius Pfeuffer [aut,cre], Greig Smith [ctb], Goncalo dos Reis [ctb], Linda Moestel [ctb], Matthias Fischer [ctb] Maintainer: Marius Pfeuffer Description: Functions for estimating Markov generator matrices from discrete-time observations. The implemented approaches comprise diagonal adjustment, weighted adjustment and quasi-optimization of matrix logarithm based candidate solutions, an expectation-maximization algorithm as well as a Gibbs sampler. License: GPL-3 Imports: Rcpp (>= 0.12.17), coda, expm, numDeriv Suggests: knitr, rmarkdown, R.rsp, markovchain LinkingTo: Rcpp, RcppArmadillo VignetteBuilder: knitr, R.rsp NeedsCompilation: yes Packaged: 2019-01-02 13:10:05 UTC; Stefan Repository: CRAN Date/Publication: 2019-01-02 13:40:23 UTC ctmcd/man/0000755000176200001440000000000013304503534012117 5ustar liggesusersctmcd/man/gmci.Rd0000644000176200001440000000413613304505037013331 0ustar liggesusers\name{gmci} \alias{gmci} \title{ Confidence / Credibility Intervals for Generator Matrix Objects } \description{ Generic function to derive confidence / credibility intervals for "EM" or "GS" based generator matrix objects } \usage{ gmci(gm, alpha, ...) } \arguments{ \item{gm}{ a "EM" or "GS" generator matrix object } \item{alpha}{ significance level } \item{...}{additional arguments: \itemize{ \item{eps:}{ threshold for which generator matrix parameters are assumed to be fixed at zero (if "EM" object) } \item{cimethod:}{ "Direct" and "SdR" use analytical expressions of the Fisher information matrix, "BS" employs the numerical approach of Bladt and Soerensen, 2009 (if "EM" object) } \item{expmethod:}{ method to compute matrix exponentials (see \code{?expm} from \code{expm} package for more information) } } } } \details{ If gm is based on the "EM" method (expectation-maximization algorithm), the function computes a Wald confidence interval based on the method of Oakes, 1999. IF gm is based on the "GS" method (Gibbs sampler), the function computes an equal-tailed credibility interval. } \references{ M. Bladt and M. Soerensen. Efficient Estimation of Transition Rates Between Credit Ratings from Observations at Discrete Time Points. Quantitative Finance, 9(2):147-160, 2009 D. Oakes. Direct calculation of the information matrix via the EM algorithm. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 61(2):479-482, 1999 G. Smith and G. dos Reis. Robust and Consistent Estimation of Generators in Credit Risk. Quantitative Finance 18(6):983-1001, 2018 G. dos Reis, M. Pfeuffer, G. Smith: Capturing Rating Momentum in the Estimation of Probabilities of Default, With Application to Credit Rating Migrations (In Preparation), 2018 } \author{ Marius Pfeuffer } \examples{ \dontrun{ data(tm_abs) ## Maximum Likelihood Generator Matrix Estimate gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 gmem=gm(tm_abs,te=1,method="EM",gmguess=gm0) ## Oakes Confidence Interval ciem=gmci(gmem,alpha=0.05) ciem } }ctmcd/man/print.gm.Rd0000644000176200001440000000062413066154652014156 0ustar liggesusers\name{print.gm} \alias{print.gm} \title{ Print Method for Generator Matrix Estimation Objects } \description{ Function for printing the results of a generator matrix estimation} \usage{ \method{print}{gm}(x, ...) } \arguments{ \item{x}{ a generator matrix estimation object } \item{\dots}{ additional arguments } } \seealso{ \code{\link{summary.gm}}, \code{\link{plot.gm}} }ctmcd/man/rNijTRiT_ModRej.Rd0000644000176200001440000000216013070714752015320 0ustar liggesusers\name{rNijTRiT_ModRej} \alias{rNijTRiT_ModRej} \title{ C++ Based Modified Rejection Sampling } \description{ Function for generating initial and endpoint-conditioned Markov process sampling paths for a given discrete-time transition matrix } \usage{ rNijTRiT_ModRej(tmabs, te, gm) } \arguments{ \item{tmabs}{ matrix of absolute transition frequencies } \item{te}{ time elapsed in transition process } \item{gm}{ generator matrix } } \details{ Function for the simulation of paths from an endpoint-conditioned Markov process. Returns number of transitions NijT and cumulative holding times RiT. } \references{ J. Fintzi: R Package ECctmc, 2016. A. Hobolth and E. A. Stone: Simulation from Endpoint-Conditioned, Continuous-Time Markov Chains on a Finite State Space, with Applications to Molecular Evolution. Annals of Applied Statistics 3(3):1204-1231, 2009 } \author{ Jon Fintzi, Marius Pfeuffer } \examples{ data(tm_abs) ## Initial guess for generator matrix (absorbing default state) gm=matrix(1,8,8) diag(gm)=0 diag(gm)=-rowSums(gm) gm[8,]=0 rNijTRiT_ModRej(tm_abs,1,gm) } ctmcd/man/gmDA.Rd0000644000176200001440000000220713066154652013227 0ustar liggesusers\name{gmDA} \alias{gmDA} \title{ Diagonal Adjustment } \description{ Function for deriving a Markov generator matrix estimate based on the diagonal adjustment method of Israel et al., 2001 } \usage{ gmDA(tmrel, te, logmethod = "Eigen") } \arguments{ \item{tmrel}{ matrix of relative transition frequencies } \item{te}{ time elapsed in transition process } \item{logmethod}{ method for computation of matrix logarithm, by default eigendecomposition is chosen (see \code{?logm} from \code{expm} package for more information) } } \details{ A candidate solution is derived by the matrix logarithm and then adjusted in order to fulfil the properties of a Markov generator matrix. } \references{ R. B. Israel et al.: Finding Generators for Markov Chains via Empirical Transition Matrices, with Applications to Credit Ratings. Mathematical Finance 11(2):245-265, 2001 } \author{ Marius Pfeuffer } \examples{ ## Derive matrix of relative transition frequencies data(tm_abs) tm_rel=rbind((tm_abs/rowSums(tm_abs))[1:7,],c(rep(0,7),1)) ## Derive diagonal adjustment generator matrix estimate gmda=gmDA(tm_rel,1) gmda } ctmcd/man/tmci.Rd0000644000176200001440000000273213304510017013340 0ustar liggesusers\name{tmci} \alias{tmci} \title{ Delta Method Confidence Intervals for Matrix Exponential Transformations of Generator Matrix Objects } \description{ Generic function to derive delta method based confidence intervals for matrix exponential transformations of "EM" based generator matrix objects } \usage{ tmci(gmem, alpha, te, eps = 1e-04, expmethod = "PadeRBS") } \arguments{ \item{gmem}{ an "EM" generator matrix object } \item{alpha}{ significance level } \item{te}{ discrete time horizon for which the interval is supposed to be computed } \item{eps}{ threshold for which generator matrix parameters are assumed to be fixed at zero } \item{expmethod}{ method to compute matrix exponentials (see \code{?expm} from \code{expm} package for more information) } } \details{ Confidence intervals for discrete-time transition matrix predictions given generator matrix estimates are computed by using the delta method for matrix exponential transformations. } \references{ G. dos Reis, M. Pfeuffer, G. Smith: Capturing Rating Momentum in the Estimation of Probabilities of Default, With Application to Credit Rating Migrations (In Preparation), 2018 } \examples{ \dontrun{ data(tm_abs) ## Maximum Likelihood Generator Matrix Estimate gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 gmem=gm(tm_abs,te=1,method="EM",gmguess=gm0) ## 2.5 Year Transition Matrix Confidence Interval citm=tmci(gmem,alpha=0.05,te=2.5) citm } }ctmcd/man/gmWA.Rd0000644000176200001440000000221513066154652013251 0ustar liggesusers\name{gmWA} \alias{gmWA} \title{ Weighted Adjustment } \description{ Function for deriving a Markov generator matrix estimate based on the weighted adjustment method of Israel et al., 2001 } \usage{ gmWA(tmrel, te, logmethod = "Eigen") } \arguments{ \item{tmrel}{ matrix of relative transition frequencies } \item{te}{ time elapsed in transition process } \item{logmethod}{ method for computation of matrix logarithm, by default eigendecomposition is chosen (see \code{?logm} from \code{expm} package for more information) } } \details{ A candidate solution is derived by the matrix logarithm and then adjusted in order to fulfil the properties of a Markov generator matrix. } \references{ R. B. Israel et al.: Finding Generators for Markov Chains via Empirical Transition Matrices, with Applications to Credit Ratings. Mathematical Finance 11(2):245-265, 2001 } \author{ Marius Pfeuffer } \examples{ ## Derive matrix of relative transition frequencies data(tm_abs) tm_rel=rbind((tm_abs/rowSums(tm_abs))[1:7,],c(rep(0,7),1)) ## Derive weighted adjustment generator matrix estimate gmwa=gmWA(tm_rel,1) gmwa } ctmcd/man/gmEM.Rd0000644000176200001440000000302713066154652013245 0ustar liggesusers\name{gmEM} \alias{gmEM} \title{ Expectation-Maximization Algorithm } \description{ Function for deriving a Markov generator matrix estimate by an instance of the expectation-maximization algorithm (described by Bladt and Soerensen, 2005) } \usage{ gmEM(tmabs, te, gmguess, eps = 1e-06, niter = 10000, expmethod = "PadeRBS", verbose = FALSE) } \arguments{ \item{tmabs}{ matrix of absolute transition frequencies } \item{te}{ time elapsed in transition process } \item{gmguess}{ initial guess (for generator matrix) } \item{eps}{ stop criterion: stop, if relative change in log-likelihood is smaller than eps } \item{niter}{ stop criterion: maximum number of iterations } \item{expmethod}{ method for computation of matrix exponential, by default "PadeRBS" is chosen (see \code{?expm} from \code{expm} package for more information) } \item{verbose}{ verbose mode } } \details{ A maximum likelihood generator matrix estimate is derived by an instance of the expectation-maximization algorithm. } \references{ M. Bladt and M. Soerensen: Statistical Inference for Discretely Observed Markov Jump Processes. Journal of the Royal Statistical Society B 67(3):395-410, 2005 } \author{ Marius Pfeuffer } \examples{ data(tm_abs) ## Initial guess for generator matrix (absorbing default state) gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 ## Derive expectation-maximization algorithm generator matrix estimate gmem=gmEM(tmabs=tm_abs,1,gmguess=gm0,verbose=TRUE) gmem } ctmcd/man/gmci.default.Rd0000644000176200001440000000342413304505200014743 0ustar liggesusers\name{gmci.default} \alias{gmci.default} \alias{ciEMBS} \alias{ciEMSdR} \alias{ciEMoFI} \alias{ciEMDM} \alias{ciGS} \title{ Confidence / Credibility Intervals for Generator Matrix Objects } \description{ Default function to derive confidence / credibility intervals for "EM" or "GS" based generator matrix objects } \usage{ \method{gmci}{default}(gm, alpha, eps = 1e-04, cimethod="Direct", expmethod = "PadeRBS", ...) } \arguments{ \item{gm}{ a "EM" or "GS" generator matrix object } \item{alpha}{ significance level } \item{eps}{ threshold for which generator matrix parameters are assumed to be fixed at zero (if "EM" object) } \item{cimethod}{ "Direct" or "SdR" use analytical expressions of the Fisher information matrix, "BS" emloy the numerical expressions of Bladt and Soerensen, 2009 (if "EM" object) } \item{expmethod}{ method to compute matrix exponentials (see \code{?expm} from \code{expm} package for more information) } \item{\dots}{ additional arguments } } \details{ If gm is based on the "EM" method (expectation-maximization algorithm), the function computes a Wald confidence interval based on the method of Oakes, 1999. IF gm is based on the "GS" method (Gibbs sampler), the function computes an equal-tailed credibility interval. } \references{ G. dos Reis, M. Pfeuffer, G. Smith: Capturing Rating Momentum in the Estimation of Probabilities of Default, With Application to Credit Rating Migrations (In Preparation), 2018 } \author{ Marius Pfeuffer } \examples{ \dontrun{ data(tm_abs) ## Maximum Likelihood Generator Matrix Estimate gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 gmem=gm(tm_abs,te=1,method="EM",gmguess=gm0) ## Oakes Confidence Interval ciem=gmci(gmem,alpha=0.05) ciem } }ctmcd/man/rNijTRiT_Unif.Rd0000644000176200001440000000234213066154652015045 0ustar liggesusers\name{rNijTRiT_Unif} \alias{rNijTRiT_Unif} \title{ C++ Based Uniformization Sampling } \description{ Function for generating initial and endpoint-conditioned Markov process sampling paths for a given discrete-time transition matrix } \usage{ rNijTRiT_Unif(tmabs, te, gm, tpm) } \arguments{ \item{tmabs}{ matrix of absolute transition frequencies } \item{te}{ time elapsed in transition process } \item{gm}{ generator matrix } \item{tpm}{ discrete-time transition probability matrix, matrix exponential of gm } } \details{ Function for the simulation of paths from an endpoint-conditioned Markov process. Returns number of transitions NijT and cumulative holding times RiT. } \references{ J. Fintzi: R Package ECctmc, 2016. A. Hobolth and E. A. Stone: Simulation from Endpoint-Conditioned, Continuous-Time Markov Chains on a Finite State Space, with Applications to Molecular Evolution. Annals of Applied Statistics 3(3):1204-1231, 2009 } \author{ Jon Fintzi, Marius Pfeuffer } \examples{ data(tm_abs) ## Generator Matrix gm=matrix(1,8,8) diag(gm)=0 diag(gm)=-rowSums(gm) gm[8,]=0 ## Transition Probability Matrix library(expm) te=1 tpm=expm(gm*te) rNijTRiT_Unif(tm_abs,te,gm,tpm) } ctmcd/man/ctmcdlogLik.Rd0000644000176200001440000000132513066154652014653 0ustar liggesusers\name{ctmcdlogLik} \alias{ctmcdlogLik} \title{ Discrete-Time Data Log-Likelihood Function } \description{ Function for evaluating the likelihood function of a continuous-time Markov chain given discrete-time data. } \usage{ ctmcdlogLik(gm, tmabs, te) } \arguments{ \item{gm}{ generator matrix of continuous-time Markov chain } \item{tmabs}{ matrix of absolute transition frequencies } \item{te}{ time elapsed in transition process } } \author{ Marius Pfeuffer } \examples{ data(tm_abs) ## Initial guess for generator matrix (absorbing default state) gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 ## Log-likelihood of initial guess ctmcdlogLik(gm0,tm_abs,1) } ctmcd/man/gmGS.Rd0000644000176200001440000000450513157025151013247 0ustar liggesusers\name{gmGS} \alias{gmGS} \title{ Gibbs Sampler } \description{ Function for deriving a Markov generator matrix estimate by Gibbs sampling (described by Bladt and Soerensen, 2005) } \usage{ gmGS(tmabs, te, prior, burnin, conv_pvalue = 0, conv_freq = 10, niter = 10000, sampl_method = "Unif", expmethod = "PadeRBS", verbose = FALSE, combmat=NULL, sampl_func = NULL) } \arguments{ \item{tmabs}{ matrix of absolute transition frequencies } \item{te}{ time elapsed in transition process } \item{prior}{ list of prior parameters (Gamma prior) } \item{burnin}{ number of burn-in iterations } \item{conv_pvalue}{ convergence criterion: stop, if Heidelberger and Welch's diagnostic assumes convergence (see coda package), convergence check is only employed if conv_pvalue>0 } \item{conv_freq}{ convergence criterion: absolute frequency of convergence evaluations } \item{niter}{ stop criterion: stop, if maximum number of iterations is exceeded } \item{sampl_method}{ method for sampling paths from endpoint-conditioned Markov processes. options: "Unif" - Uniformization sampling, "ModRej" - Modified Rejection Sampling } \item{expmethod}{ method for computation of matrix exponential, by default "PadeRBS" is chosen (see \code{?expm} from \code{expm} package for more information) } \item{verbose}{ verbose mode } \item{combmat}{ matrix specifying the combined use of sampling methods: "U" - uniformization sampling, "M" - modified rejection sampling } \item{sampl_func}{ interface for own endpoint-conditioned Markov process sampling function } } \details{ A posterior mean generator matrix estimate is derived by Gibbs Sampling. The gamma distribution is used as prior. } \references{ M. Bladt and M. Soerensen: Statistical Inference for Discretely Observed Markov Jump Processes. Journal of the Royal Statistical Society B 67(3):395-410, 2005 } \author{ Marius Pfeuffer } \seealso{ \code{\link{rNijTRiT_ModRej}}, \code{\link{rNijTRiT_Unif}} } \examples{ data(tm_abs) ## Example prior parametrization (absorbing default state) pr=list() pr[[1]]=matrix(1,8,8) pr[[1]][8,]=0 pr[[2]]=c(rep(5,7),Inf) ## Derive Gibbs sampling generator matrix estimate \dontrun{ gmgs=gmGS(tmabs=tm_abs,te=1,sampl_method="Unif",prior=pr,burnin=10,niter=100,verbose=TRUE) gmgs } } ctmcd/man/gmQO.Rd0000644000176200001440000000221413066154652013260 0ustar liggesusers\name{gmQO} \alias{gmQO} \title{ Quasi-Optimization } \description{ Function for deriving a Markov generator matrix estimate based on the quasi-optimization procedure of Kreinin and Sidelnikova, 2001 } \usage{ gmQO(tmrel, te, logmethod = "Eigen") } \arguments{ \item{tmrel}{ matrix of relative transition frequencies } \item{te}{ time elapsed in transition process } \item{logmethod}{ method for computation of matrix logarithm, by default eigendecomposition is chosen (see \code{?logm} from \code{expm} package for more information) } } \details{ From the set of possible Markov generator matrices, the one is chosen which is closest to a matrix logarithm based candidate solution in terms of sum of squared deviations. } \references{ E. Kreinin and M. Sidelnikova: Regularization Algorithms for Transition Matrices. Algo Research Quarterly 4(1):23-40, 2001 } \author{ Marius Pfeuffer } \examples{ data(tm_abs) ## Derive matrix of relative transition frequencies data(tm_abs) tm_rel=rbind((tm_abs/rowSums(tm_abs))[1:7,],c(rep(0,7),1)) ## Derive quasi optimization generator matrix estimate gmqo=gmQO(tm_rel,1) gmqo }ctmcd/man/plot.gm.Rd0000644000176200001440000000277113066154652014005 0ustar liggesusers\name{plot.gm} \alias{plot.gm} \title{ Plot Function for Generator Matrix Estimation Objects } \description{ Function for visualizing the output of a generator matrix estimation procedure. } \usage{ \method{plot}{gm}(x, mattext, col = c("grey", "red"), main = x$method, las = 1, xlab = "To", ylab = "From", xnames, ynames, cex = 1, fig = 3, opacity_factor, ...) } \arguments{ \item{x}{ a generator matrix estimation object } \item{mattext}{ optional: matrix of strings replacing the parameter estimates } \item{col}{ two element vector of basis colors for positive and negative parameter estimate entries } \item{main}{ optional: plot title } \item{las}{ orientation of x and y axis elements } \item{xlab}{ x axis name } \item{ylab}{ y axis name } \item{xnames}{ description of x axis elements } \item{ynames}{ description of y axis elements } \item{cex}{ font size } \item{fig}{ number of significant figure to be plotted } \item{opacity_factor}{ two element vector for specification of opacity for positive and negative parameter entry highlighting (must be greater than zero) } \item{\dots}{ additional arguments } } \author{ Marius Pfeuffer } \seealso{ \code{\link{print.gm}}, \code{\link{summary.gm}}, \code{\link{plotM}} } \examples{ data(tm_abs) ## Maximum Likelihood Generator Matrix Estimate gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 gmem=gm(tm_abs,te=1,method="EM",gmguess=gm0) plot(gmem) } ctmcd/man/ctmcd-package.Rd0000644000176200001440000000256513303772453015110 0ustar liggesusers\name{ctmcd-package} \alias{ctmcd-package} \alias{ctmcd} \docType{package} \title{ \packageTitle{ctmcd} } \description{ Functions for estimating Markov generator matrices from discrete-time observations. } \author{ \packageAuthor{ctmcd} Maintainer: \packageMaintainer{ctmcd} } \references{ M. Pfeuffer: ctmcd: An R Package for Estimating the Parameters of a Continuous-Time Markov Chain from Discrete-Time Data. The R Journal 9(2):127-141, 2017 M. Pfeuffer. Generator Matrix Approximation Based on Discrete-Time Rating Migration Data. Master Thesis, Ludwig Maximilian University of Munich, 2016 R. B. Israel et al.: Finding Generators for Markov Chains via Empirical Transition Matrices, with Applications to Credit Ratings. Mathematical Finance 11(2):245-265, 2001 E. Kreinin and M. Sidelnikova: Regularization Algorithms for Transition Matrices. Algo Research Quarterly 4(1):23-40, 2001 M. Bladt and M. Soerensen: Statistical Inference for Discretely Observed Markov Jump Processes. Journal of the Royal Statistical Society B 67(3):395-410, 2005 } \keyword{ package } \examples{ \dontrun{ data(tm_abs) ## Maximum Likelihood Generator Matrix Estimate gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 gmem=gm(tm_abs,te=1,method="EM",gmguess=gm0) plot(gmem) ## Confidence Interval ciem=gmci(gmem,alpha=0.05) plot(ciem) } } ctmcd/man/gm.Rd0000644000176200001440000000707413304504777013033 0ustar liggesusers\name{gm} \alias{gm} \title{ Generator Matrix Estimation } \description{ Generic function to estimate the parameters of a continuous Markov chain } \usage{ gm(tm, te, method, ...) } \arguments{ \item{tm}{ matrix of either absolute transition frequencies (if method is "EM" or "GS") or relative transition frequencies (if method is "DA", "WA" of "QO") } \item{te}{ time elapsed in transition process } \item{method}{ method to derive generator matrix: "DA" - Diagonal Adjustment, "WA" - Weighted Adjustment, "QO" - Quasi-Optimization, "EM" - Expectation-Maximization Algorithm, "GS" - Gibbs Sampler } \item{...}{Additional Arguments: \itemize{ \item{gmguess:}{ initial guess for generator matrix estimation procedure (if method is "EM") } \item{prior:}{ prior parametrization (if method is "GS") } \item{burnin:}{ burn-in period (if method is "GS") } \item{eps:}{ convergence criterion (if method is "EM") } \item{conv_pvalue,conv_freq:}{ convergence criterion (if method is "GS") } \item{niter:}{ maximum number of iterations (if method is "EM" or "GS") } \item{sampl_func:}{ optional self-written path sampling function for endpoint-conditioned Markov processes (if method is "GS") } \item{combmat:}{ matrix stating combined use of modified rejection sampling / uniformization sampling algorithms (if method is "GS") } \item{sampl_method:}{ sampling method for deriving endpoint-conditioned Markov process path: "Unif" - Uniformization Sampling, "ModRej" - Modified Rejection Sampling (if method is "GS") } \item{logmethod:}{ method to compute matrix logarithm (if method is "DA", "WA" or "QO", see \code{?logm} from \code{expm} package for more information) } \item{expmethod:}{ method to compute matrix exponential (if method is "EM" or "GS", see \code{?expm} from \code{expm} package for more information) } \item{verbose:}{ verbose mode (if method is "EM" or "GS") } } } } \details{ The methods "DA", "WA" and "QO" provide adjustments of a matrix logarithm based candidate solution, "EM" gives the maximum likelihood estimate and "GS" a posterior mean estimate in a Bayesian setting with conjugate Gamma priors. } \references{ G. dos Reis, M. Pfeuffer, G. Smith: Capturing Rating Momentum in the Estimation of Probabilities of Default, With Application to Credit Rating Migrations (In Preparation), 2018 M. Pfeuffer: Generator Matrix Approximation Based on Discrete Time Rating Migration Data. Master Thesis, University of Munich, 2016 Y. Inamura: Estimating Continuous Time Transition Matrices from Discretely Observed Data. Bank of Japan Working Paper Series, 2006 R. B. Israel et al.: Finding Generators for Markov Chains via Empirical Transition Matrices, with Applications to Credit Ratings. Mathematical Finance 11(2):245-265, 2001 E. Kreinin and M. Sidelnikova: Regularization Algorithms for Transition Matrices. Algo Research Quarterly 4(1):23-40, 2001 M. Bladt and M. Soerensen: Statistical Inference for Discretely Observed Markov Jump Processes. Journal of the Royal Statistical Society B 67(3):395-410, 2005 } \author{ Marius Pfeuffer } \seealso{ \code{\link{gmDA}}, \code{\link{gmWA}}, \code{\link{gmQO}}, \code{\link{gmEM}}, \code{\link{gmGS}} } \examples{ data(tm_abs) ## Maximum Likelihood Generator Matrix Estimate gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 gmem=gm(tm_abs,te=1,method="EM",gmguess=gm0) gmem ## Quasi Optimization Estimate tm_rel=rbind((tm_abs/rowSums(tm_abs))[1:7,],c(rep(0,7),1)) gmqo=gm(tm_rel,te=1,method="QO") gmqo } ctmcd/man/plot.gmci.Rd0000644000176200001440000000333713066154652014320 0ustar liggesusers\name{plot.gmci} \alias{plot.gmci} %- Also NEED an '\alias' for EACH other topic documented here. \title{ Plot Function for Generator Matrix Confidence / Credibility Interval Objects } \description{ Function for visualizing the boundaries of generator matrix confidence / credibility intervals } \usage{ \method{plot}{gmci}(x, mattext, col = c("grey", "red"), main, las = 1, xlab = "To", ylab = "From", xnames, ynames, cex = 1, fig = 2, opacity_factor, ...) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{x}{ a generator matrix confidence / credibility interval object } \item{mattext}{ optional: matrix of strings replacing the parameter estimates } \item{col}{ two element vector of basis colors for positive and negative parameter estimate entries } \item{main}{ optional: plot title } \item{las}{ orientation of x and y axis elements } \item{xlab}{ x axis name } \item{ylab}{ y axis name } \item{xnames}{ description of x axis elements } \item{ynames}{ description of y axis elements } \item{cex}{ font size } \item{fig}{ number of significant figures to be plotted } \item{opacity_factor}{ two element vector for specification of opacity for positive and negative parameter entry highlighting (must be greater than zero) } \item{\dots}{ additional arguments } } \author{ Marius Pfeuffer } \seealso{ \code{\link{print.gmci}}, \code{\link{plotM}} } \examples{ \dontrun{ data(tm_abs) ## Maximum Likelihood Generator Matrix Estimate gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 gmem=gm(tm_abs,te=1,method="EM",gmguess=gm0) plot(gmem) ## Confidence Interval ciem=gmci(gmem,alpha=0.05) plot(ciem) } } ctmcd/man/gm.default.Rd0000644000176200001440000000742513066154652014454 0ustar liggesusers\name{gm.default} \alias{gm.default} \title{ Generator Matrix Estimation } \description{ Default function to estimate the parameters of a continuous Markov chain } \usage{ \method{gm}{default}(tm, te, method, gmguess = NULL, prior = NULL, burnin = NULL, eps = 1e-06, conv_pvalue = 0.05, conv_freq = 10, niter = 10000, sampl_func = NULL, combmat = NULL, sampl_method = "Unif", logmethod = "Eigen", expmethod = "PadeRBS", verbose = FALSE, ...) } \arguments{ \item{tm}{ matrix of either absolute transition frequencies (if method is "EM" or "GS") or relative transition frequencies (if method is "DA", "WA" of "QO") } \item{te}{ time elapsed in transition process } \item{method}{ method to derive generator matrix: "DA" - Diagonal Adjustment, "WA" - Weighted Adjustment, "QO" - Quasi-Optimization, "EM" - Expectation-Maximization Algorithm, "GS" - Gibbs Sampler } \item{gmguess}{ initial guess for generator matrix estimation procedure (if method is "EM") } \item{prior}{ prior parametrization (if method is "GS") } \item{burnin}{ burn-in period (if method is "GS") } \item{eps}{ convergence criterion (if method is "EM" or "GS") } \item{conv_pvalue}{ convergence criterion: stop, if Heidelberger and Welch's diagnostic assumes convergence (see coda package) } \item{conv_freq}{ convergence criterion: absolute frequency of convergence evaluations } \item{niter}{ maximum number of iterations (if method is "EM" or "GS") } \item{sampl_func}{ optional self-written path sampling function for endpoint-conditioned Markov processes (if method is "GS") } \item{combmat}{ matrix stating combined use of modified rejection sampling / uniformization sampling algorithms (if method is "GS") } \item{sampl_method}{ sampling method for deriving endpoint-conditioned Markov process path: "Unif" - Uniformization Sampling, "ModRej" - Modified Rejection Sampling (if method is "GS") } \item{logmethod}{ method to compute matrix logarithm (if method is "DA", "WA" or "QO", see \code{?logm} from \code{expm} package for more information) } \item{expmethod}{ method to compute matrix exponential (if method is "EM" or "GS", see \code{?expm} from \code{expm} package for more information) } \item{verbose}{ verbose mode (if method is "EM" or "GS") } \item{\dots}{ additional arguments } } \details{ The methods "DA", "WA" and "QO" provide adjustments of a matrix logarithm based candidate solution, "EM" gives the maximum likelihood estimate and "GS" a posterior mean estimate in a Bayesian setting with conjugate Gamma priors. } \references{ M. Pfeuffer: Generator Matrix Approximation Based on Discrete Time Rating Migration Data. Master Thesis, University of Munich, 2016 Y. Inamura: Estimating Continuous Time Transition Matrices from Discretely Observed Data. Bank of Japan Working Paper Series, 2006 R. B. Israel et al.: Finding Generators for Markov Chains via Empirical Transition Matrices, with Applications to Credit Ratings. Mathematical Finance 11(2):245-265, 2001 E. Kreinin and M. Sidelnikova: Regularization Algorithms for Transition Matrices. Algo Research Quarterly 4(1):23-40, 2001 M. Bladt and M. Soerensen: Statistical Inference for Discretely Observed Markov Jump Processes. Journal of the Royal Statistical Society B 67(3):395-410, 2005 } \author{ Marius Pfeuffer } \seealso{ \code{\link{gmDA}}, \code{\link{gmWA}}, \code{\link{gmQO}}, \code{\link{gmEM}}, \code{\link{gmGS}} } \examples{ data(tm_abs) ## Maximum Likelihood Generator Matrix Estimate gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 gmem=gm(tm_abs,te=1,method="EM",gmguess=gm0) gmem ## Quasi Optimization Estimate tm_rel=rbind((tm_abs/rowSums(tm_abs))[1:7,],c(rep(0,7),1)) gmqo=gm(tm_rel,te=1,method="QO") gmqo } ctmcd/man/summary.gm.Rd0000644000176200001440000000067713066154652014527 0ustar liggesusers\name{summary.gm} \alias{summary.gm} \title{ Extended Output for Generator Matrix Estimate Objects } \description{ Function for providing results and extended output of a generator matrix estimation procedure. } \usage{ \method{summary}{gm}(object, ...) } \arguments{ \item{object}{ a generator matrix estimation object } \item{\dots}{ additional arguments } } \seealso{ \code{\link{print.gm}}, \code{\link{plot.gm}} }ctmcd/man/tm_abs.Rd0000644000176200001440000000136613066154652013671 0ustar liggesusers\name{tm_abs} \alias{tm_abs} \docType{data} \title{ Single Year Corporate Credit Rating Transititions } \description{ Matrix of Standard and Poor's Global Corporate Rating Transition Frequencies 2000 (NR Removed) } \usage{data("tm_abs")} \format{ The format is: num [1:8, 1:8] 17 2 0 0 0 0 0 0 1 455 ... - attr(*, "dimnames")=List of 2 ..$ : chr [1:8] "AAA" "AA" "A" "BBB" ... ..$ : chr [1:8] "AAA" "AA" "A" "BBB" ... } \references{ European Securities and Markets Authority, 2016 https://cerep.esma.europa.eu/cerep-web/statistics/transitionMatrice.xhtml } \examples{ data(tm_abs) ## Matrix of relative transition frequencies tm_rel=rbind((tm_abs/rowSums(tm_abs))[1:7,],c(rep(0,7),1)) tm_rel } \keyword{datasets} ctmcd/man/expmMC.Rd0000644000176200001440000000272313156743533013615 0ustar liggesusers\name{expmMC} \alias{expmMC} %- Also NEED an '\alias' for EACH other topic documented here. \title{ Matrix Exponential Function } \description{ Computation of the matrix exponential and interface to the markovchain package } \usage{ expmMC(gm, t, method = "PadeRBS", order = 8) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{gm}{ generator matrix (either gm or matrix object) } \item{t}{ time horizon } \item{method}{ method to compute the matrix exponential, see expm for details } \item{order}{ order for Pade or Taylor method, see expm for details } } \details{ An interface to the markovchain package is provided so that the resulting transition matrices are returned as markovchain objects and can be further processed in the markovchain package, e.g., visualized (see example below). } \references{ G. A. Spedicato: Discrete Time Markov Chains with R. The R Journal (To Appear), 2017 } \author{ G. A. Spedicato, M. Pfeuffer } %% ~Make other sections like Warning with \section{Warning }{....} ~ \seealso{ \code{\link{expm}} } \examples{ ### Exemplary Transition Matrix tm0=matrix(1:16,4,4) tm0=tm0/rowSums(tm0) tm0[4,]=c(0,0,0,1) ### Generator Matrix Estimate gm_est=gm(tm0,te=1,method="DA") gm_est ### Matrix Exponential and Conversion to markovchain object ### (markovchain package needs to be installed) mc=expmMC(gm_est,.5) if(require("markovchain")==TRUE){ plot(mc) } } ctmcd/man/print.gmci.Rd0000644000176200001440000000067313066154652014476 0ustar liggesusers\name{print.gmci} \alias{print.gmci} \title{ Print Method for Generator Matrix Confidence / Credibility Interval Objects } \description{ Function for printing the boundaries of a generator matrix confidence / credibility interval} \usage{ \method{print}{gmci}(x, ...) } \arguments{ \item{x}{ a generator matrix confidence / credibility interval } \item{\dots}{ additional arguments } }\seealso{ \code{\link{plot.gmci}} }ctmcd/man/plotM.Rd0000644000176200001440000000227613066154652013520 0ustar liggesusers\name{plotM} \alias{plotM} \title{ Matrix Plot Function } \description{ Function to visualize matrices } \usage{ plotM(mat, mattext, col = c("grey", "red"), main, las = 1, xlab = "To", ylab = "From", xnames, ynames, cex = min(1, nrow(mat)/8), fig = 3, opacity_factor) } \arguments{ \item{mat}{ a matrix } \item{mattext}{ optional: matrix of strings replacing the original matrix entries } \item{col}{ two element vector of basis colors for positive and negative matrix entries } \item{main}{ optional: plot title } \item{las}{ orientation of x and y axis elements } \item{xlab}{ x axis name } \item{ylab}{ y axis name } \item{xnames}{ description of x axis elements } \item{ynames}{ description of y axis elements } \item{cex}{ font size } \item{fig}{ number of significant figures to be plotted } \item{opacity_factor}{ two element vector for specification of opacity for positive and negative parameter entry highlighting (must be greater than zero) } } \author{ Marius Pfeuffer }\seealso{ \code{\link{plot.gm}}, \code{\link{plot.gmci}} } \examples{gm0=matrix(1,8,8) diag(gm0)=0 diag(gm0)=-rowSums(gm0) gm0[8,]=0 plotM(gm0) }