Date: Wed, 18 Jun 2003 09:59:57 -0400
Reply-To: Peter Flom <flom@NDRI.ORG>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Peter Flom <flom@NDRI.ORG>
Subject: Re: Need answers to SAS certification questions
Content-Type: text/plain; charset=US-ASCII
I've looked this over, and it seems like a model of how to do a good job
of test development.
So, I don't know how the bad questions got in there; like I said
before, I'm not competent to judge the quality of most of the questions,
but others seem to think that they aren't good ones......
Peter
>>> Mike Rhoads <RHOADSM1@WESTAT.COM> 06/18/03 09:23AM >>>
The SAS folks did present a paper on this at the last SUGI conference
--
it's available online at
http://www2.sas.com/proceedings/sugi28/245-28.pdf.
I'll leave it to Peter and others to judge how good a job they did ...
Mike Rhoads
Westat
RhoadsM1@Westat.com
-----Original Message-----
From: Peter Flom [mailto:flom@NDRI.ORG]
Sent: Wednesday, June 18, 2003 8:39 AM
To: SAS-L@LISTSERV.UGA.EDU
Subject: Re: Need answers to SAS certification questions
Indeed, I got my PhD in Psychometrics, which involves construction of
such tests. It is, as Phil states, a major endeavor. Plus, after a
test is constructed, it needs a sensible scoring method. I wonder
whether
they are using classical test theory, or item response theory, or
what?
Now, I'm lucky. I don't need to pass SAS Certification. And I don't
know
enough about a lot of SAS to have realized how poor these questions
are.
But clearly SOME people DO need to be SAS certified. If the test is
really
that bad (and I will take your collective word for it) then SAS (or
whoever
devised the test) might be in real trouble.
Peter
>>> Phil Rack <philrack@MINEQUEST.COM> 06/17/03 09:06PM >>>
Sig, Jack and others...
Answering those questions would have been a WAG for me! It makes you
wonder
if/how they field tested it and whether they came up with any reliable
or
valid items. I would love to see the Institute publish a paper that
addresses such issues. Right out of college, I worked for an
educational
testing company and it was a major task to do such things properly.
We
spent months a lot of time working out our sample before field testing
and
spent months writing the documentation of the supporting statistics for
each
and every question.
-----Original Message-----
From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU]On Behalf Of
Sigurd
Hermansen
Sent: Tuesday, June 17, 2003 4:52 PM
To: SAS-L@LISTSERV.UGA.EDU
Subject: Re: Need answers to SAS certification questions
These questions remind me of a SNL skit with Steve Martin as the host
of a
TV quiz show. The contestants (including, supposedly, Jeanne
Kirkpatrick)
had to respond to questions about American history with answers
selected
from the results of a poll of high school students. Knowledgeable
contestants had no chance of winning.
Let's see how this works:
Question 1: 2,3,5, probably in that order. 3 and 5 are not valid
options;
Question 2: none of the choices. The ps= system option (must be what
they
mean by 'global') has a maximum of 32,767 lines or 1,024 pages. Could
they
mean OPTIONS IGETNOBREAKS? Question 3: The condition IF
_TYPE_='11110101'B
would make the question merely obscure, arcane, and archaic. Stating
the
condition as IF _TYPE_='....0.0.'B makes the question just plain
peculiar. I
could probably guess the right answer, but I have no idea how to
evaluate
the condition as written. Question 4: I would go with 1; nonetheless,
in a
computing environment as complex as SAS, programmers don't really know
or
care. Question 5: Suppose the supreme examiner is selecting correct
answers
at random. The odds on favorite for the correct answer to this
question
would be 2. Or 4. (Sure that you haven't copied this question
incorrectly?)
Question 6: This question actually makes sense to me. I have not
checked the
syntax, but (except for (... the label ... then prints the label)
Choice 2
looks good. Question 7: I like to go with the 'None of the above'
choices.
Test developers tend to believe that test takers will fall for at least
one
of the other choices.
I've checked my answers against those provided by Jack Hamilton, a
more
serious scholar of SASology, and I agree with his comments on the
ambiguities in the questions. Are we really looking at official and
correct
questions on the SAS certification exam? That's a scary thought.
Sig
-----Original Message-----
From: Quanda Garland [mailto:quandagarland@YAHOO.COM]
Sent: Thursday, June 12, 2003 5:52 PM
To: SAS-L@LISTSERV.UGA.EDU
Subject: Need answers to SAS certification questions
Hello,
Could some body help me to find the correct answers for the following
question. Some are vague to me.
Which option below has NO effect on the number of observations selected
in a
DATA step? Choice 1 OBS=0 Choice 2 ERRORS=0 Choice 3 ABORTABEND Choice
4
ERRORABEND Choice 5 ABORT
Which global OPTION below can be used to prevent page breaks when using
PROC
PRINTTO? Choice 1 MPRINT Choice 2 NOTITLES Choice 3 NOBREAKS Choice 4
PAGESIZE= Choice 5 LS= IF _TYPE_='....0.0.'B;? You are using a DATA
step to
post-process an output data set from a PROC MEANS that had eight class
variables. What is the purpose of the statement above? Choice 1 It
selects
only the observations subgrouped by the 5th or 7th class variables.
Choice 2
It selects only the observations subgrouped by the 4th or 6th class
variables. Choice 3 It selects every observation except those
subgrouped by
the 4th and 6th class variables. Choice 4 It selects every observation
except those subgroups involving the 5th and 7th class variables.
Choice 5
It reformats the numeric variables into a hexadecimal format. When you
submit a DATA step, what is the first action taken by the SAS System?
Choice
1 The system will compile SAS statements. Choice 2 The system will
begin
with a DATA statement. Choice 3 The system will set variables to
missing.
Choice 4 The system will read an input record. Choice 5 The system
will
create an input buffer. Which statements below are used in a program
that
writes customized reports using "PUT" statements? Choice 1 proc
printto;
Choice 2 data _null_; file print; Choice 3 proc tabulate; Choice 4
data
_null_; put _all_; Choice 5 proc sql; proc format; value x (fuzz=.3)
1='one'
2='two' 3='three'; What is the purpose of the FUZZ option in the sample
code
above? Choice 1 It specifies a width of the decimal value - in this
case 3
decimal places. Choice 2 It indicates that if a variable falls within
.3 of
the value specified in the value statement, the corresponding label is
used
to print the value. Choice 3 It prints the label defined in the value
if the
variable value contains a .3. Choice 4 It multiplies the value of the
variable times .3, and if the result equals the label (a certain number
as
defined in the DATA step), then prints the label. Choice 5 It divides
the
value of the variable by .3, and if the result equals the label (a
certain
number as defined in the DATA step), then prints the label. Which of
the
following is true of compressed data sets? Choice 1 Storage
requirements
are always decreased. Choice 2 CPU time required to prepare
observations
for input/output operations is decreased. Choice 3 The FIRSTOBS= and
OBS=
data set options can be used. Choice 4 The POINT= set option in the
set
statement can be used. Choice 5 None of the above are true.
You need to write out a comma-delimited flat file for import into MS
Excel.
Given that all values in your data set are positive and below 100000,
what
FORMAT used to write to the file would cause problems during the
import?
Choice 1 DOLLAR7. Choice 2 5. Choice 3 DOLLAR7.2 Choice 4 $5 Choice
5
7.2
TIA,
Garland
Shane Hornibrook <shane_sasl_nospam1@ShaneHornibrook.com> wrote:
Garland,
You've gotten great responses from Sigurd Hermansen, David L. Cassell,
and
JP. I have a bit to add to their code. If you run some of the example
code
using "select * from" and joining varibles with the same name you will
notice WARNINGs in the log.
Using David L. Cassell's code as the base;
proc sql noprint;
create table dm as
select * from ds1 as a left join ds2 as b
on a.subjid=b.subjid and a.lbtst=b.lbtst;
quit;
If you run the code you will get warnings similar to
"WARNING: Variable subjid already exists on file WORK.DM."
"WARNING: Variable lbtst already exists on file WORK.DM."
You can avoid these warnings by adding a RENAME to one set of
variables, and
dropping the renamed variables on the created table. It is not a
required
part of the SQL join, but it keeps your log file uncluttered.
The modified code looks like;
proc sql noprint;
create table dm(drop=subjid_temp lbtst_temp) as
select * from ds1 as a left join ds2 (rename=(subjid=subjid_temp
lbtst=lbtst_temp)) as b on a.subjid=b.subjid_temp and
a.lbtst=b.lbtst_temp;
quit; run;
It looks a little 'crufty', but it works, and may save you a bit of
time
when reviewing your log files. On the downside, your code will run
perhaps
30% slower than the non-renamed-variable SQL. This performance hit is
in
addition to the overhead of using PROC SQL vs the comparable datastep.
This
may become an issue if you are joining more than 500,000 records (As
written
and tested on an IBM AIX RS/6000 SAS v8 .... your mileage may vary).
In this case it seems faster (in all regards) to code and run the
equivalent
data step.
--Shane
Shane Hornibrook
Mobile: (902)441-4158
shane_sasl_nospam1@shanehornibrook.com
http://www.shanehornibrook.com/
On Fri, 24 Jan 2003, Garland wrote:
> Hi,
>
> I have the following program. Can anybody give me the PROC SQL query
> for the following datastep. I am learing proc sql just started to
> convert the previously written programs to proc sql as an exercise.
>
> Thanks in advance,
> Garland
>
> Data ds1;
> Input subjid lbtst$ lowhigh $;
> Datalines;
> 1001 ALBUMIN NH
> 1001 BUN NL
> 1002 CALCIUM NH
> 1002 BUN NL
> 1002 LDH NH
> ;
>
> Data ds2;
> Input subjid studydy lbtst$ ;
> Datalines;
> 1001 0 ALBUMIN
> 1001 1 ALBUMIN
> 1001 7 ALBUMIN
> 1001 14 ALBUMIN
> 1001 0 BUN
> 1001 1 BUN
> 1001 1 URIC_ACID
> 1001 2 GLUCOSE
> 1002 1 CALCIUM
> 1002 1 BUN
> 1002 0 LDH
> 1003 2 SODIUM
> 1003 2 LDH
> ;
>
> run;
>
> proc sort data=ds1;
> by subjid lbtst;
> run;
>
> proc sort data=ds2;
> by subjid lbtst;
> run;
>
> data dm;
> merge ds1(in=aa) ds2;
> by subjid lbtst;
> if aa;
> run;
>
---------------------------------
Do you Yahoo!?
Free online calendar with sync to Outlook(TM).
---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.483 / Virus Database: 279 - Release Date: 5/19/2003
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.483 / Virus Database: 279 - Release Date: 5/19/2003