<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ERROR : WARNING: Apparent symbolic reference NUM_ not resolved. in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/ERROR-WARNING-Apparent-symbolic-reference-NUM-not-resolved/m-p/66055#M18841</link>
    <description>please ignore I found out what the problem was&lt;BR /&gt;
Thanks</description>
    <pubDate>Wed, 26 Jan 2011 17:16:07 GMT</pubDate>
    <dc:creator>R_A_G_</dc:creator>
    <dc:date>2011-01-26T17:16:07Z</dc:date>
    <item>
      <title>ERROR : WARNING: Apparent symbolic reference NUM_ not resolved.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/ERROR-WARNING-Apparent-symbolic-reference-NUM-not-resolved/m-p/66054#M18840</link>
      <description>Hi,&lt;BR /&gt;
&lt;BR /&gt;
I am trying to simulate binary data and keep getting this error. The problem is that question is only 1 variable.&lt;BR /&gt;
&lt;BR /&gt;
Thanks &lt;BR /&gt;
&lt;BR /&gt;
WARNING: Apparent symbolic reference NUM_ not resolved.&lt;BR /&gt;
ERROR: Missing numeric suffix on a numbered variable list (question1-question).&lt;BR /&gt;
&lt;BR /&gt;
My codes:&lt;BR /&gt;
%macro simulation;&lt;BR /&gt;
&lt;BR /&gt;
%let num_students=100;&lt;BR /&gt;
%let num_skills=5;&lt;BR /&gt;
%let num_item=%eval(2**&amp;amp;num_skills-1);&lt;BR /&gt;
%let num_total=%eval(2**&amp;amp;num_skills);&lt;BR /&gt;
%let num_reps=1;&lt;BR /&gt;
%do seed=1 %to &amp;amp;num_reps;&lt;BR /&gt;
&lt;BR /&gt;
%let mu1=-2.35;&lt;BR /&gt;
%let mu2=-2.35;&lt;BR /&gt;
%let mu3=-2.35;&lt;BR /&gt;
%let mu4=-2.35;&lt;BR /&gt;
%let mu5=-2.35;&lt;BR /&gt;
%let mu6=-2.35;&lt;BR /&gt;
%let mu7=-2.35;&lt;BR /&gt;
%let mu8=2.35;&lt;BR /&gt;
%let mu9=-2.35;&lt;BR /&gt;
%let mu10=-2.35;&lt;BR /&gt;
%let mu11=-2.35;&lt;BR /&gt;
%let mu12=-2.35;&lt;BR /&gt;
%let mu13=-2.35;&lt;BR /&gt;
%let mu14=-2.35;&lt;BR /&gt;
%let mu15=-2.35;&lt;BR /&gt;
%let mu16=2.35;&lt;BR /&gt;
%let mu17=2.35;&lt;BR /&gt;
%let mu18=-2.35;&lt;BR /&gt;
%let mu19=-2.35;&lt;BR /&gt;
%let mu20=-2.35;&lt;BR /&gt;
%let mu21=-2.35;&lt;BR /&gt;
%let mu22=-2.35;&lt;BR /&gt;
%let mu23=-2.35;&lt;BR /&gt;
%let mu24=2.35;&lt;BR /&gt;
%let mu25=2.35;&lt;BR /&gt;
%let mu26=-2.35;&lt;BR /&gt;
%let mu27=-2.35;&lt;BR /&gt;
%let mu28=-2.35;&lt;BR /&gt;
%let mu29=-2.35;&lt;BR /&gt;
%let mu30=-2.35;&lt;BR /&gt;
%let mu31=-2.35;&lt;BR /&gt;
%let mu32=0;&lt;BR /&gt;
&lt;BR /&gt;
%let datafile=dat&amp;amp;seed.;&lt;BR /&gt;
%let commandfile=CDM_&amp;amp;seed.;&lt;BR /&gt;
%let outputfile=OUT_&amp;amp;seed.;&lt;BR /&gt;
&lt;BR /&gt;
/*Skills=5 --&amp;gt; need 2**5=32 mu's, which needs to be added*/&lt;BR /&gt;
&lt;BR /&gt;
/* ADDEDED:to create C directory(IN SAS_CDM) TO SAVE Q-Matrix file*/&lt;BR /&gt;
LIBNAME sas_cdm "C:\SAS_CDM ";&lt;BR /&gt;
RUN;&lt;BR /&gt;
LIBNAME cdm "C:\CDM ";&lt;BR /&gt;
RUN;&lt;BR /&gt;
&lt;BR /&gt;
data nu1;&lt;BR /&gt;
	array nu_num{&amp;amp;num_total} nu_num1-nu_num&amp;amp;num_total;&lt;BR /&gt;
	array nu{&amp;amp;num_total} nu1-nu&amp;amp;num_total;&lt;BR /&gt;
	%do i=1 %to &amp;amp;num_total;&lt;BR /&gt;
		nu_num{&amp;amp;i}=exp(&amp;amp;μ&amp;amp;i);&lt;BR /&gt;
	%end;&lt;BR /&gt;
	nu_denom=sum(of nu_num1-nu_num&amp;amp;num_total);&lt;BR /&gt;
	%do j=1 %to &amp;amp;num_total;&lt;BR /&gt;
		nu{&amp;amp;j}=nu_num{&amp;amp;j}/nu_denom;&lt;BR /&gt;
	%end;&lt;BR /&gt;
	drop nu_denom nu_num1-nu_num&amp;amp;num_total;&lt;BR /&gt;
