ࡱ> Y fbjbjWW !==:b[]8LL.l d ( bZ.......$02v. ." l """  .."&"(k-.  T@ԯ@hR." PC SAS: An introduction to SAS 90-906, Intro to Econometric Theory The Heinz School Carnegie Mellon University Robert T. Greenbaum January 22, 1999 Contents  TOC \o "1-3" 1. Why Use SAS?  PAGEREF _Toc441057014 \h 3 2. Getting Started  PAGEREF _Toc441057015 \h 3 Starting SAS  PAGEREF _Toc441057016 \h 3 SAS Windows  PAGEREF _Toc441057017 \h 3 Using Programs to Analyze Data in SAS  PAGEREF _Toc441057018 \h 3 3. Data  PAGEREF _Toc441057019 \h 4 Importing ASCII data  PAGEREF _Toc441057020 \h 4 Accessing compressed data from a web page  PAGEREF _Toc441057021 \h 5 Accessing raw data from a web page  PAGEREF _Toc441057022 \h 5 Data Step  PAGEREF _Toc441057023 \h 6 Bringing in SAS data  PAGEREF _Toc441057024 \h 7 Data manipulation  PAGEREF _Toc441057025 \h 7 if-then  PAGEREF _Toc441057026 \h 8 Creating new variables  PAGEREF _Toc441057027 \h 8 Changing the value of the same variable  PAGEREF _Toc441057028 \h 8 Linking conditions  PAGEREF _Toc441057029 \h 9 Else subcommand  PAGEREF _Toc441057030 \h 9 Keeping and dropping variables  PAGEREF _Toc441057031 \h 9 Keeping and dropping observations  PAGEREF _Toc441057032 \h 10 4. Procedures  PAGEREF _Toc441057033 \h 10 CONTENTS  PAGEREF _Toc441057034 \h 10 FREQ  PAGEREF _Toc441057035 \h 11 UNIVARIATE  PAGEREF _Toc441057036 \h 11 PRINT  PAGEREF _Toc441057037 \h 11 MEANS  PAGEREF _Toc441057038 \h 11 CORR  PAGEREF _Toc441057039 \h 12 REG  PAGEREF _Toc441057040 \h 12 SORT  PAGEREF _Toc441057041 \h 12 FSBROWSE  PAGEREF _Toc441057042 \h 13 By  PAGEREF _Toc441057043 \h 13 5. Where to get help  PAGEREF _Toc441057044 \h 13 SAS manuals  PAGEREF _Toc441057045 \h 13 SAS help on line  PAGEREF _Toc441057046 \h 13 Ask someone  PAGEREF _Toc441057047 \h 14 6. Other  PAGEREF _Toc441057048 \h 14 Editing your programs and output  PAGEREF _Toc441057049 \h 14 Keeping track of you programs  PAGEREF _Toc441057050 \h 14 Writing good code  PAGEREF _Toc441057051 \h 14 Common errors  PAGEREF _Toc441057052 \h 14 Some Useful Functions  PAGEREF _Toc441057053 \h 15 Types of Files  PAGEREF _Toc441057054 \h 15 Function Keys  PAGEREF _Toc441057055 \h 15 Acquiring SAS  PAGEREF _Toc441057056 \h 15 7. Thanks  PAGEREF _Toc441057057 \h 16 8. Sample program  PAGEREF _Toc441057058 \h 16  1. Why Use SAS? This document provides the necessary background information needed to get started using SAS for your statistics class. The document should be used as a resource to help you learn basic data creation and analysis tools. SAS may not be the easiest statistical package to learn how to use, but it has a number of very nice features: Can handle very large data sets Is a very popular and powerful statistical package Employers like to see SAS on a resume You need it for your class 2. Getting Started Starting SAS To start SAS in Windows NT: Click on Start, Programs, The SAS System, The SAS System for Windows v6.12. SAS Windows Generally, you will use three main windows in SAS: Program editor: Use this window to compose and edit your SAS programs. Text in this window is generally saved with the .SAS extension. Log: This is where your program log will be. The program log will tell you whether your program ran successfully. If there are any errors, they will appear in red. Text in this window is generally saved with the .LOG extension. Output: This is where any program output will be. Text in this window is generally saved with the .LST extension. Note: You can toggle between the three windows by clicking on Window on the toolbar or by using the function keys: F5 (Program editor), F6 (Log Window), F7 (Output window). Note: To save the text in any of the windows, click on File, then Save as Annoying Note: When you change the Save as type, you may have to manually change the file extension. SAS defaults to the last file extension used. Using Programs to Analyze Data in SAS Unlike with some other statistical software packages, you will usually need to write programs in order to analyze your data. The programs read in data, modify the data as needed, and perform statistical analysis. Data is read in and modified in data steps, and data is analyzed using procedures. IMPORTANT: every line in a SAS program ends with a semicolon. 3. Data You can think of SAS data in terms of spreadsheet data. Columns are variables and each row is an observation. Each observation contains a value for every variable associated with the data set. ABCDE1Var 1Var 2Var 3Var 42Namesexagedist3obs 1WendyF1554obs 2AlexM17155obs 3AmirM1416obs 4BeckyF1747obs 5AliciaF1630 In this example, each observation is a person. There are four variables: name, sex, age, and distance to work. Because SAS has its own way of storing data in binary files, imported ASCII data must be converted into SAS data before analysis can begin. SAS allows you to access and use a number of data sets within the same program. You will use two types of SAS data sets in your programs: Permanent data sets are data sets that are stored in a user-designated directory (e.g. a:\mydata.sd2). Permanent data sets are particularly useful if the data they contain will be used in a future application. Permanent data sets will have the extension .sd2 on the PC. Temporary data sets are data sets that will be automatically deleted after you finish your SAS session. Temporary data sets are used when your only reference to that data will be within the current program. The most recently created data set is called the active data set. This data set includes the initial variables and values and any newly created variables or modified values that will be processed by the SAS program. The active data set may be permanent or temporary. Importing ASCII data Importing ASCII (text) data is not as straightforward as using a previously created SAS data set. The easiest way to convert data (ASCII, Excel, STATA, or many other types) to SAS data is to use a program such as Stat/Transfer. If you dont have Stat/Transfer, you will have to read in the data in the way explained below. To import the ASCII data, you first need an ASCII data set. Often, you will have to download the ASCII data from a web page. Accessing compressed data from a web page In some cases (typically, for this class), the data on a web page will be stored as a compressed (zipped) file. If that is the case, all you will need to do is select a location to save the file to when prompted. If the file has a .zip extension, you will need to decompress the file using PKZIP or WINZIP. If the file has an .exe extension, merely double click on the file name to uncompress. To access data from the course web page: Go to the web page:  HYPERLINK http://www.andrew.cmu.edu/course/90-906/index.htm http://www.andrew.cmu.edu/course/90-906/index.htm Click on data sets Click on the data set you want and save the file If the file is compressed (zipped), you will need to uncompress/extract it. To extract the data using PKZIP (WINZIP is similar): Double click on the file Click on Extract Click on Extract files... Choose the location to save the file to and click on Extract. Your text file will now be saved on your disk and ready to be used. Sometimes, you will run across HTML data on a web page that you will want to use as a SAS data set. Before you can do that, you must first save it as a text file: Accessing raw data from a web page Navigate to the appropriate web page. Select the data. If the first row contains variable names, do not select this row. Select File, Save As from the toolbar. For the Save as type, choose All Files (Netscape Navigator) or Text File (Internet Explorer). Enter a name and save your data (typically with a .txt extension). Once an ASCII data set exists, you are ready to write a program that imports and uses the data. The first step is to create filename at the top of your program. The filename tells SAS where your ASCII data set is. filename statement creates a logical name (an alias or nickname) for an ASCII data file. filename statetxt 'c:\users\states.txt'; If you intend to use or create a permanent data set, you will also need to create a libname at the top of your program. A libname lets you reference a data directory. libname statement establishes a logical name (an alias or nickname) for a directory which contains (or will contain) a permanent SAS data set. libname mydisk a:\; libname users c:\users\; Note: A program may contain multiple libnames and filenames. Note: If one of your libnames refers to the floppy disk drive (like mydisk), you must have a disk in the drive. Data Step Data steps are the place where we create new data files, add new data, delete data, or transform data. Data steps always begin with the word data. After the word data comes the name of the data set you are creating. Temporary data sets are named with only one word. data states; STATES is a temporary data set that will only exist during our current session. If we want to create a permanent data set, we must include a reference to the logical name in the data sets name. We do this by including the logical name followed by a period followed by the name of the data set. data users.stperm; In this example, we would have created c:\users\stperm.sd2 since users refers to c:\users. Note: The names of your variables must start with a character and must be no longer than eight characters. infile statement opens an ASCII data set input statement describes the arrangement of values in a data file and assigns the values to SAS variables. It is here that you assign the variable names, so the first row of your data should NOT contain the variable names. infile statetxt; input state $ 1-2 pop 12-19 inc_cp 20-25 spend 28-32; The infile command opens c:\users\states.txt. The input command reads the character variable state from columns 1-2, the numeric variables pop, inc_cp, and spend from columns 12-19, 20-25, and 28-32 from the data set c:\users\states.txt. Variable names followed by a $ are character variables and those without a $ are numeric. Note: One way to check where the columns start for a variable is to bring the data into MS Word. Word displays the column number at the bottom of the screen. Note: The name of your data set must start with a character and must be no longer than eight characters. Bringing in SAS data Using a SAS data set that has been created by you or somebody else is very easy. If the data already exists as a temporary or permanent SAS data set, we do not need to use the infile or input statements. To input existing SAS data into your working SAS data set, we use the set statement. set statement reads a permanent SAS data set into a new SAS data set. Set can be used to input either a temporary or a permanent SAS data set: data states2; set states; data getmore; set users.stperm; Note: Missing observations in SAS are represented by a period (.). Data manipulation Data can be manipulated only within a SAS data step. Inside the data step, the values of variables may be modified or new variables may be created. For example, to create a per capita spending variable, we enter the following: spend_cp = spend/pop; if-then Data manipulation usually involves making a decision or calculation based on the value of a variable with respect to a particular value or the value of another variable. Typically, this is done with the if-then statement and its subcommands and, or, and else. There are several other operands associated with the if-then statement: eq or=Equalsneor~=Not equalgtor>Greater thangeor>=Greater than or equalltor<Less thanleor<=Less than or equal Note: Numeric and character variables may not be compared to one another with if-then statements. When character values are used, they must be enclosed in single or double quotes. Creating new variables if-then statements are often used to create a new variable: if var_a = then var_b = ; This is an ideal way to create a dummy variable, which usually takes on a value of 1 when a condition is true, and 0 when the condition is false. bigpop = 0; if pop > 5000 then bigpop =1; The above statements create the dummy variable bigpop. bigpop = 1 only when population is greater than 5,000,000 (population is measured in thousands), and bigpop=0 otherwise. Changing the value of the same variable if-then statements can also be used to change the value of the same variable: if variable = then variable = ; For example, we might want to set all negative values of a spending measure to zero: if spend < 0 then spend = 0; Linking conditions The and and or subcommands can be used to link several conditions in an if-then statement. All of the conditions must be true for the command to execute. if (state = NY or state = NJ) and pop > 5000 then newbpop=1; This command sets newbpop equal to 1 if an observation is from New York or New Jersey and population is greater than 5,000,000. Else subcommand The else subcommand issues instructions if the condition(s) in the if-then statement is/are false. if (state = NY or state = NJ) and pop > 5000 then newbpop=1; else newbpop=0; Here, the else subcommand sets newbpop equal to 0 for all observations that are not in New York or New Jersey or for observations that are in New York or New Jersey and have populations less than 5,000,000. Keeping and dropping variables Within a data statement, it is possible to drop variables you no longer need or to keep just the variables you want. keep var1 var2 var3; (no commas between the variable names) The above keep statement will keep only variables var1, var2, and var3 in the active data set all other variables are dropped. drop var2 var3; The above drop statement will drop variables var2 and var3. All other variables in the active data set will be kept. Note: You can also use the keep and drop statements in the data or set statements: data states3 (drop = pop); or set states (keep = state spend pop); Keeping and dropping observations Just as you can delete variables, it is also possible to delete observations. if condition then delete; if spend >25000 then delete; The above statement deletes all observations for which spending is greater than $25,000,000,000 (spending figures are in millions) FYI: Using if with set Another way to keep just some observations is to use an if statement with a set statement: data smlspend; set states; if spend <=4000; The above data statements creates a temporary data set called smlspend that contains data from states only if spending is less than or equal to 4,000,000,000. 4. Procedures Procedures are the reason why you will want to use SAS. All statistical operations take place in the procedures or PROC step of a SAS program. Available procedures range from descriptive statistics (e.g. frequency distributions) to inferential statistics (e.g. regressions). The names of these procedures are generally mnemonic. The procedures themselves contain many options that are useful in tailoring your output. See the manual SAS Procedures for a complete list of SAS procedures and their options. Note: Each of these examples ends with the statement run;. You need to add the run statement if you are running SAS interactively. If you are running the commands in a program, you must have a run statement at the end of the program. Note: To execute/submit a program or a command from the program window, click on the button with the little person running, or hit F8. CONTENTS Proc contents provides a summary of the data set, including the list of variables and number of observations. proc contents data = states; run; FREQ Proc freq provides a frequency distribution of the variables specified in the tables subcommand. proc freq data=states; tables pop spend; tables pop*spend; run; The first command informs SAS that a frequency distribution is requested. The subcommand tables pop spend instructs SAS to produce a frequency distribution for both variables pop and spend. The second subcommand tables pop*spend instructs SAS to produce a crosstabulation for the variables pop and spend. UNIVARIATE Proc univariate provides descriptive statistics for the variables you specify. The statistics provided are mean, median, mode, standard deviation, quantiles, minimum and maximum values, and the five largest and smallest observations in the data set. Proc univariate data=states; var pop; run; Note: The var subcommand for this procedure and most other procedures tells SAS on which variable to perform the procedure. If I had omitted the subcommand, SAS would have performed the univariate procedure on all variables in the data set. PRINT Proc print prints out the data to the screen. Proc print data=states; var state inc_cp spend; run; MEANS Proc means provides (by default) the number of observations, mean, standard deviation, minimum and maximum values. Proc means data=states; var inc_cp spend; run; Note: to specify which statistics you would like reported, place the name of that statistic or statistics right after the word means. For example, to only report the mean: Proc means mean data=states; var inc_cp spend; run; CORR Proc corr provides a correlation matrix for the variables specified. proc corr data=states; var spend pop; run; Note: To include a covariance matrix in output, include the option cov: proc corr cov data=states; var spend pop; run; REG Proc reg estimates regressions. Proc reg data=states; model spend = inc_cp pop; run; The dependent variable goes right after the word model and the independent variables follow the equals sign. SORT Proc sort sorts the data by a particular variable. Proc sort data=states; by state; run; Note: by default, SAS sorts in ascending order (smallest to largest). For character variables, such as state, SAS will sort in ascending alphabetical order (a to z). If you need to sort in descending order, place the word DESCENDING before the variable name: Proc sort data=states; by DESCENDING state; run; Note: SAS can also sort by more than one variable: Proc sort data=states; by pop spend; run; In this example, SAS sorts first on population, then on spending. FSBROWSE Proc fsbrowse allows you to look at the data one observation at a time in a special window. Use the Page Up and Page Down keys to move from observation to observation. Proc fsbrowse data= states; run; Tip: To look at a SAS data set in a spreadsheet format, double click on a SAS filename. This will pull the data up into a special SAS window. Tip: If you double click on a SAS program file, SAS will launch and run the program. By Almost all procedures can include a by statement. This splits up the procedure by the by variable. Before you use the by statement, the data must first be sorted by that variable(s). proc sort data = states; by state; proc means data=states; by state; run; 5. Where to get help SAS manuals There are a number of SAS manuals that are helpful, and some of them actually reside in the Heinz Ph.D. computer lab. In particular, seek out the Procedures Guide and SAS Language. The CCon in the Heinz School basement has a book that you can check out that that combines the two: SAS Language and Procedures. If you get stuck or have questions, this is a good place to start. SAS help on line SAS has on line help that includes many sample programs and SAS/TUTOR online training. Ask someone If you cant get unstuck, find someone who knows SAS. Often, if you show them the log file, theyll be able to quickly identify your problem. If you have a question for me, please send me an e-mail with a description of your problem and make sure to also include your log file. 6. Other Editing your programs and output All SAS files (other than SAS data sets) are ASCII data. Therefore, if you prefer, you can write your programs in your favorite word processor and save the file as text with a .sas extension. (If you use Word, use double quotes around the name of your program name to prevent Word from adding a .txt extension: myprog.sas.) Likewise, you will most likely want to bring your SAS output into a word processor in order to edit it. You can either cut and paste from the output window, or you can open the saved .lst file in the word processor. Also note that one of Words fonts is SAS MONOSPACE FONT you can use this font to make the SAS output much more legible. Keeping track of you programs If you find yourself writing many SAS programs (either for a research project or for a class), it is a good idea to keep a list of all of your programs along with short descriptions of what they do. This will allow you to keep track of all of your programs and will allow you to more easily share code in different programs. Likewise, you should also keep a similar list describing each of your data sets. Writing good code SAS allows a great deal of freedom with regard to how you write your SAS code. Here are some stylistic guidelines that are good to follow: Use indentation to show logical structure. Use space and skipped lines to improve readability. Write only one SAS statement on a line. Use capitalization to set certain key words apart. Show data set names explicitly, even when SAS will default to the last data set created. This can avoid a lot a future confusion. Use comments (/* this comments out */). Common errors Forgetting to use a semicolon at the end of the statement Confusing character (string) and numeric variables Not sorting your data before using BY before merging Forgetting to end with a run statement Forgetting to close the program document in Word before running the program Some Useful Functions FUNCTION RETURNS ABS Absolute value EXP Exponential LOG Natural logarithm LOG10 Logarithm to base 10 MAX Largest value MIN Smallest value MOD Remainder value SQRT Square Root Types of Files ExtensionFile TypeData.txtAn ASCII data file.sd2SAS dataOther.sasSAS program.logSAS log.lstSAS output Function Keys I used F9 to generate this list of function keys. F4 is the function key I use the most. I use it to recall the last program that I submitted. F1 help Starts the help facility F2 reshow F3 end; /*gsubmit buffer=default*/ F4 recall Recalls last commands to the program editor F5 pgm Takes you to the program editor window F6 log Takes you to the log window F7 output Takes you to the output window F8 zoom off;submit Submits commands from the program editor F9 keys Displays function keys F11 command bar F12 Acquiring SAS For information regarding getting your own (possibly free) copy of SAS, visit the Heinz Computing software web page:  HYPERLINK http://www.heinz.cmu.edu/heinz/computing/studentsoftware.html http://www.heinz.cmu.edu/heinz/computing/studentsoftware.html 7. Thanks Some of this material comes from Hugh Shinns PC SAS Class, Steven Appolds SAS cheat sheets, and from CMUs Introduction (Intermediate, and Advanced) to SAS in a UNIX Environment 8. Sample program /* This program USESTATES.SAS uses income and spending data from 48 states in the STATES.SD2 dataset. The program performs some basic statistical analyses */ options ls=80 ps=400; /* this optional line sets the line size (how many characters per line) and the page size (how many lines per page) */ /*Set up a directory and name it rs */ libname rs 'r:\academic\90770\review sessions'; data statetmp; set rs.states; /* this calls up the states SAS data set */ if pop > 5000 then bigpop = 1; /* create a dummy variable*/ else bigpop = 0; PROC CONTENTS; /* let's find out what's in our data set */ PROC MEANS; /* let's view some descriptive statistics of our data */ var pop income gvt inccap gvtcap bigpop; /* note, without the VAR statement, SAS would have given us stats for all of the variables */ /* VAR specifies which variables we want to see statistics for */ /* let's take a look at correlation and covariance between population and per capita government spending */ PROC CORR COV; var pop bigpop gvtcap; /* let's see if the mean government spending per capita is different in big states than in small states */ /* first, we need to sort by bigpop*/ PROC SORT; by bigpop; PROC MEANS; var gvtcap; by bigpop; /*Including 'by' in the means procedure gives means for big and small states */ /* we have learned how to test this difference */ /* can we see a relationship between population and spending? */ /* finally, let's estimate regressions */ PROC REG; model gvtcap = pop; model gvtcap = bigpop; run; PAGE 1 PAGE 2 Introduction to SAS for 90-906, Rob Greenbaum, January 22, 1999 HIQc}  $%&'(67QRSTUbc}~νγΩΟΕ΋jqUmHjUmHjwUmHjUmHj}UmHjUmH jUmHmH 56;j56;U5CJOJQJCJ5CJ$5CJ(CJ0 CJ0OJQJCJ(6$%IJKLMNOPQbc~$$$%IJKLMNOPQbc~)V%oCkM( N z  9 c  I s ' V  F y { h N)V%oCkM( N z  !  !  ! $ !"#$OPjklmn  #$>?@ABKLfghijjYUmHjUmHj_UmHjUmHjeUmHjUmHjkUmHjUmHmH jUmH>-.HIJKLlm  " # $ & ' - . H I J L M Y Z t u v x y j UmHjA UmHj UmHjG UmHjUmHjMUmHjUmHjSUmHmH jUmHjUmH=       3 4 5 7 8 B C ] ^ _ a b f g j#UmHjUmHj)UmHj UmHj/ UmHj UmHj5 UmHj UmHj; UmHmH jUmH=  9 c  I s ' V  F y { hi !  !  !       ( ) C D E G H R S m n o q r   ! " # % & 5 6 P Q R T U l m jUmHj UmHjUmHjUmHjUmHjUmHjUmHjUmHjUmHmH jUmH=      % & @ A B D E X Y s t u w x y z 8F![\&FG GZYl)*B*OJQJhnH >*6OJQJ jUj|UmHjUmHjUmHjUmHmH jUmHGhi-Snp8BK{vqlgb]  0  2  34 I-.Q  8     w  (  N      #-Snp8 & F ! & F8 h8BK$*067pX"$$v  $$$'$$v  $$$$*0679:?CGLMOU[]`bcekpruxy{|wrmhd_Z                                                 $  %  '(  *  ,  ."79:?CGLMOU[]`bcekpruxy{XXT"$$v  $$$$$./GY)*78M~ytoid_Z                                        ./GX`$$"$$v  $$$GY)*78M=  G ` q !!! & F & F & F  & F*[jLMNi j z { X"Y"c"d"""###$X$$$$,%3%%%%4&&''( )k)o)))***-+.+},,-"-....V////0000O222234:4H444636OJQJB*OJQJhnH  CJOJQJCJOJQJhnH 50J*jU jU6>*O=  G ` q !!!!!!Q""##$#%###W$X$$$+%,%%%%%%/&0&&&&&zrppppppppppppppppppppp  c       F  `  q       =  P     AB & ',!!!!Q""##$#%###W$X$$$+%,%%%%%%/&0&&& ! & F  & F !&&&''''(( ) )j)k)))****.+/+]+|,},----- !&''''(( ) )j)k)))****.+/+]+|,},------..U/V/d/r/s////////00000N2O2S2V2X2_2`2c2f2i2s2t2w2z2|222222222222222222233333444444455556364666d--..U/V/d/r/s////////00000N2O2S2V2X2_2$ !_2`2c2f2i2s2t2w2z2|2222222222222222222PXLt$$$ *x233333444444455556364666666]7^777 !3646?666^77589888Q:g:;";;;; <<4<<<<<<<e=j== >K>T>l>r>@@AABB'C-C;CCEEEEGMGGGGGHHH-IXIYIZI^IIIIIII0JJKKK LLBLsLLMMMMKNONCJCJOJQJhnH hnH  6OJQJOJQJ>* CJOJQJ6U6666]7^777 8!81888888999P:Q:::;;";#;;;;; < <<<4<5<X<<<<<<<d=e=j=|===== > >>>>@@AA8B9BBBBBBBBB:C;CRCfCzCCCCCADBDDDDEEEEEEFFFGG/GIGNGOGUGGd7 8!81888888999P:Q:::;;";#;;;;; < <<<4< !4<5<X<<<<<<<d=e=j=|===== > >>>>@@AA8B9BBBBBBBBBBB:C;CRCfCzCCCCCADBDDDDEEEEEEFF !FFGG/GIGNGOGUGGGGGGGHHHHHHH,I-IDITIYIZII !GGGGGGHHHHHHH,I-IDITIYIZIIIIIIIIIIJ+J0J1JJJJJJJJKK L L!L8L=L>LrLsLLLLLLLLMMMMMKNLNNNNaObO{OOOOOOONQOQ`QQQRRSSTTTUUU`WaWsWW*X^XXXLrL !rLsLLLLLLLLMMMMMKNLNNNNaObO{OOOOOOONQ !ON O_OPQZZZZk[[[[[[(\*\\\\\\\\\\\&](]5]^]`]j]m]]]]]]]]^^&^)^;^?^^^___M_N_&`8f:f;fAfBfCfDfEfGfHfNfOfPfQfRfffŽŽµ6CJOJQJ0JmH0J j0JUCJ0J*j6U jUhnH  6hnH OJQJhnH OJQJhnH 5>*6GNQOQ`QQQRRSSTTTUUU`WaWsWW*X^XXXhttp://www.heinz.cmu.edu/heinz/computing/studentsoftware.htmlyK |http://www.heinz.cmu.edu/heinz/computing/studentsoftware.html, [(@(NormalCJmH H@H Heading 1$<@&5CJKHOJQJ8@8 Heading 2$@& 5OJQJ2@2 Heading 3$@&5>*0@0 Heading 4$@&>*0@0 Heading 5$@&68@8 Heading 6 $$@&5CJ8@8 Heading 7 $$@&5CJ$4@4 Heading 8 $$@&CJ<A@<Default Paragraph Font*>@*Title$5CJ,@,Header  !, @,Footer  !&)@!& Page Number8Y@28 Document Map-D OJQJ8C@B8Body Text Indent<R@R<Body Text Indent 2h0@0TOC 1 xx 5;CJ*@*TOC 2:CJ*@*TOC 36CJ&@&TOC 4CJ&@&TOC 5CJ&@&TOC 6CJ&@&TOC 7CJ&@&TOC 8CJ&@&TOC 9CJ. @.Index 1 CJ. @.Index 2 CJ. @.Index 3 !CJ. @.Index 4 "CJ.@.Index 5 #CJ.@.Index 6 $CJ.@.Index 7 %CJ.@.Index 8 &CJ.@.Index 9 'pCJ@!@@ Index Heading (xx 56CJ4Z@4 Plain Text) CJOJQJ(U@( Hyperlink>*B*8V@8FollowedHyperlink>*B* b ZZZ] *36ONf:>?@BCLT] 7G!&-_2274<BBFIrLNQZ[]bef;=AEFHJKNOQRSVWXY[\^`abceh&6GYdf<DGIMPUZ_d %'6RTb~!#Okm #?AKgi-IKl#&-ILYux47B^af(DGRnq"%5QTl  % A D X t w y MZ[M[b T%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%tXX ]!T!T1 _Hlt441057062 _Hlt441057059 _Toc441057014 _Toc441057015 _Toc441057016 _Toc441057017 _Toc441057018 _Toc441057019 _Toc441057020 _Toc441057021 _Hlt441031956 _Toc441057022 _Toc441057023 _Toc441057024 _Toc441057025 _Toc441057026 _Toc441057027 _Toc441057028 _Toc441057029 _Toc441057030 _Toc441057031 _Toc441057032 _Toc441057033 _Toc441057034 _Toc441057035 _Toc441057036 _Toc441057037 _Toc441057038 _Toc441057039 _Toc441057040 _Toc441057041 _Toc441057042 _Toc441057043 _Toc441057044 _Toc441057045 _Toc441057046 _Toc441057047 _Toc441057048 _Toc441057049 _Toc441057050 _Toc441057051 _Toc441057052 _Toc441057053 _Toc441057054 _Toc441057055 _Toc441057056 _Hlt441048870 _Toc441057057 _Toc441057058| p C8e")+,/12!4568:9>>@BOCDEFHJKKOMMNNQaSfUV[WW@Z'[Q[\b  !"#$%&'()*+,-./0  JL<f")+,/12045W8:A>>@BTCDEFHJKK_MMNOQrSsUViWWMZ([Z[%\bcklr!$'*-03GKOReh{~#'EIa i !,!3!!!!!!!!!""F"N"v"|"$%_%g%%%&&&&''3'9'''P*V*x++++,,O.Q.`.b.t.v.....//0000001 11133 5599K:S:B>F>>>>>>>;???@?D?E?P?o?x?`@i@@@@@@@WA`AAAAAAAAAAABBBBCC"C-C1C4C;CACUCYCCCCCCCCCDDDDDDDDDDDD-E1E2E6E7EBEEEHEEEEEEEEEEEEEEEEEEEEFFFF%FFFFFFF HHHHsHwH}HHHHHHIIIIIIbKfKKKKKLLOO4P7PEPOP QQWWWWWWXXXX/Y2YYY[[[[[[\\x]z]~]]]]]]]]^^2^;^H^N^^^^^^^^^^_@_E_"`%`*`0`1`7`````````a abb$b*b-b3b:bvbbbb  F L &-HM',cf X ` ,!3!!!!!##$$%%&&&&&&**V+Z+f+i+s+w+++,,,,////00000011112222^3`34444R5\5Q6U67777 8 8888888999999<<B>X>>>>>'?-?;???T?Z?h?n?z?}?AAAA1C4CICLCCCCCDDDD-E1EEEHETEWEEEEEEEFF+F.FFFFFFG#H%H8H;HHHHHIIbKfK}KKKKKKKKLLNNOO3P8PPPBWGWXXXXXXXX&Y2Y^YjYYYYYY Z&Z6Z[[\\\\/]3]~]]]]]]^^C^G^^^_ _____"`%`=`B```````````aaaacaaaaab bb#b5b8b:bbbThe Heinz School8U:\CLASS\90906\SAS\PC SAS for PhD econometrics class.docThe Heinz School8U:\CLASS\90906\SAS\PC SAS for PhD econometrics class.docThe Heinz SchoolCC:\Users\AutoRecovery save of PC SAS for PhD econometrics class.asdThe Heinz SchoolCC:\Users\AutoRecovery save of PC SAS for PhD econometrics class.asdThe Heinz SchoolCC:\Users\AutoRecovery save of PC SAS for PhD econometrics class.asdThe Heinz School8U:\CLASS\90906\SAS\PC SAS for PhD econometrics class.docThe Heinz SchoolCC:\Users\AutoRecovery save of PC SAS for PhD econometrics class.asdThe Heinz School8U:\CLASS\90906\SAS\PC SAS for PhD econometrics class.docThe Heinz School8U:\CLASS\90906\SAS\PC SAS for PhD econometrics class.docThe Heinz School8U:\CLASS\90906\SAS\PC SAS for PhD econometrics class.docxHF NJ e^ C % '' v+p+ &F0 V; >C +Z4a _CBb "uh  >v  hhOJQJo(hh.hh)hh. hhOJQJo( hhOJQJo(hh. hhOJQJo(hh)hho() hhOJQJo( hhOJQJo(hho() hhOJQJo(''%xHF_CBb>C"uh >v+Z4a&F0v+p+CNJe^V;@[nbP@GTimes New Roman5Symbol3& ArialC5  SAS MonospaceM5  SAS Monospace Bold9Garamond5& Tahoma?5 Courier New"qhcz1{|1w|1 5P)$20dvcPC SASThe Heinz SchoolThe Heinz SchoolOh+'0  0 < H T`hpxPC SASC SThe Heinz Schooldhe NormalnThe Heinz Schoold11 Microsoft Word 8.0@j@C@@B:@@Q@5P՜.+,D՜.+,4 hp|  CMU)vcj PC SAS Title(RZ _PID_GUID _PID_HLINKSAN{A3784993-3AA7-11D2-AF2F-00A0C995E11F}AL GU>http://www.heinz.cmu.edu/heinz/computing/studentsoftware.htmlUO2http://www.andrew.cmu.edu/course/90-906/index.htm  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefhijklmnopqrsuvwxyz{|}~Root Entrycs]+H` FگKV@@THDataBOLT'()*,-./ g1TabletF3WordDocument!SummaryInformation(DocumentSummaryInformationt8` CompObj jObjectPoolSymbol@@  FMicrosoft Word Document MSWordDocWord.Document.89q