我在iml过程中定义了函数,此函数主要是生成二维数组。
请问如何在data中调用此函数并输入结果到三维图?
程序如下:
proc iml;
start UUlocaltau(current_p,current_q,copula_par);
copulavalue = clayton_copula(current_p,current_q,copula_par);
db_clayton_copula_X_diffxy = outter_clayton_copula_X_diffxy(current_p,current_q,copula_par);
db_copula_p_X_diffxy = outter_copula_p_X_diffxy(current_p,current_q,copula_par);
db_copula_q_X_diffxy = outter_copula_q_X_diffxy(current_p,current_q,copula_par);
db_u_v_X_diffxy = outter_u_v_X_diffxy(current_p,current_q,copula_par);
tauMainUU = (2*(copulavalue+1)*(1-current_p-current_q+copulavalue) + 4*db_clayton_copula_X_diffxy - 2*db_copula_p_X_diffxy - 2*db_copula_q_X_diffxy - 2*db_u_v_X_diffxy)/((1-current_p-current_q+copulavalue)**2) - 1;
return (tauMainUU);
finish;
/*********************************************************************************/
/*********************************************************************************/
/************ Main program ***********/
/*********************************************************************************/
/*********************************************************************************/
options cmplib = sasuser.funcs;
data tauUU;
array tauMainUU(46,46);
i=1;
j=1;
copula_par = 1.2; /**** parameter of copula function ****/
do current_p = 0.5 to 0.95 by 0.01;
do current_q = 0.5 to 0.95 by 0.01;
tauMainUU(i,j) =
UUlocaltau(current_p,current_q,copula_par);
output;
j = j + 1;
end;
i = i + 1;
j = 1;
end;
程序出错信息为:“函数 UULOCALTAU 未知,或无法访问。”
但是我单独使用 此函数是可以得到结果的。请高手指点一二!