run;	&lt;BR /&gt;
&lt;BR /&gt;
proc transpose data=nu1 out=nu2; run;&lt;BR /&gt;
&lt;BR /&gt;
data nu;&lt;BR /&gt;
	set nu2(rename=(col1=nu));&lt;BR /&gt;
	combination=_n_;&lt;BR /&gt;
	drop _name_;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data all_skills;&lt;BR /&gt;
	array skills{&amp;amp;num_skills} skills1-skills&amp;amp;num_skills;&lt;BR /&gt;
	do j=1 to 2;&lt;BR /&gt;
	do i=1 to &amp;amp;num_skills;&lt;BR /&gt;
		if j=1 then skills{i}=1;&lt;BR /&gt;
		else skills{i}=0;&lt;BR /&gt;
		if skills{j}=. then skills{j}=0;&lt;BR /&gt;
	end;&lt;BR /&gt;
	output;&lt;BR /&gt;
	end;&lt;BR /&gt;
	drop i j;	&lt;BR /&gt;
run;&lt;BR /&gt;
 &lt;BR /&gt;
proc means data=all_skills completetypes;&lt;BR /&gt;
	class skills1-skills&amp;amp;num_skills;&lt;BR /&gt;
	output out=all_skills1;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data all_skills2; &lt;BR /&gt;
	set all_skills1; &lt;BR /&gt;
	array lambda1{&amp;amp;num_skills} lambda1_1-lambda1_&amp;amp;num_skills;&lt;BR /&gt;
	array skills{&amp;amp;num_skills} skills1-skills&amp;amp;num_skills;&lt;BR /&gt;
	num=%eval(&amp;amp;num_skills);&lt;BR /&gt;
	if _type_=(2**num)-1 and sum(of skills1-skills&amp;amp;num_skills) ne 0; &lt;BR /&gt;
	&lt;BR /&gt;
	/*Lambda Intercept*/&lt;BR /&gt;
	lambda0=-(1.5**sum(of skills1-skills&amp;amp;num_skills));	&lt;BR /&gt;
&lt;BR /&gt;
	/*Lambda Main Effect*/&lt;BR /&gt;
	do i=1 to &amp;amp;num_skills;&lt;BR /&gt;
		lambda1{i}=skills{i}*2;&lt;BR /&gt;
	end;&lt;BR /&gt;
