*ranzero.sps----------------------------------------------------. title 互いに独立(相関0)な正規乱数の生成. *data はクリアされ、新しい変数だけになります. /* ranzero nvar=3/nsmpl=100/vname=zan. */ * nvar=変数の数:nsmpl=サンプル数:vname=変数の名前 . * K.Hori 1996.08.16. preserve. set printback=off. define ranzero (nvar=!charend('/')/ nsmpl=!default(100)!charend('/')/ vname=!default(v)!charend('/') ). *準備. !let !f='f'. !let !fend=!concat(!f,!nvar). *乱数生成. input program. vector f(!nvar). loop #i=1 to !nsmpl. + loop #j = 1 to !nvar. + compute f(#j)=normal(1). + end loop. + end case. end loop. end file. end input program. *乱数を主成分分析をし、その主成分得点を使用する=乱数間を無相関にする. factor var=f1 to !fend /print=rotate /criteria=factors(!nvar) /rotation=norotate /save=reg(all !vname) /. save outfile='temp__.sav'/drop=f1 to !fend. get file='temp__.sav'. !enddefine. restore. *マクロ終了---------------------------------. ranzero nvar=3/nsmpl=100/vname=v.