Using PROC RANK and PROC UNIVARIATE to Rank or Decile Variables
|
|
|
- Dominick Wood
- 9 years ago
- Views:
Transcription
1 Using PROC RANK and PROC UNIVARIATE to Rank or Decile Variables Jonas V. Bilenas, JP Morgan Chase Bank, Wilmington, DE ABSTRACT In direct marketing applications prospects are often ranked by scores that predict response, risk and/or profitability. Justification is to evaluate lifts in performance by soliciting the most profitable individuals as defined by score ranking. Many programmers write complicated code using PROC SORT, MACRO calls, and DATA STEPS to rank or decile these scores. These programs often don t handle score ties which can result when 2 or more prospects with the same score end up in 2 or more ranks. We will show how using PROC RANK will provide a quick and simple way to rank or decile individuals that will handle ties with the PROC RANK TIES option. We will look at the syntax of PROC RANK with a number of examples and applications. Since PROC RANK does not have a WEIGHT statement to handle weighted samples we will show how to handle weights using PROC UNIVARIATE and PROC FORMAT to perform a weighted ranking. INTRODUCTION How many times are you asked to group one or more numeric variables into quartiles, deciles, or other number of groups? Are you ever asked to generate a report where you are asked to cross 2 numeric variables after binning into groups? PROC RANK can help you easily create these groupings with a few lines of code. In this paper we will review the syntax of PROC RANK, indicate why you would want to use the procedure, show a number of examples in using PROC RANK, and provide an alternative to PROC RANK when dealing with sampled data. WHAT IS PROC RANK? PROC RANK computes the RANKS from one or more numeric variables across observations in a SAS data set and creates a new data set that captures these rankings. PROC RANK does not produce any printed output but has many options to specify the order of ranks, handling ties in variable values, and can generate variable bins or groupings based on the specification of the GROUPS option. Some of the applications of PROC RANK are listed here: Nonparametric Statistics. Many nonparametric procedures are simply the parametric procedures using ranks of variables as opposed to using the raw, unranked variable values. Generating deciles, quartiles, percentiles or other groups from numeric variables. The GROUPS option is used here to specify the binning. Deciles are created by specifying GROUPS=10, quartiles can be generated by GROUPS=4, and percentiles are created with setting GROUPS=100. Exploratory scatter plots when the Y-axis is binary. When both X and Y variables are continuous a scatter plot with a smoothed fit (i.e.; PROC LOESS) can be informative. When the Y variable is binary (taking on values of 0 and 1) the graph is difficult to interpret. Generating bins of the X variable and plotting means of the Y variable (or log of odds of Y) as a function of means of binned X variable can be more informative. SIMPLE EXAMPLE USING PROC RANK Let us create some simple data to see how PROC RANK works. The following code will generate a data set with one variable (SPEND): data test; input datalines; ; 1
2 We can generate some simple PROC RANK code to get a feel for the data output from the procedure. Note that the OUT= option in line ❶ specifies the name of the output data set from PROC RANK. If this option is not included, the RANK procedure will generate an incremental data set with a prefix of DATA (example; DATA2). proc rank data=test out=r_test; var spend; proc print data=r_test; ❶ Recall that PROC RANK does not produce any printed output so we included the PROC PRINT to see the resulting data created by PROC RANK (R_TEST). Output from the code is shown in Figure 1. Notice that the SPEND variable now contains the ranks for non-missing values of the original variable SPEND from the TEST data. If you wish to retain the original values of the SPEND variable you can modify the code to include a RANKS statement. RANKS, in line ❶ below, names the variable you wish to store the value of ranks in. In this code we name a variable called R_SPEND which captures the RANKS of the SPEND variable specified in the VAR statement. Results from PROC PRINT are shown in Figure 2. proc rank data=test out=r_test; var spend; ranks r_spend; ❶ Obs Fig 1 spend Fig 2 Obs spend r_spend By default, RANKS are in ascending order. Sometimes you may want to reverse the order. This can be done with the DESCEND- ING option in PROC RANK. Using the TEST data, we modify the PROC RANK code and show the results of the PROC PRINT in Figure 3. proc rank data=test out=r_test descending; var spend; ranks r_spend; Fig 3. Obs spend r_spend
3 WHAT ABOUT TIES? If there are tied values in the variable that is being ranked, the RANK procedure has a number of options to handle ties. The default option is MEANS where the mean rank is returned for tied values. Let s modify the TEST data to include some ties and look at the resulting output. Code is shown here with output in Figure 4. data test; input datalines; ; proc rank data=test out=r_test descending; var spend; ranks r_spend; proc print data=r_test; Fig 4. Obs spend r_spend Other options for ties include TIES=LOW, TIES=HIGH, and TIES=DENSE (added in SAS 9.2). With TIES=LOW, the tied values are assigned to the lower rank. With TIES=HIGH, tied values are assigned to the higher rank. For the DENSE option, the ranks are consecutive integers that begin with 1 end with the number of unique values of the VAR variable. Code is shown for TIES=LOW. Output for LOW is shown in figure 5. Results with HIGH is shown if figure 6 and DENSE is illustrated in figure 7. proc rank data=test out=r_test descending ties=low; var spend; ranks r_spend; Fig 5: TIES=LOW spend r_spend Fig 6: TIES=HIGH spend r_spend Fig 7: TIES=DENSE spend r_spend
4 GENERATING DECILES OR OTHER GROUPINGS WITH PROC RANK Let us look at the task of generating deciles of numeric variables using PROC RANK. Let us begin by creating a simulated data set to work with. Code: data test2; do i = 1 to 10000; score = round(650+rannor(243)*20,1); event = (score+rannor(12)*25>700); output; end; For the data (TEST2) generated from the above code we have simulated 10,000 records. SCORE can be thought of as an integer credit score predicting, for this example, response to a direct mail offer for credit. The variable EVENT is the actual binary event; for example, response to the offer (1=yes, 0=no). We wish to look at the performance of the SCORE in predicting the EVENT. We can decile the score from high score to low and look at the performance of the mean EVENT at each decile. To handle this task, we can use the RANK procedure and use the GROUPS= option. The GROUPS= options assigns group values for the nonmissing values of the variable specified in the VAR statement. If a RANKS statement is specified, the group values are stored in the variable named in the RANKS statement. Group values range from 0 to the number specified minus 1. For example, if we wish deciles we can specify GROUPS=10 and the resulting group values range from 0 to 9. PROC RANK will never have tied values of the VAR variable in more than one group. Group assignment for tied values are determined by the TIES= option. As a result, we may end up with fewer groups than specified by the GROUPS option. If ties occur at a group split rule, the number of observations in each group may not be equal across groups. These are all good safety features in PROC RANK. You don t want tied values ending up in more than one group. The following code will run the decile splits for SCORE in descending order and generate a report on results by decile. Output of the report is shown in figure 8. proc rank data=test2 out=ranky ties=low descending groups=10; ❶ var score; ranks r_score; proc means data=ranky noprint; class r_score; var score event; output out=report n=n min(score)=score_min max(score)=score_max mean(event)=event_mean; ❷ ❸ proc print data=report noobs; var r_score n score_min score_max event_mean; format n comma6. event_mean percent10.2; 4
5 Fig 8. score_ score_ r_score n min max event_mean. 10, % 0 1, % 1 1, % % 3 1, % % % 6 1, % % % % Some comments about the code and output: In Line ❶ of the code we added the GROUPS=10 option. In line ❷ we did not specify the PROC MEANS option NWAY. As a result we have an overall result in the output from MEAN with a R_SCORE of missing. Note that the overall mean of response (EVENT) is 5.86%. The top scoring decile is at 28.74% In PROC MEANS we asked for the minimum and maximum scores to be captured in the REPORT data (line ❸). This can be useful for setting score cut-offs. Also note in the report that there are no ties in scores. SCATTERPLOTS GENERATED FROM DECILED DATA Output from PROC RANK when using GROUPS can be useful in scatter plots when the Y variable is binary. For example, if we look at code that plots the EVENT as a function of SCORE we notice that it is hard to tell from the graph if the X variable (SCORE) rank orders the variable we are trying to predict (EVENT: response) or the functional form of event as a function of the X variable (SCORE). Code and output: filename gout '.'; goptions reset=all device=cgmof97l gsfname=gout display ; axis1 label=(angle=90 "Event"); symbol1 i=none v=plus; proc gplot data=test2; plot event*score /vaxis=axis1 grid; quit; Figure 9. Output from GPLOT code 5
6 PROC RANK can assist us to get a more informative plot of the relationship between EVENT and SCORE. For each score decile we can plot the mean of the event (mean response) or typically, for binary data, we can plot the log of odds of the event if we will be using logistic regression to specify the functional relationship. Code is shown below and GPLOT output is shown in figure 10. proc means data=ranky noprint nway; class r_score; var score event; output out=plotit mean=; data plotit2; set plotit; odds=event/(1-event); axis2 label = (angle=90 "ODDS") logbase=e logstyle=expand; symbol1 i=join v=plus; proc gplot data=plotit2; plot odds*score /vaxis=axis2 grid; quit; Figure 10. Output from GPLOT code using output from PROC RANK. 6
7 HOW TO HANDLE WEIGHTED DATA PROC RANK does not have a WEIGHT statement. We often sample different populations at different rates and require results to be weighted back by a variable that indicates the weight used in sampling. Let s modify the TEST2 data and generate samples from the data. Since the events (EVENT=1) are rare, let s sample responders at 100% and only sample the non-events (EVENT=0) at 2%. Code to generate the sampled data: data test2; do i = 1 to 10000; score = round(650+rannor(243)*20,1); event = (score+rannor(12)*25>700); noa=1; neg_score = score*-1; r_score = neg_score; output; end; proc surveyselect data=test2 (where=(event=1)) out=events seed=62309 method=srs rate=1 stats; ❸ proc surveyselect data=test2 (where=(event=0)) out=event0 seed=62309 method=srs rate=.02 stats; ❹ ❶ ❷ proc append base=events data=event0 force; ❺ In lines ❶ and ❷ we add variables that we will use in subsequent TABULATE code to weight up to population results. In line ❷ we multiply the score by -1 since we want to create a descending effect. If you want to have a ascending effect just have R_SCORE=SCORE and drop the NEG_SCORE assignment. In lines ❸ and ❹ we run PROC SURVEYSELECT to generate the samples from TEST2 data. The STATS option will generate the weight variable (SAMPLINGWEIGHT) for observations in the final data set. PROC APPEND in line ❺ combines the 2 data sampled data into a single output data called EVENTS. More information on using PROC SURVEY- SELECT can be found in Cassell (2007, 2008). We can use PROC UNIVARIATE to generate weighted percentiles and output to a data set. Let s see how PROC UNIVARIATE can generate the decile values from the sampled EVENTS data: proc univariate data=events noprint; var neg_score; output out=p pctlpre=p_ pctlpts=10 to 100 by 10; weight SamplingWeight; proc transpose data=p out=pt; proc sort data=pt nodupkey force noequals; by COL1; Fig 11. _NAME_ COL1 P_ P_ P_ P_ P_ P_ P_ P_ P_ P_
8 In the PROC UNIVARIATE code above we generate the OUTPUT data set P than has percentile specification for deciles. We also include the WEIGHT statement to weight the results by the weight variable generated by SUR- VEYSELECT. We TRANSPOSE the resulting output from UNIVARIATE and remove duplicate decile values in the PROC SORT to handle any ties. This will mimic the TIES=DENSE specification in PROC RANK. Figure 11 shows us a PROC PRINT from the PT data. We can take the results from the PT data and use it to generate a user defined FORMAT to use when we report the population results. Code is listed here: data cntlin; set pt end=eof; length HLO SEXCL EEXCL $1 LABEL $2; retain fmtname "score" type 'N' end; ❶ nrec+1; if nrec=1 then do; HLO='L'; SEXCL='N'; EEXCL='Y'; start=.; end=col1; label=put(nrec-1,z2.); output; end; else if not eof then do; HLO=' '; SEXCL='N'; EEXCL='Y'; start=end; end=col1; label=put(nrec-1,z2.); output; end; else if eof then do; HLO='H'; SEXCL='N'; EEXCL='N'; start=end; end=.; label=put(nrec-1,z2.); output; end; ❷ ❸ ❹ ❺ proc format cntlin=cntlin; We are setting up a user defined FORMAT from the PT data. Labels will take on the row number we read from PT calculated in line ❷ and formatted as a 2 digit leading zero value. I use 2 digits in the event we want to modify the code for more 10 groups. To prevent a multi label FORMAT, we specify that ranges (START to END) be less than the decile cut-off (COL1) (❹) except for the last record (EOF=1) where we set a HIGH keyword value for the end condition (❺). START values are the retained END values from the previous record except for the first record where we set up a LOW keyword value. FMTLIB prints out the generated SCORE FORMAT as shown on the next page. 8
9 ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ FORMAT NAME: SCORE LENGTH: 2 NUMBER OF VALUES: 10 MIN LENGTH: 1 MAX LENGTH: 40 DEFAULT LENGTH 2 FUZZ: STD ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ START END LABEL (VER. V7 V8 17JUL2009:11:42:08) ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ LOW -676< < < < < < < < < HIGH 09 Šƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒœ We can now use the SCORE format in a report. Code is provided using PROC TABULATE. Similar results can be obtained using PROC MEANS with PROC PRINT. Note that the analysis variable is SCORE and the CLASS variable is R_SCORE. These can be the same values but for this example, R_SCORE is the negative of SCORE to get the descending effect. Also note that we apply the user defined FORMAT SCORE we created in code above in the FORMAT statement in PROC TABULATE. Code and output: proc format; picture pct (round) low-high = '009.99%'; proc tabulate data=events noseps formchar=' class r_score; format r_score score.; var score event noa; weight SamplingWeight; keylabel sum=' ' pctsum=' mean= ; table r_score='ranked Score' all, noa='weighted N'*f=comma8. noa='%'*pctsum<r_score all>*f=pct. score*(min max)*f=3. event='event rate'*mean*f=percent8.2 /rts=10 row=float misstext=' '; title UNIVARIATE; '; 9
10 UNIVARIATE score Weighted event N % Min Max rate Ranked Score % % % % % % % % 04 1, % % % % 06 1, % % % % % % 09 1, % % All 10, % % OTHER CONSIDERATIONS AND OPTIONS WHEN USING PROC RANK There are a few other options and considerations when using PROC RANK. Some of these will be mentioned in this section with additional examples. SPECIFYING MULTIPLE VARIABLES AND ROUNDING. Examples we have touched on have RANKED only 1 variable. We can specify any number of variables to rank in a single step with or without multiple RANKS specification. However, variables and the ranks must be processed in memory. You may need MEMSIZE and/or REALSIZE options to get PROC RANK to run with large number of variables. With respect to rounding, I received this next example from Mike Zdeb who illustrated that as a result of how SAS stores numeric data, it maybe wise to round the variables to the expected precision so that you don t get unexpected results. This example also illustrates multiple variables ranked in a single PROC RANK. Code: data test; input fn1 diffa = fn2 - fn1; diffb = round(diffa,0.01); datalines; ; 10
11 proc rank data=test out=ranks ties=low; var diffa diffb; ranks r_diffa r_diffb; proc print data=ranks; proc print data=ranks; format diffa diffb 21.18; Selected output from the first PROC PRINT shows that DIFFA and DIFFB are identical but the ranks are different: Obs fn1 fn2 diffa diffb r_diffa r_diffb Looking at the second PROC PRINT with more significant digits displayed shows that DIFFA and DIFFB are different, resulting in different ranks. diffa diffb r_diffa r_diffb
12 BY VARIABLES AND P OPTIONS With PROC RANK, we can return the percentiles (0-100) in the RANKS variable using the P option. The F option is similar but returns fraction (0-1). An application of these options can be used to calculate the 2 sample Kolmogorov-Smirnov (KS) statistic. The 2 sample KS statistic is a non-parametric test to see if 2 samples have the same distribution. It is defined as: Where KS is the maximum absolute cumulative percentile difference for variable x for 2 samples. PROC NPAR1WAY can calculate this statistic but sometimes people like to calculate the KS on a decile level as opposed to the individual score levels. To compare the results, let s look a the 2 sample KS for the TEST2 data from PROC NPAR1WAY and then compare with some calculations in PROC RANK. The output you want to look at from PROC NPAR1WAY is D-Statistic. Here is the code (SAS 9.2): proc npar1way data=test2 D; class event; var score; Selected output from NPAR1WAY: KS = max F ( x ) F ( x ) Kolmogorov-Smirnov Two-Sample Test (Asymptotic) D = max F1 - F Pr > D < j 2 Note that this is a 2 tail test of significance and that NPAR1WAY also prints out lower and upper tail tests. We can use PROC RANK to get similar results on a decile level. However note that the result we get from NPAR1WAY is much easier to code up. If we sort the TEST2 data by EVENT, we can get P (percentiles) for each value of EVENT in one PROC RANK using a BY statement. Notice the P option in PROC RANK: proc rank data=test2 out=events ties=low descending p; by event; var score; ranks F_score; j j We can then decile the SCORE variable in data EVENTS using GROUPS= options: proc rank data=events out=test3 groups=10 ties=low descending; var score; ranks D_score; 12
13 Data TEST3 from this latest PROC RANK has these variables we can use to calculate the KS values at each decile: SCORE: Raw score. EVENT: 1,0 F_SCORE: Cumulative percentile of score by EVENT groups. D_SCORE: Deciles (0-9) of SCORE. Recall that PROC RANK has no output, so we now need to calculate some results off of TEST3. proc means data=test3 noprint nway; class D_score; var F_score; output out=event max(f_score)=f_event n=n_event; where event; proc means data=test3 noprint nway; class D_score; var F_score; output out=nonevent max(f_score)=f_nonevent n=n_nonevent; where event=0; data ks; merge event nonevent; by D_score; KS=abs(F_event - F_nonevent); n=n_event + n_nonevent; Now we can print KS results at each decile: proc format; picture pct (round) low-high = '009.99%' ; proc print data=ks noobs label; var D_score n F_event F_nonevent ks; format n comma6. F_event F_nonevent KS pct.; label D_score='Decile' F_event='Cumulative Event' F_nonevent='Cumulative Non Event'; Fig 12 Cumulative Cumulative Decile n Event Non Event KS 0 1, % 6.75% 39.33% 1 1, % 16.84% 52.79% % 25.98% 54.22% 3 1, % 36.73% 52.52% % 47.20% 47.00% % 55.53% 40.71% 6 1, % 67.31% 30.47% % 77.70% 21.78% % 88.64% 11.18% % % 0.00% 13
14 Figure 12 has the output. Notice that the resulting overall KS is the maximum absolute difference printed in the last column. Result here, on a decile level, is KS=54.22%. The KS (D statistic) from NPAR1WAY was (or 54.63%). Comparable but NPAR1WAY will typically be higher than the decile PROC RANK method in that the NPAR1WAY statistic was calculated on a SCORE value as opposed to a decile (D_SCORE) value and maximum separation may not always occur at the decile level. ORDER (DEFAULT OR DESCENDING) AND TIES MAY GIVE YOU DIFFERENT RESULTS With PROC RANK results may be different dependent on order or TIES specifications. The number of GROUPS you get and the frequency by group may change depending on order and TIES specifications. Let s look at a simple example to illustrate. Code generates some simulated data where we only have 2 values of the variable we wish to rank into 2 groups. The ORDERS data has 100 rows with 40 at 0 and 60 at 1. data orders; do i = 1 to 100; x = (i>40); output; end; proc rank data=orders out=ranked ties=low groups=2; var x; ranks r_x; proc freq data=ranked; table r_x; Output shows that there is only 1 group. At first this may not make sense but makes sense when you think how you coded PROC RANK. We specified GROUP=2 with TIES=LOW. The 50 th percentile of X in the data is 1 and goes into the first group, R_X of 0. All other values are 1 so all get dumped into group 0. Rank for Variable Cumulative Cumulative r_x Frequency Percent Frequency Percent Results would be different dependent on how we specify the order and TIES. If we specify DESCENDING option the results are: Rank for Variable x Cumulative Cumulative r_x Frequency Percent Frequency Percent
15 If we use defaults for ties and order results are: Rank for Variable x Cumulative Cumulative r_x Frequency Percent Frequency Percent Of course, if we specified GROUPS=10, all runs should get 2 groups. It is important to know your data and the question I would have is why group rank a variable that only has 2 values? CONCLUSIONS We have looked at using PROC RANK to rank and group numeric data. The procedure is very simple to use and often easier to use than using sorts, macros, and data steps to get the same results. PROC RANK does not produce any listed output so you will need subsequent procedures or data steps to process the data for analysis and/or reporting. There are a few PROC RANK options that generate normal or exponential scores from the data, but those options are left to the reader to research. We have also looked at how PROC UNIVARIATE and PROC FORMAT can be used when we need to get deciles or other grouping with sampled data. REFERENCES: Bilenas, Jonas (2005). The Power of PROC FORMAT, SAS Press. Cassell, David L. (2007). Don t Be Loopy: Re-sampling and Simulation the SAS Way, SAS Global Forum. Paper Cassell, David L. (2008). Stupid Human Tricks with PROC SURVEYSELECT, SAS Global Forum. Paper Garavaglia, Susan B. (1999). Applying Familiar Non-Parametric Tests to Evaluation of Neural Network Inputs, NESUG 1999 Shaoji Xu, (2008). Is.1+.2 Equal TO.3? NESUG
16 ACKNOWLEDGMENTS Thanks to Yan Jiang and Haiyan Weng for asking me how to handle weights in ranking. Thanks as well to WenSui Liu and Mike Zdeb for providing me with new and interesting ways of doing things in SAS. SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. indicates USA registration. This work is an independent effort and does not necessarily represent the practices followed at JP Morgan Chase Bank. CONTACT INFORMATION In case a reader wants to get in touch with you, please put your contact information at the end of the paper.) Your comments and questions are valued and encouraged. Contact the author at: Jonas V. Bilenas JP Morgan Chase Bank Wilmington, DE [email protected] [email protected] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 16
THE POWER OF PROC FORMAT
THE POWER OF PROC FORMAT Jonas V. Bilenas, Chase Manhattan Bank, New York, NY ABSTRACT The FORMAT procedure in SAS is a very powerful and productive tool. Yet many beginning programmers rarely make use
Subsetting Observations from Large SAS Data Sets
Subsetting Observations from Large SAS Data Sets Christopher J. Bost, MDRC, New York, NY ABSTRACT This paper reviews four techniques to subset observations from large SAS data sets: MERGE, PROC SQL, user-defined
Data Mining: An Overview of Methods and Technologies for Increasing Profits in Direct Marketing. C. Olivia Rud, VP, Fleet Bank
Data Mining: An Overview of Methods and Technologies for Increasing Profits in Direct Marketing C. Olivia Rud, VP, Fleet Bank ABSTRACT Data Mining is a new term for the common practice of searching through
PO-18 Array, Hurray, Array; Consolidate or Expand Your Input Data Stream Using Arrays
Array, Hurray, Array; Consolidate or Expand Your Input Data Stream Using Arrays, continued SESUG 2012 PO-18 Array, Hurray, Array; Consolidate or Expand Your Input Data Stream Using Arrays William E Benjamin
Direct Marketing Profit Model. Bruce Lund, Marketing Associates, Detroit, Michigan and Wilmington, Delaware
Paper CI-04 Direct Marketing Profit Model Bruce Lund, Marketing Associates, Detroit, Michigan and Wilmington, Delaware ABSTRACT A net lift model gives the expected incrementality (the incremental rate)
Data Cleaning 101. Ronald Cody, Ed.D., Robert Wood Johnson Medical School, Piscataway, NJ. Variable Name. Valid Values. Type
Data Cleaning 101 Ronald Cody, Ed.D., Robert Wood Johnson Medical School, Piscataway, NJ INTRODUCTION One of the first and most important steps in any data processing task is to verify that your data values
Modeling Lifetime Value in the Insurance Industry
Modeling Lifetime Value in the Insurance Industry C. Olivia Parr Rud, Executive Vice President, Data Square, LLC ABSTRACT Acquisition modeling for direct mail insurance has the unique challenge of targeting
Paper 208-28. KEYWORDS PROC TRANSPOSE, PROC CORR, PROC MEANS, PROC GPLOT, Macro Language, Mean, Standard Deviation, Vertical Reference.
Paper 208-28 Analysis of Method Comparison Studies Using SAS Mohamed Shoukri, King Faisal Specialist Hospital & Research Center, Riyadh, KSA and Department of Epidemiology and Biostatistics, University
IBM SPSS Direct Marketing 23
IBM SPSS Direct Marketing 23 Note Before using this information and the product it supports, read the information in Notices on page 25. Product Information This edition applies to version 23, release
IBM SPSS Direct Marketing 22
IBM SPSS Direct Marketing 22 Note Before using this information and the product it supports, read the information in Notices on page 25. Product Information This edition applies to version 22, release
Innovative Techniques and Tools to Detect Data Quality Problems
Paper DM05 Innovative Techniques and Tools to Detect Data Quality Problems Hong Qi and Allan Glaser Merck & Co., Inc., Upper Gwynnedd, PA ABSTRACT High quality data are essential for accurate and meaningful
Basic Statistical and Modeling Procedures Using SAS
Basic Statistical and Modeling Procedures Using SAS One-Sample Tests The statistical procedures illustrated in this handout use two datasets. The first, Pulse, has information collected in a classroom
Statistics, Data Analysis & Econometrics
Using the LOGISTIC Procedure to Model Responses to Financial Services Direct Marketing David Marsh, Senior Credit Risk Modeler, Canadian Tire Financial Services, Welland, Ontario ABSTRACT It is more important
Taming the PROC TRANSPOSE
Taming the PROC TRANSPOSE Matt Taylor, Carolina Analytical Consulting, LLC ABSTRACT The PROC TRANSPOSE is often misunderstood and seldom used. SAS users are unsure of the results it will give and curious
STATISTICA Formula Guide: Logistic Regression. Table of Contents
: Table of Contents... 1 Overview of Model... 1 Dispersion... 2 Parameterization... 3 Sigma-Restricted Model... 3 Overparameterized Model... 4 Reference Coding... 4 Model Summary (Summary Tab)... 5 Summary
4 Other useful features on the course web page. 5 Accessing SAS
1 Using SAS outside of ITCs Statistical Methods and Computing, 22S:30/105 Instructor: Cowles Lab 1 Jan 31, 2014 You can access SAS from off campus by using the ITC Virtual Desktop Go to https://virtualdesktopuiowaedu
Salary. Cumulative Frequency
HW01 Answering the Right Question with the Right PROC Carrie Mariner, Afton-Royal Training & Consulting, Richmond, VA ABSTRACT When your boss comes to you and says "I need this report by tomorrow!" do
Modeling Customer Lifetime Value Using Survival Analysis An Application in the Telecommunications Industry
Paper 12028 Modeling Customer Lifetime Value Using Survival Analysis An Application in the Telecommunications Industry Junxiang Lu, Ph.D. Overland Park, Kansas ABSTRACT Increasingly, companies are viewing
EXST SAS Lab Lab #4: Data input and dataset modifications
EXST SAS Lab Lab #4: Data input and dataset modifications Objectives 1. Import an EXCEL dataset. 2. Infile an external dataset (CSV file) 3. Concatenate two datasets into one 4. The PLOT statement will
2 Describing, Exploring, and
2 Describing, Exploring, and Comparing Data This chapter introduces the graphical plotting and summary statistics capabilities of the TI- 83 Plus. First row keys like \ R (67$73/276 are used to obtain
Exercise 1.12 (Pg. 22-23)
Individuals: The objects that are described by a set of data. They may be people, animals, things, etc. (Also referred to as Cases or Records) Variables: The characteristics recorded about each individual.
Gamma Distribution Fitting
Chapter 552 Gamma Distribution Fitting Introduction This module fits the gamma probability distributions to a complete or censored set of individual or grouped data values. It outputs various statistics
Dongfeng Li. Autumn 2010
Autumn 2010 Chapter Contents Some statistics background; ; Comparing means and proportions; variance. Students should master the basic concepts, descriptive statistics measures and graphs, basic hypothesis
Paper 70-27 An Introduction to SAS PROC SQL Timothy J Harrington, Venturi Partners Consulting, Waukegan, Illinois
Paper 70-27 An Introduction to SAS PROC SQL Timothy J Harrington, Venturi Partners Consulting, Waukegan, Illinois Abstract This paper introduces SAS users with at least a basic understanding of SAS data
Using SAS to Create Graphs with Pop-up Functions Shiqun (Stan) Li, Minimax Information Services, NJ Wei Zhou, Lilly USA LLC, IN
Paper CC12 Using SAS to Create Graphs with Pop-up Functions Shiqun (Stan) Li, Minimax Information Services, NJ Wei Zhou, Lilly USA LLC, IN ABSTRACT In addition to the static graph features, SAS provides
STT315 Chapter 4 Random Variables & Probability Distributions KM. Chapter 4.5, 6, 8 Probability Distributions for Continuous Random Variables
Chapter 4.5, 6, 8 Probability Distributions for Continuous Random Variables Discrete vs. continuous random variables Examples of continuous distributions o Uniform o Exponential o Normal Recall: A random
Counting the Ways to Count in SAS. Imelda C. Go, South Carolina Department of Education, Columbia, SC
Paper CC 14 Counting the Ways to Count in SAS Imelda C. Go, South Carolina Department of Education, Columbia, SC ABSTRACT This paper first takes the reader through a progression of ways to count in SAS.
USING PROCEDURES TO CREATE SAS DATA SETS... ILLUSTRATED WITH AGE ADJUSTING OF DEATH RATES 1
USING PROCEDURES TO CREATE SAS DATA SETS... ILLUSTRATED WITH AGE ADJUSTING OF DEATH RATES 1 There may be times when you run a SAS procedure when you would like to direct the procedure output to a SAS data
Paper D10 2009. Ranking Predictors in Logistic Regression. Doug Thompson, Assurant Health, Milwaukee, WI
Paper D10 2009 Ranking Predictors in Logistic Regression Doug Thompson, Assurant Health, Milwaukee, WI ABSTRACT There is little consensus on how best to rank predictors in logistic regression. This paper
Performing Queries Using PROC SQL (1)
SAS SQL Contents Performing queries using PROC SQL Performing advanced queries using PROC SQL Combining tables horizontally using PROC SQL Combining tables vertically using PROC SQL 2 Performing Queries
Christianna S. Williams, University of North Carolina at Chapel Hill, Chapel Hill, NC
Christianna S. Williams, University of North Carolina at Chapel Hill, Chapel Hill, NC ABSTRACT Have you used PROC MEANS or PROC SUMMARY and wished there was something intermediate between the NWAY option
IBM SPSS Direct Marketing 19
IBM SPSS Direct Marketing 19 Note: Before using this information and the product it supports, read the general information under Notices on p. 105. This document contains proprietary information of SPSS
Role of Customer Response Models in Customer Solicitation Center s Direct Marketing Campaign
Role of Customer Response Models in Customer Solicitation Center s Direct Marketing Campaign Arun K Mandapaka, Amit Singh Kushwah, Dr.Goutam Chakraborty Oklahoma State University, OK, USA ABSTRACT Direct
Reducing Credit Union Member Attrition with Predictive Analytics
Reducing Credit Union Member Attrition with Predictive Analytics Nate Derby, Stakana Analytics, Seattle, WA Mark Keintz, Wharton Research Data Services, Philadelphia, PA ABSTRACT As credit unions market
Alex Vidras, David Tysinger. Merkle Inc.
Using PROC LOGISTIC, SAS MACROS and ODS Output to evaluate the consistency of independent variables during the development of logistic regression models. An example from the retail banking industry ABSTRACT
Data Visualization with SAS/Graph
Data Visualization with SAS/Graph Keith Cranford Office of the Attorney General, Child Support Division Abstract With the increase use of Business Intelligence, data visualization is becoming more important
Statistics and Data Analysis
NESUG 27 PRO LOGISTI: The Logistics ehind Interpreting ategorical Variable Effects Taylor Lewis, U.S. Office of Personnel Management, Washington, D STRT The goal of this paper is to demystify how SS models
9.2 User s Guide SAS/STAT. Introduction. (Book Excerpt) SAS Documentation
SAS/STAT Introduction (Book Excerpt) 9.2 User s Guide SAS Documentation This document is an individual chapter from SAS/STAT 9.2 User s Guide. The correct bibliographic citation for the complete manual
Part 3. Comparing Groups. Chapter 7 Comparing Paired Groups 189. Chapter 8 Comparing Two Independent Groups 217
Part 3 Comparing Groups Chapter 7 Comparing Paired Groups 189 Chapter 8 Comparing Two Independent Groups 217 Chapter 9 Comparing More Than Two Groups 257 188 Elementary Statistics Using SAS Chapter 7 Comparing
Efficient Techniques and Tips in Handling Large Datasets Shilong Kuang, Kelley Blue Book Inc., Irvine, CA
Efficient Techniques and Tips in Handling Large Datasets Shilong Kuang, Kelley Blue Book Inc., Irvine, CA ABSTRACT When we work on millions of records, with hundreds of variables, it is crucial how we
Query 4. Lesson Objectives 4. Review 5. Smart Query 5. Create a Smart Query 6. Create a Smart Query Definition from an Ad-hoc Query 9
TABLE OF CONTENTS Query 4 Lesson Objectives 4 Review 5 Smart Query 5 Create a Smart Query 6 Create a Smart Query Definition from an Ad-hoc Query 9 Query Functions and Features 13 Summarize Output Fields
Tips, Tricks, and Techniques from the Experts
Tips, Tricks, and Techniques from the Experts Presented by Katie Ronk 2997 Yarmouth Greenway Drive, Madison, WI 53711 Phone: (608) 278-9964 Web: www.sys-seminar.com Systems Seminar Consultants, Inc www.sys-seminar.com
Predicting Customer Churn in the Telecommunications Industry An Application of Survival Analysis Modeling Using SAS
Paper 114-27 Predicting Customer in the Telecommunications Industry An Application of Survival Analysis Modeling Using SAS Junxiang Lu, Ph.D. Sprint Communications Company Overland Park, Kansas ABSTRACT
Descriptive Statistics
Y520 Robert S Michael Goal: Learn to calculate indicators and construct graphs that summarize and describe a large quantity of values. Using the textbook readings and other resources listed on the web
Improved Interaction Interpretation: Application of the EFFECTPLOT statement and other useful features in PROC LOGISTIC
Paper AA08-2013 Improved Interaction Interpretation: Application of the EFFECTPLOT statement and other useful features in PROC LOGISTIC Robert G. Downer, Grand Valley State University, Allendale, MI ABSTRACT
Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation
Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation Abstract This paper discusses methods of joining SAS data sets. The different methods and the reasons for choosing a particular
AN INTRODUCTION TO THE SQL PROCEDURE Chris Yindra, C. Y. Associates
AN INTRODUCTION TO THE SQL PROCEDURE Chris Yindra, C Y Associates Abstract This tutorial will introduce the SQL (Structured Query Language) procedure through a series of simple examples We will initially
MEASURES OF LOCATION AND SPREAD
Paper TU04 An Overview of Non-parametric Tests in SAS : When, Why, and How Paul A. Pappas and Venita DePuy Durham, North Carolina, USA ABSTRACT Most commonly used statistical procedures are based on the
Using SAS to Build Customer Level Datasets for Predictive Modeling Scott Shockley, Cox Communications, New Orleans, Louisiana
Using SAS to Build Customer Level Datasets for Predictive Modeling Scott Shockley, Cox Communications, New Orleans, Louisiana ABSTRACT If you are using operational data to build datasets at the customer
Ten Things You Should Know About PROC FORMAT Jack Shoemaker, Accordant Health Services, Greensboro, NC
Ten Things You Should Know About PROC FORMAT Jack Shoemaker, Accordant Health Services, Greensboro, NC ABSTRACT The SAS system shares many features with other programming languages and reporting packages.
ln(p/(1-p)) = α +β*age35plus, where p is the probability or odds of drinking
Dummy Coding for Dummies Kathryn Martin, Maternal, Child and Adolescent Health Program, California Department of Public Health ABSTRACT There are a number of ways to incorporate categorical variables into
Two Correlated Proportions (McNemar Test)
Chapter 50 Two Correlated Proportions (Mcemar Test) Introduction This procedure computes confidence intervals and hypothesis tests for the comparison of the marginal frequencies of two factors (each with
Effective Use of SQL in SAS Programming
INTRODUCTION Effective Use of SQL in SAS Programming Yi Zhao Merck & Co. Inc., Upper Gwynedd, Pennsylvania Structured Query Language (SQL) is a data manipulation tool of which many SAS programmers are
Analyze the Stock Market Using the SAS System Luis Soriano, Qualex Consulting Services, Inc. Martinsville, VA
Paper 145-27 Analyze the Stock Market Using the SAS System Luis Soriano, Qualex Consulting Services, Inc. Martinsville, VA ABSTRACT Financial Managers, Analysts, and Investors need to find the better opportunities
Guido s Guide to PROC FREQ A Tutorial for Beginners Using the SAS System Joseph J. Guido, University of Rochester Medical Center, Rochester, NY
Guido s Guide to PROC FREQ A Tutorial for Beginners Using the SAS System Joseph J. Guido, University of Rochester Medical Center, Rochester, NY ABSTRACT PROC FREQ is an essential procedure within BASE
Chapter 1 Overview of the SQL Procedure
Chapter 1 Overview of the SQL Procedure 1.1 Features of PROC SQL...1-3 1.2 Selecting Columns and Rows...1-6 1.3 Presenting and Summarizing Data...1-17 1.4 Joining Tables...1-27 1-2 Chapter 1 Overview of
Foundations & Fundamentals. A PROC SQL Primer. Matt Taylor, Carolina Analytical Consulting, LLC, Charlotte, NC
A PROC SQL Primer Matt Taylor, Carolina Analytical Consulting, LLC, Charlotte, NC ABSTRACT Most SAS programmers utilize the power of the DATA step to manipulate their datasets. However, unless they pull
Make Better Decisions with Optimization
ABSTRACT Paper SAS1785-2015 Make Better Decisions with Optimization David R. Duling, SAS Institute Inc. Automated decision making systems are now found everywhere, from your bank to your government to
Beginning Tutorials. PROC FREQ: It s More Than Counts Richard Severino, The Queen s Medical Center, Honolulu, HI OVERVIEW.
Paper 69-25 PROC FREQ: It s More Than Counts Richard Severino, The Queen s Medical Center, Honolulu, HI ABSTRACT The FREQ procedure can be used for more than just obtaining a simple frequency distribution
APPLICATION PROGRAMMING: DATA MINING AND DATA WAREHOUSING
Wrocław University of Technology Internet Engineering Henryk Maciejewski APPLICATION PROGRAMMING: DATA MINING AND DATA WAREHOUSING PRACTICAL GUIDE Wrocław (2011) 1 Copyright by Wrocław University of Technology
Accurately and Efficiently Measuring Individual Account Credit Risk On Existing Portfolios
Accurately and Efficiently Measuring Individual Account Credit Risk On Existing Portfolios By: Michael Banasiak & By: Daniel Tantum, Ph.D. What Are Statistical Based Behavior Scoring Models And How Are
Evaluating the results of a car crash study using Statistical Analysis System. Kennesaw State University
Running head: EVALUATING THE RESULTS OF A CAR CRASH STUDY USING SAS 1 Evaluating the results of a car crash study using Statistical Analysis System Kennesaw State University 2 Abstract Part 1. The study
AN INTRODUCTION TO MACRO VARIABLES AND MACRO PROGRAMS Mike S. Zdeb, New York State Department of Health
AN INTRODUCTION TO MACRO VARIABLES AND MACRO PROGRAMS Mike S. Zdeb, New York State Department of Health INTRODUCTION There are a number of SAS tools that you may never have to use. Why? The main reason
IBM SPSS Direct Marketing 20
IBM SPSS Direct Marketing 20 Note: Before using this information and the product it supports, read the general information under Notices on p. 105. This edition applies to IBM SPSS Statistics 20 and to
UNTIED WORST-RANK SCORE ANALYSIS
Paper PO16 UNTIED WORST-RANK SCORE ANALYSIS William F. McCarthy, Maryland Medical Research Institute, Baltime, MD Nan Guo, Maryland Medical Research Institute, Baltime, MD ABSTRACT When the non-fatal outcome
Access Queries (Office 2003)
Access Queries (Office 2003) Technical Support Services Office of Information Technology, West Virginia University OIT Help Desk 293-4444 x 1 oit.wvu.edu/support/training/classmat/db/ Instructor: Kathy
Appendix III: SPSS Preliminary
Appendix III: SPSS Preliminary SPSS is a statistical software package that provides a number of tools needed for the analytical process planning, data collection, data access and management, analysis,
Report Customization Using PROC REPORT Procedure Shruthi Amruthnath, EPITEC, INC., Southfield, MI
Paper SA12-2014 Report Customization Using PROC REPORT Procedure Shruthi Amruthnath, EPITEC, INC., Southfield, MI ABSTRACT SAS offers powerful report writing tools to generate customized reports. PROC
Utilizing Clinical SAS Report Templates with ODS Sunil Kumar Gupta, Gupta Programming, Simi Valley, CA
Utilizing Clinical SAS Report Templates with ODS Sunil Kumar Gupta, Gupta Programming, Simi Valley, CA ABSTRACT SAS progrannners often have the responsibility of supporting the reporting needs of the Clinical
Using the Magical Keyword "INTO:" in PROC SQL
Using the Magical Keyword "INTO:" in PROC SQL Thiru Satchi Blue Cross and Blue Shield of Massachusetts, Boston, Massachusetts Abstract INTO: host-variable in PROC SQL is a powerful tool. It simplifies
Beyond the Basics: Advanced REPORT Procedure Tips and Tricks Updated for SAS 9.2 Allison McMahill Booth, SAS Institute Inc.
ABSTRACT PharmaSUG 2011 - Paper SAS-AD02 Beyond the Basics: Advanced REPORT Procedure Tips and Tricks Updated for SAS 9.2 Allison McMahill Booth, SAS Institute Inc., Cary, NC, USA This paper is an update
Data Analysis Tools. Tools for Summarizing Data
Data Analysis Tools This section of the notes is meant to introduce you to many of the tools that are provided by Excel under the Tools/Data Analysis menu item. If your computer does not have that tool
Alternatives to Merging SAS Data Sets But Be Careful
lternatives to Merging SS Data Sets ut e Careful Michael J. Wieczkowski, IMS HELTH, Plymouth Meeting, P bstract The MERGE statement in the SS programming language is a very useful tool in combining or
Health Care and Life Sciences
Sensitivity, Specificity, Accuracy, Associated Confidence Interval and ROC Analysis with Practical SAS Implementations Wen Zhu 1, Nancy Zeng 2, Ning Wang 2 1 K&L consulting services, Inc, Fort Washington,
Normality Testing in Excel
Normality Testing in Excel By Mark Harmon Copyright 2011 Mark Harmon No part of this publication may be reproduced or distributed without the express permission of the author. [email protected]
5: Magnitude 6: Convert to Polar 7: Convert to Rectangular
TI-NSPIRE CALCULATOR MENUS 1: Tools > 1: Define 2: Recall Definition --------------- 3: Delete Variable 4: Clear a-z 5: Clear History --------------- 6: Insert Comment 2: Number > 1: Convert to Decimal
Tutorial 3: Graphics and Exploratory Data Analysis in R Jason Pienaar and Tom Miller
Tutorial 3: Graphics and Exploratory Data Analysis in R Jason Pienaar and Tom Miller Getting to know the data An important first step before performing any kind of statistical analysis is to familiarize
Creating Dynamic Reports Using Data Exchange to Excel
Creating Dynamic Reports Using Data Exchange to Excel Liping Huang Visiting Nurse Service of New York ABSTRACT The ability to generate flexible reports in Excel is in great demand. This paper illustrates
Data Analysis. Using Excel. Jeffrey L. Rummel. BBA Seminar. Data in Excel. Excel Calculations of Descriptive Statistics. Single Variable Graphs
Using Excel Jeffrey L. Rummel Emory University Goizueta Business School BBA Seminar Jeffrey L. Rummel BBA Seminar 1 / 54 Excel Calculations of Descriptive Statistics Single Variable Graphs Relationships
ASSIGNMENT 4 PREDICTIVE MODELING AND GAINS CHARTS
DATABASE MARKETING Fall 2015, max 24 credits Dead line 15.10. ASSIGNMENT 4 PREDICTIVE MODELING AND GAINS CHARTS PART A Gains chart with excel Prepare a gains chart from the data in \\work\courses\e\27\e20100\ass4b.xls.
Tales from the Help Desk 3: More Solutions for Simple SAS Mistakes Bruce Gilsen, Federal Reserve Board
Tales from the Help Desk 3: More Solutions for Simple SAS Mistakes Bruce Gilsen, Federal Reserve Board INTRODUCTION In 20 years as a SAS consultant at the Federal Reserve Board, I have seen SAS users make
SAS: A Mini-Manual for ECO 351 by Andrew C. Brod
SAS: A Mini-Manual for ECO 351 by Andrew C. Brod 1. Introduction This document discusses the basics of using SAS to do problems and prepare for the exams in ECO 351. I decided to produce this little guide
Handling Missing Values in the SQL Procedure
Handling Missing Values in the SQL Procedure Danbo Yi, Abt Associates Inc., Cambridge, MA Lei Zhang, Domain Solutions Corp., Cambridge, MA ABSTRACT PROC SQL as a powerful database management tool provides
Paper PO06. Randomization in Clinical Trial Studies
Paper PO06 Randomization in Clinical Trial Studies David Shen, WCI, Inc. Zaizai Lu, AstraZeneca Pharmaceuticals ABSTRACT Randomization is of central importance in clinical trials. It prevents selection
How To Understand The Power Of Sas
Learning SAS by Example A Programmer s Guide Ron Cody SAS Press From Learning SAS by Example. Full book available for purchase here. Contents List of Programs xv Preface xxix Acknowledgments xxxi Part
Managing very large EXCEL files using the XLS engine John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc., Ridgefield, CT
Paper AD01 Managing very large EXCEL files using the XLS engine John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc., Ridgefield, CT ABSTRACT The use of EXCEL spreadsheets is very common in SAS applications,
Developing Credit Scorecards Using Credit Scoring for SAS Enterprise Miner TM 12.1
Developing Credit Scorecards Using Credit Scoring for SAS Enterprise Miner TM 12.1 SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2012. Developing
Writing cleaner and more powerful SAS code using macros. Patrick Breheny
Writing cleaner and more powerful SAS code using macros Patrick Breheny Why Use Macros? Macros automatically generate SAS code Macros allow you to make more dynamic, complex, and generalizable SAS programs
Multiple Graphs on One Page (Step-by-step approach) Yogesh Pande, Schering-Plough Corporation, Summit NJ
Paper CC01 Multiple Graphs on One Page (Step-by-step approach) Yogesh Pande, Schering-Plough Corporation, Summit NJ ABSTRACT In statistical analysis and reporting, it is essential to provide a clear presentation
New SAS Procedures for Analysis of Sample Survey Data
New SAS Procedures for Analysis of Sample Survey Data Anthony An and Donna Watts, SAS Institute Inc, Cary, NC Abstract Researchers use sample surveys to obtain information on a wide variety of issues Many
https://udrive.oit.umass.edu/statdata/sas2.zip C:\Word\documentation\SAS\Class2\SASLevel2.doc 3/7/2013 Biostatistics Consulting Center
SAS Data Management March, 2006 Introduction... 2 Reading Text Data Files... 2 INFILE Command Options... 2 INPUT Command Specifications... 2 Working with String Variables... 3 Upper and Lower Case String
Emailing Automated Notification of Errors in a Batch SAS Program Julie Kilburn, City of Hope, Duarte, CA Rebecca Ottesen, City of Hope, Duarte, CA
Emailing Automated Notification of Errors in a Batch SAS Program Julie Kilburn, City of Hope, Duarte, CA Rebecca Ottesen, City of Hope, Duarte, CA ABSTRACT With multiple programmers contributing to a batch
Survey, Statistics and Psychometrics Core Research Facility University of Nebraska-Lincoln. Log-Rank Test for More Than Two Groups
Survey, Statistics and Psychometrics Core Research Facility University of Nebraska-Lincoln Log-Rank Test for More Than Two Groups Prepared by Harlan Sayles (SRAM) Revised by Julia Soulakova (Statistics)