&lt;BR /&gt;
	drop num _type_ _freq_; &lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data all_skills3;&lt;BR /&gt;
	set all_skills2;&lt;BR /&gt;
	question=_n_;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data all_skills4;&lt;BR /&gt;
	set all_skills3;&lt;BR /&gt;
	do combinations=1 to  &amp;amp;num_total;&lt;BR /&gt;
		output;&lt;BR /&gt;
	end;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data combinations1;&lt;BR /&gt;
	array attributes{&amp;amp;num_skills} attributes1-attributes&amp;amp;num_skills;&lt;BR /&gt;
	array skills{&amp;amp;num_skills} skills1-skills&amp;amp;num_skills;&lt;BR /&gt;
	set all_skills1(keep=skills1-skills&amp;amp;num_skills _type_);&lt;BR /&gt;
	num=%eval(&amp;amp;num_skills);&lt;BR /&gt;
	if _type_=(2**num)-1; &lt;BR /&gt;
	do i=1 to &amp;amp;num_skills;&lt;BR /&gt;
		attributes{i}=skills{i};&lt;BR /&gt;
	end;&lt;BR /&gt;
	drop skills1-skills&amp;amp;num_skills i _type_ num;		&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
/*ADDED To have a Q-Matrix file in a permenant folder*/&lt;BR /&gt;
data sas_cdm.combinations;&lt;BR /&gt;
	set combinations1;&lt;BR /&gt;
	combinations=_n_;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
/*ADDED: TO chaning the format of combination to ASCII file*/&lt;BR /&gt;
data _NULL_;&lt;BR /&gt;
set sas_cdm.combinations;&lt;BR /&gt;
file "C:\SAS_CDM\class..dat";&lt;BR /&gt;
put  attributes1 attributes2 attributes3 attributes4 attributes5 attributes6 attributes7 combinqtions;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc sort data=sas_cdm.combinations; by combinations; run;&lt;BR /&gt;
proc sort data=all_skills4; by combinations; run;&lt;BR /&gt;
&lt;BR /&gt;
data all_data;&lt;BR /&gt;
	merge all_skills4 sas_cdm.combinations; /*cdm*/&lt;BR /&gt;
	array lambda1{&amp;amp;num_skills} lambda1_1-lambda1_&amp;amp;num_skills;&lt;BR /&gt;
	array sum_lam{&amp;amp;num_skills} sum_lam1-sum_lam&amp;amp;num_skills;&lt;BR /&gt;
	array skills{&amp;amp;num_skills} skills1-skills&amp;amp;num_skills;&lt;BR /&gt;
	array attributes{&amp;amp;num_skills} attributes1-attributes&amp;amp;num_skills;&lt;BR /&gt;
	by combinations;&lt;BR /&gt;
	do i=1 to &amp;amp;num_skills;&lt;BR /&gt;
		sum_lam{i}=lambda1{i}* attributes{i}*skills{i};&lt;BR /&gt;
	end;&lt;BR /&gt;
	&lt;BR /&gt;
	logit=lambda0+sum(of sum_lam1-sum_lam&amp;amp;num_skills);&lt;BR /&gt;
	pi_ic=exp(logit)/(1+exp(logit));&lt;BR /&gt;
		&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data simulated_students;&lt;BR /&gt;
	array nu_skill{&amp;amp;num_total} nu1-nu&amp;amp;num_total;&lt;BR /&gt;
	array cum_skill{&amp;amp;num_total} cum1-cum&amp;amp;num_total;&lt;BR /&gt;
	set nu1;&lt;BR /&gt;
	/*Find Cumulative Distribution*/&lt;BR /&gt;
	cum_skill{1}=nu_skill{1};&lt;BR /&gt;
	do i=2 to &amp;amp;num_total;&lt;BR /&gt;
		cum_skill{i}=cum_skill{i-1}+nu_skill{i};&lt;BR /&gt;
	end;&lt;BR /&gt;
	/*Simulate Students*/&lt;BR /&gt;
	do student_num=1 to &amp;amp;num_students;&lt;BR /&gt;
		rand_uni=ranuni(&amp;amp;seed);&lt;BR /&gt;
		combinations=1;&lt;BR /&gt;
		do j=1 to &amp;amp;num_item;&lt;BR /&gt;
			if cum_skill{j}&lt;RAND_UNI then="" combinations="j+1;&amp;lt;br"&gt;
		end;&lt;BR /&gt;
		do question=1 to &amp;amp;num_item;&lt;BR /&gt;
		output;&lt;BR /&gt;
		end;&lt;BR /&gt;
	end;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc sort data=simulated_students; by combinations question; run;&lt;BR /&gt;
