/* Cook-Johnson Copula ( C(u,v)=(u^(-theta)+v^(-theta)-1)^(-1/theta) ) */ new; cls; theta=1.5; n=1000; U=Ccj(theta,n); library pgraph; graphset; _plctrl=-1; xy(U[.,1],U[.,2]); proc Ccj(theta,n); local u,q,v; if theta<=0; errorlog "ERROR: Parameter theta must be positive."; retp("."); endif; u=rndu(n,1); q=rndu(n,1); v=((q^(-theta/(1+theta))-1).*u^(-theta)+1)^(-1/theta); retp(u~v); endp;