proc sort data=all_data; by combinations question; run;&lt;BR /&gt;
&lt;BR /&gt;
data simulated_data;&lt;BR /&gt;
	merge simulated_students(keep=student_num combinations question in=main) all_data(keep=question combinations attributes1-attributes&amp;amp;num_skills skills1-skills&amp;amp;num_skills pi_ic);&lt;BR /&gt;
	by combinations question;&lt;BR /&gt;
	if main;&lt;BR /&gt;
	x_ic=ranbin(&amp;amp;seed,1,pi_ic);&lt;BR /&gt;
run;	&lt;BR /&gt;
&lt;BR /&gt;
/*simulated Qmatrix*/&lt;BR /&gt;
data Q_matrix;&lt;BR /&gt;
set simulated_data;&lt;BR /&gt;
drop=student_num combinations attributes1-attributes_num_skills po_ic x_ic ;&lt;BR /&gt;
run; &lt;BR /&gt;
/* ADDED: To change the format of Q-Matrix to ascii file*/&lt;BR /&gt;
data _NULL_;&lt;BR /&gt;
set Q_Matrix;&lt;BR /&gt;
file "C:\sas_CDM\Q_Matrix.dat";&lt;BR /&gt;
put  question skills1-skills&amp;amp;num_skills;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
/* ADDEDED THIS:to change the name to Class*/&lt;BR /&gt;
&lt;BR /&gt;
data Class_membership;&lt;BR /&gt;
set nu;&lt;BR /&gt;
rename combination=Class; &lt;BR /&gt;
RUN;&lt;BR /&gt;
&lt;BR /&gt;
/* ADDED: To change the format of Class_membership to ascii file*/&lt;BR /&gt;
&lt;BR /&gt;
data _NULL_;&lt;BR /&gt;
set Class_membership;&lt;BR /&gt;
file "C:\sas_CDM\Class_membership..dat";&lt;BR /&gt;
put  nu class;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
/*continue coding*/&lt;BR /&gt;
proc sort data=simulated_data; by student_num combinations;run;&lt;BR /&gt;
&lt;BR /&gt;
proc transpose data=simulated_data(keep=student_num combinations question x_ic) out=sas_cdm.student&amp;amp;seed(drop=_name_) prefix=question;&lt;BR /&gt;
	id question;&lt;BR /&gt;
	by student_num combinations;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
/*ADDED: To change the format of SAS to ASCII file*/&lt;BR /&gt;
/* ADDED: To Create all Data Files*/&lt;BR /&gt;
&lt;BR /&gt;
data _NULL_;&lt;BR /&gt;
set sas_cdm.student&amp;amp;seed;&lt;BR /&gt;
file "C:\CDM\student&amp;amp;seed..dat";&lt;BR /&gt;
put  student_num Combinations question1-question&amp;amp;num_                                                                                                                                                                                                       ;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
data _NULL_;&lt;BR /&gt;
set sas_cdm.student&amp;amp;seed;&lt;BR /&gt;
file "C:\CDM\&amp;amp;datafile..dat";&lt;BR /&gt;
put  student_num Combinations question1-question&amp;amp;num_item;&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
%end;&lt;BR /&gt;
%mend;&lt;BR /&gt;
%simulation;&lt;/RAND_UNI&gt;</description>
      <pubDate>Wed, 26 Jan 2011 16:45:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/ERROR-WARNING-Apparent-symbolic-reference-NUM-not-resolved/m-p/66054#M18840</guid>
      <dc:creator>R_A_G_</dc:creator>
      <dc:date>2011-01-26T16:45:05Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR : WARNING: Apparent symbolic reference NUM_ not resolved.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/ERROR-WARNING-Apparent-symbolic-reference-NUM-not-resolved/m-p/66055#M18841</link>
      <description>please ignore I found out what the problem was&lt;BR /&gt;
Thanks</description>
      <pubDate>Wed, 26 Jan 2011 17:16:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/ERROR-WARNING-Apparent-symbolic-reference-NUM-not-resolved/m-p/66055#M18841</guid>
      <dc:creator>R_A_G_</dc:creator>
      <dc:date>2011-01-26T17:16:07Z</dc:date>
    </item>
  </channel>
</rss>

