RATS 810 Introduction
RATS 810 Introduction
VERSION 8
INTRODUCTION
RATS
VERSION 8
INTRODUCTION
Estima
1560 Sherman Ave., Suite 510 Evanston, IL 60201 Orders, Sales Inquiries General Information Technical Support Fax: 8008228038 8478648772 8478641910 8478646221 Web: General E-mail: Sales: Technical Support: www.estima.com [email protected] [email protected] [email protected]
2010 by Estima. All Rights Reserved. No part of this book may be reproduced or transmitted in any form or by any means without the prior written permission of the copyright holder. Estima 1560 Sherman Ave., Suite 510 Evanston, IL 60201 Published in the United States of America First Printing: November, 2010 PDF version revised September, 2011 for Version 8.1
Preface
Welcome to Version 8 of rats. This is the most extensive revision of the program and documentation in many years. When we set out to craft the new set of manuals, we started with a mission statement: that the job of software like rats is to help you process numerical information and get it into your final document as accurately as possible. With that in mind, we created this new book, intended to bring a user quickly up to speed, whether that person is an experienced user of rats or other statistical software, or an undergraduate new to statistical programming. Version 8 offers new and simpler ways to get information from rats into a final document, and that is emphasized in each of the short examples included here. In 2002, we began a project of implementing (all) the worked examples from a wide range of textbooks. We now number more than twenty texts in the collection, including everything from introductory econometrics and time series books to graduate level books covering almost the full range of modern econometrics. In addition, we have an ever-growing number of replication files for important papers. Our experience with this (over 1000 running examples) has led to great improvements in the program. Were grateful to Kit Baum, Tim Bollerslev, Chris Brooks, Kai Carstensen, Richard Davis, Steve De Lurgio, Frank Diebold, Jordi Gali, John Geweke, Bill Greene, Jim Hamilton, Fumio Hayashi, Andrew Mountford, Timo Tersvirta, Ruey Tsay, Harald Uhlig, Marno Verbeek, Mark Watson and Jeff Wooldridge for their help in providing data and programs, and checking results. A special tip of the hat goes to Bruce Hansen and Mark Watson, who not only post their code and data, but are very quick to act on questions about them. The new Users Guide has been trimmed down a bit by moving its first three chapters into this Introduction, but the important topics of State-Space Models and Switching Models and Structural Breaks have been given much more extensive coverage and now have their own chapters. ARCH/GARCH has also been elevated to chapter status. Some material from our recent e-courses on Bayesian Methods, State-Space Models and Vector Autoregressions has been worked into the updated documentation, and we benefitted from comments from the participants in those. Thanks to all those in the rats community who have contributed ideas, suggestions and procedures for others to use. Special thanks go to Walter Enders for writing the popular e-book, The RATS Programming Language, Rob Trevor for setting up and maintaining the rats discussion list, and to Paco Goerlich and Norman Morin for the numerous procedures theyve written. Jonathan Dennis from the University of Copenhagen (the principal programmer of the cats program) had a major role in designing and refining the REPORT and DBOX instructions. Chris Sims, as always, had a special role in influencing the direction of our coverage of time series. Tom Maycock handled the laborious task of converting the existing documentation over to a new layout program. You will note the very extensive cross referencing that this made possible. He is also responsible for the bulk of the technical support questions and maintains our extensive web site. To say that hes invaluable would be an understatement.
I would also like to thank my wife Robin and daughters Jessica and Sarah for their patience; Robin in particular for putting up with the 4:00 a.m. manual writing sessions. Thomas A. Doan October 2010
Table of Contents
Preface. ........................................................................................................................ Intiii .
Int1
1.1. Using.the.RATS.Manuals........................................................................................Int2 1.2. Example.One:.The.RATS.Editor.............................................................................Int3 . 1.2.1. Learn.More:.Input.and.Output.Windows. ...................................................Int7 . 1.3. Example.Two:.Working.With.Data. .........................................................................Int8 . 1.3.1. Learn.More:.Series.Edit.Windows............................................................Int13 1.3.2. Learn.More:.Report.Windows. .................................................................Int15 . 1.4. Example.Three:.Transformations.and.Regressions..............................................Int17 1.4.1. Getting.the.Data.In...................................................................................Int18 1.4.2. Check.the.Data. .......................................................................................Int23 . 1.4.3. Data.Transformations.and.Creating.New.Series......................................Int25 1.4.4. Estimating.Regressions. ..........................................................................Int27 . 1.4.5. Learn.More:.Procedures. .........................................................................Int32 . 1.4.6. Learn.More:.Reading.Data.......................................................................Int34 1.4.7. Learn.More:.Annotated.Regression.Output..............................................Int35 1.4.8. Learn.More:.The.Series.Window..............................................................Int38 1.4.9. Learn.More:.Arithmetic.Expressions. .......................................................Int40 . 1.5. Example.Four:.Time.Series.Graphs.and.Analysis.................................................Int43 1.5.1. Filtering.and.Smoothing...........................................................................Int44 1.5.2. Graphing.the.Data....................................................................................Int46 1.5.3. Detrending,.Exponential.Smoothing,.Forecasting....................................Int48 1.5.4. Regression-based.Forecasting................................................................Int53 1.5.5. Learn.More:.Graph.Windows...................................................................Int56 1.5.6. Learn.More:.Long.and.Short.Program.Lines............................................Int57 1.5.7. Learn.More:.RATS.Program.Files.(RPF). ................................................Int58 . 1.5.8. Learn.More:.The.PRINT.Instruction. ........................................................Int59 . 1.5.9. Learn.More:.Data.Transformations. .........................................................Int60 . 1.5.10. Learn.More:.Forecasting........................................................................Int64 1.6. Example.Five:.Cross-Sectional.Data....................................................................Int66 1.6.1. Reading.the.Data.....................................................................................Int66 1.6.2. The.SMPL.Option:.Selecting.Sub-Samples. ............................................Int67 . 1.6.3. Testing.Regression.Restrictions...............................................................Int68 1.6.4. X-Y.Scatter.Plots:.The.SCATTER.Instruction...........................................Int71 1.6.5. Learn.More:.Comment.Lines.and.Comment.Blocks. ...............................Int73 . 1.6.6. Learn.More:.Linear.Regression.Instructions............................................Int75 1.6.7. Learn.More:.Error.Messages. ..................................................................Int79 . 1.6.8. Learn.More:.Entry.Ranges.......................................................................Int81 1.7. Example.Six:.Non-Linear.Estimation....................................................................Int84 . 1.7.1. Learn.More:.Non-Linear.Estimation.Instructions......................................Int89
Table of Contents
1.7.2. Learn.More:.Working.with.Matrices..........................................................Int90 1.8. The.RATS.Programming.Language......................................................................Int91 1.9. What.Next?...........................................................................................................Int93
Int95
2.1. The.Tools..............................................................................................................Int96 2.2. Data/Copy.Formats...............................................................................................Int98 2.3. Where.Are.Your.Data.Now?................................................................................Int101 2.4. The.Data.(Other.Formats).Wizard. .....................................................................Int103 . 2.5. Changing.Data.Frequencies...............................................................................Int104 2.6. Missing.Data.......................................................................................................Int107 2.7. RATS.Format......................................................................................................Int110 2.8. Spreadsheet.and.Delimited.Text.Formats...........................................................Int114 2.9. Text.Files.............................................................................................................Int120 2.10. File.Handling.Tips.and.Tricks............................................................................Int123
3. Graphics
Int125
3.1. Graphics..............................................................................................................Int126 3.2. Working.with.Graph.Windows.............................................................................Int127 3.3. Preparing.for.Publication.....................................................................................Int129 3.4. Graph.Styles.and.Style.Numbers........................................................................Int130 3.5. Labeling.Graphs..................................................................................................Int131 3.6. Keys.(Legends)...................................................................................................Int133 3.7. Overlay.(Two-Scale.or.Two-Style).Graphs..........................................................Int134 3.8. SPGRAPHMultiple.Graphs.on.a.Page............................................................Int136 3.9. GRTEXTAdding.Text.to.Graphs......................................................................Int139 . 3.10. Graphing.Functions...........................................................................................Int140 3.11. Highlighting.Entries...........................................................................................Int141 3.12. Fan.Charts........................................................................................................Int142 3.13. GCONTOURContour.Graphs........................................................................Int143 3.14. GBOXBox.Plots.............................................................................................Int144 3.15. Miscellaneous.Graph.Types..............................................................................Int145 3.16. Graph.Style.Sheets...........................................................................................Int149 3.17. Batch.Graph.Generation...................................................................................Int152 3.18. Choosing.Fonts.................................................................................................Int154
4. Resources
Int155
4.1. Installing.RATS. ..................................................................................................Int156 . 4.2. Additional.Documentation...................................................................................Int157 4.3. Examples.and.Procedures..................................................................................Int158 4.4. RATS.Forum.and.Online.Courses. .....................................................................Int159 . 4.5. Technical.Support. ..............................................................................................Int160 .
Int163 Int165
1.. Getting.StartedA.Tutorial T
he object of this chapter is to get you up and running as quickly as possible. The first thing to do is to get your program installed. If you havent done that, and need some help with it, see page Int156 in this book. Once youre ready to go, you should start working through this book. It introduces you to how rats gets information from you and supplies results to you. We provide several examples designed to give you a taste of what you can do with the program. To allow you to find your own pace, we have kept the examples fairly short; just long enough for each to introduce a few key concepts. The main discussion in each is intended to be followed in sequencewhats discussed in one is assumed in the next. However, each of the examples is followed by one or more Learn More subsections. These you can skip on first reading, particularly if youre never used a statistical package like rats before. These Learn More segments do include information that you will probably need eventually, so you probably will want to come back to them eventually. If you are very proficient at working with statistical languages, then you might want to go through these the first time, since many of the ideas are shared with other such programs.
Using the RATS Manuals The RATS Editor Working with Data Transformations and Regressions Time Series Graphs and Analysis Cross-Sectional Data Non-Linear Estimation Computations, Loops, and Procedures
We use the following font and style conventions in the rats manuals: Examples that can be typed in and executed as written are presented in bold Courier font. For example: linreg(define=req) rate 1960:1 1995:8 resids_rate # constant ip grm2 grppi{1} Instructions are the fundamental building blocks of the rats languagethey instruct rats to perform an action. In the example above, the instruction LINREG performs a linear regression. In body text, instruction names are presented in uppercase bold Courier font. For example BOXJENK, and DATA. Parameters are used to provide additional information to an instruction, such as the series names RATE and RESIDS_RATE in the example above. When describing instructions, the names of the available parameters are presented in lowercase italicized Courier. For example, start, end, series. Options are used to modify how instructions behave. In the sample above, DEFINE defines an equation. In body text, options are presented in uppercase Courier font (such as DATES and PRINT). Bold is used in option lists in the Reference Manual. Variables (series, matrices, scalars, and so on) are generally presented in uppercase Courier, such as RATE and IP. In some cases, mixed-case names are used for readability.
Parameters
Options
Variable Names
Int2
Introduction to RATS
First, start the program in interactive mode. For Windows, open the WinRATS 8 folder on the Start menu or desktop and click on the winrats icon. For macrats, click on the macrats program icon. For unix, click on the ratsx file, or type ratsx at the command prompt. This loads the rats interactive interface, which we call the rats Editor. You will see the rats menu bar, the toolbar, and an empty worksheet window called NONAME00.TXT. (If you dont see this, select New...Editor/Text Window from the File menu or use the <Ctrl>+N keystroke). This environment allows you to type in and execute commands; use menu-driven wizards to perform tasks; save or print program files and output; export information to various types of files; display, save, and print graphs; and more. If you look at the File and Edit menus, youll see familiar operations, like Save and Print on File, and Cut, Copy and Paste on Edit; and they all work as you would expect (short-cut keys as well). What you wont find are operations for Bold, Italics, Centering, etc. The rats editor isnt intended to be used to produce a final document; its job is to help you process numerical information and get it into your final document as accurately as possible. While you do have some choice of font, its from the very limited number of monospaced fonts (Courier is by far the most common of these). In a monospaced or typewriter font, all characters are the same width, making it easy to line up different types of output. rats also produces output which is in specially formatted tables, but those are separate from the main editor window.
rats allows you to have multiple windows open at one time, but you can only execute
instructions from the window that is designated as the Input Window. This window will have {i} appended to the window title, both on the windows title bar, and on the window list in the Window menu. Similarly, any output generated goes to the window designated as the Output Window, which will have {o} appended the name. This can be a separate window, or it can be the same as the Input Window. When you first start the program, the NONAME00.TXT window should be set as both input and output, shown by {io} in the window title bar.
Introduction to RATS
Int3
We put large pointers ( ) in the margin next to all the instructions (or groups of instructions) that we want you to enter and execute. We will also sometimes show you other sample uses of these instructions. Some of these will work with the sample data sets, but others will not. For now, we recommend that you only type in the instructions marked with a pointer. The instructions we discuss in this section are provided on a file called ExampleOne. rpf (rpf stands for rats program file). If you encounter any difficulties, you can open that file (using FileOpen) to see exactly how the instructions should look.
To get started, type the line below into the blank input window and then hit the <Enter> key (which tells rats to execute the line you just typed):
rats should display the text Hello, World on the next line (or to your output win-
dow if using separate input and output windows). As you can see, DISPLAY does just what its name impliesit displays information. You can also use it to display the results of computations. For example, a popular econometrics textbook includes the following expression to compute by hand the least squares estimator for the intercept in a regression (Hill et al, 2008, page 22): (1) b1 = y b2 x = 283.5737 (10.2096)(19.6408) = 83.4160
display 283.5737-10.2096*19.6048
You can do this computation easily using DISPLAY. Try typing in the line below (with no spaces inside the expression), and hitting <Enter> to execute it:
rats will do the computation and display the result: 83.41653
Note that the * symbol is the multiplication operator. The addition and subtraction operators are the usual + and - . Other operators include / for division and ^ for
Int4
Introduction to RATS
The textbook actually reports a slightly different result (83.4160). Thats because the numbers presented in the book for equation (1) (and used as input in our computation) were themselves rounded versions of the numbers actually used to produce the result shown in the book. rats (and most other statistical software) does its calculations in double precision, which gives roughly fifteen significant digits. Now no practical data set records numbers to anything like that level of accuracy, so if the data going in are only good for four digits, its pointless to report results at fifteen digits. However, whenever possible you should keep all the intermediate calculations in full precision: in short, dont round intermediate values. The software is already rounding at fifteen, which sometimes isnt even enough for very poorly-behaved data. DISPLAY picks the format itself, and usually errs on the side of too many digits. If you want this number rounded to four decimal places, you can use picture codes, which provide a template for numerical output. Insert the picture code before the number or expression. For example, edit your original instruction by inserting ##.#### (spaces on either side) before the expression: Hit <Enter> to re-execute this line. The cursor can be anywhere in the lineit doesnt have to be at the end of the line (youre executing the line, not inserting a line break). As we said before, the job of the rats editor is to help you get information into your final document as accurately as possible. rats comes with over 1000 examples out of major textbooks. The most common type of error in those textbooks comes from taking a number computed by the software and manually re-typing it (incorrectly) into the manuscript. If you want a value, let rats do the rounding, and use copy and paste to get it into your document. Select the text you need, and do a copy operation. The text copy is so important, there are four ways to do it: the keyboard shortcut (<Ctrl>+C), the copy toolbar icon , the standard menu operation EditCopy and Copy on the contextual (right click) menu. DISPLAY can also show more than one calculation, and more than one field (which is why we wanted you to be careful about spaces). For instance, you can edit your line to add a description and hit <Enter> to execute:
Introduction to RATS
Int5
This does the calculation and saves the result into a new variable called INTERCEPT, and then displays that. Your screen should now look like this:
Its important to note a major difference between rats and math packages like Gauss and matlab. With either of those, the first display would be done with 283.5737-10.2096*19.6048; (display is implicit since there is no other place for result), and the COMPUTE with intercept=283.5737-10.2096*19.6048; With math packages, the basic unit of input is an expression. With rats, its an instruction. DISPLAY and COMPUTE are two examplesthere are roughly 200 others, many of which do very sophisticated calculations requiring (internally) thousands of separate sub-calculations. Many of those have point-and-click wizards on the Data/ Graphics, Statistics and Time Series menus to help you apply them to your data.
Int6
Introduction to RATS
Getting StartedA Tutorial 1.2.1 Learn More: Input and Output Windows
The Run/Stop Buttons
While rats is executing instructions, the Run icon changes to the Stop icon . Run returns as soon as the task is complete and rats is ready to accept more instructions. In many cases, you wont even notice this because it finishes so quickly. However, if you are doing something which does take a long time, and you decide that you dont really want it to continue, you can click on Stop to interrupt the execution.
Hitting the <Enter> key in the Input Window normally executes the current line. If you need to insert a line break without executing the line (perhaps you want to input several lines before executing them), do the following: On Windows and unix/linux systems, you can edit lines without executing them by putting rats into local mode, either by clicking on the (Ready/ Local) button or by hitting <Ctrl>+L. Clicking on the Ready/Local button again (or hitting <Ctrl>+L again) puts rats back into ready mode. Ready means that rats is ready to accept instructions for execution. On a Macintosh, you can just use the <Return> key, rather than the <Enter> key, to insert a line break without executing a command.
You can switch the input or output functions to a particular editor window using the menu items WindowUse for Input and WindowUse for Output or the corresponding and toolbar icons. We tend to use the editor windows in one of two ways: 1. For quick work, we simply start up rats and work with the NONAME window the way we just did in the example. If you arent really interested in developing a set of rats instructions to execute later and just want some quick answers, this is the simplest setup. 2. To develop a new (or existing) program, we designate one window as the Input Window, and a second window as the Output Window. With input and output in separate windows, it is much easier to keep a copy of the instructions that we decide we like. The and toolbar icons provide easy ways to get this splitwindow setupthey automatically open a second window, designate it as the output window, and tile the two windows horizontally or vertically, respectively. If you decide that you really like the second setup, you can set rats to default to that on the Editor tab of the Preferences (Section 1.3 of the Additional Topics pdf)set the Open New Output Window at Start box.
Introduction to RATS
Int7
To work with time series data, we first want to tell rats the frequency and starting date for our data set. One way to do that is to use the Calendar Wizard. Select the Calendar operation from the Data/Graphics menu. rats will display the Calendar Wizard dialog box shown below, which allows you to set frequency and date information. The most common frequencies are in the Standard Frequencies group. In this case, we want quarterly data, beginning in the first quarter of 1998, so click on the Quarterly button and change the Year field to read 1998, like this:
Int8
Introduction to RATS
If at all possible, you do not want to type in data. Most of your work will be done using data read in from files or database connections, but for now, well have you type in some numbers to introduce you to tools for creating, viewing, and editing data. First, open the Data/Graphics menu and click on the Create Series (Data Editor) operation. rats will display an empty Series Edit Window. As this is a new series, the first cell shows na, for Not Available. We use the na abbreviation both in rats output and in the manuals to signify a missing value. Here are the numbers to enter (data for 1998 in row one, for 1999 in row two, etc.): 98.2 100.8 102.2 100.8 99.0 101.6 102.7 101.5 100.5 103.0 103.5 101.5 Start by typing the first number (98.2) into the cell at the top. Then, hit the right arrow key. This saves the value you typed in and moves to the next cell. Type in the second number (100.8), hit the right arrow key again, and so on. Note that the right arrow still works when you get to the end of a line. Because this is a time series, the lines are just to help organize your view of the datawhat we really have is a continuous sequence of values. When you get to the final value, just hit <Enter> (rather than the right arrow) to save the value. If you only want to type in a few of the values, thats fineeverything we discuss below will still work, although the results will look different. If you are reading this as a pdf, you can also copy and paste the data lines above into the editor. If you need to edit a value, click on (or navigate to) the cell you want to change, edit the value, and hit <Enter>.
Introduction to RATS
Int9
The operations on the View menu provide ways to quickly examine data series and other variables. These operations do not generate rats instructions the way the wizards do. However, they are very handy for verifying your data and doing some quick glance analysis before beginning work in earnest. The second most common error that weve found in replicating examples (and the one that is probably most significant in practice) is where a data set is simply wrongfor instance, the data are for a different set of years than the author thought. And these are for papers which have been circulated, presented in seminars, peer-reviewed and published. Do yourself a favor: make sure your data are what you think they are before doing any major work with them. The View menu can help with this. Try the ViewTime Series Graph operation (or click on toolbar item). Youll see a simple graph of the data. This is not intended to be a production graph; instead, its a quick line graph of the data that can help you spot any obvious errors like missing a decimal point. If you see that you have a value thats clearly wrong, you should be able to go back to the series editor window and use the Max or Min toolbar icons ( and ), which move to the maximum and minimum values in the series, respectively, to correct the problem. While there are several other quick-view operations (the ones at the bottom of the View menu), the other one that is very handy is Statistics. If you choose this (or the icon), you will see a new type of window called a report that looks like this:
Int10
Introduction to RATS
Report Windows
A Report Window is like a read-only spreadsheet. The descriptive text and values are arranged in columns, with longer strings covering (spanning) several columns. Output from rats will either be in the form of Report Windows or text in the Output Window, and sometimes both. You can copy information out of a Report Window and paste it into a spreadsheet or word processing program. See page Int15 for more.
Test Results
The report for Statistics includes four different tests: the t-statistic, skewness, kurtosis, and Jarque-Bera. For each of these, the left column gives the test statistic and the right gives the marginal significance level (also known as the p-value). This is the probability that a random variable with the appropriate distribution will exceed the computed value (in absolute value for Normal and t). Wherever possible, rats will compute the significance level for tests, which allows you to avoid using lookup tables for critical values. You reject the null if the marginal significance level is smaller than the significance level you want. For instance, a marginal significance level of .03 would lead you to reject the null hypothesis if you are testing at the .05 level (.03<.05), but not if you are testing at the .01 level. Here, the only of the four that we would reject under standard procedures is mean=0, which has a test statistic so far out in the tails that the p-value shows as just being 0. (If you paste it into a spreadsheet, youll find that its actually roughly 10-21.) This would be a good time to warn you about over-interpreting test results. rats will often compute tests and summary statistics which might be useful. Its up to you to decide whether they actually make any sense in particular situation. The three test statistics here that pass are all tests for the Normal distribution (the excess in excess kurtosis is the difference between the sample value and what would be expected if the data were from a Normal population). Should we therefore conclude that the data are from a Normal population? Absolutely not. Those are all test statistics computed under the assumption that the observations are independent. This is our raw time series data; we certainly dont expect it to be independent, and from the
Introduction to RATS
Int11
You may have noticed that we havent yet talked about saving the data. If you do File-Save, you will be prompted for a series name (and comments), or if you do FileClose, you will first be asked if you want to save the changes; if you answer yes, you will be asked the same question about the name and comments:
For our purposes, enter QUARTER as the name as shown above. Leave the comments blank. If you do the menu operation ViewSeries Window, you will now see a Series Window listing all the series in memory. Well talk more about this when we have more data. For now, this should just have one line for the series QUARTER. At this point, we have saved the data out of the Series Edit Window into a rats series. If you need a permanent copy, you need to take one more step: exporting the data to a file, which can be done with File-Export or File-Save As.
Series Names
Series (and other variable) names in rats can be from one to sixteen characters long. They must begin with a letter (or %, though you should generally avoid those, as theyre used for names reserved by rats), and can consist of letters, numbers, and the _ , $ and % symbols. Variable names arent case-sensitive. Generally, youll want to choose names which are just long enough so you will know what each represents. In most cases, your data files will include names for the series stored on the file, and rats will use those names when it reads in the data. Thus, the series names on the file should conform to the restrictions described above.
Int12
Introduction to RATS
The main value of changing the Numbers Per Row is to match the view of the data to your original source if you need to double-check numbers that you have had to type in. The most common change in the layout is to adjust the decimal digits. By default, the data editor uses the shortest representation that can display all the data. That works well with original source data with a limited number of digits. However, with data that have been through some transformations (such as logs or averages), you might get ten (or even more) decimals. Change Layout lets you adjust that. Click on OK to close the Change Layout dialog box and apply your changes.
You can copy data out of a Series Edit Window by selecting a (consecutive) range of values and using the keystrokes <Ctrl>+C, the menu operation EditCopy, the toolbar icon or the Copy contextual menu item. When you paste into a target application, the values will have the same row and column arrangement as you have in the Series Edit Window in rats, that is, if you have 40 rows of 4 numbers, you will also get a 404 table in the target. If you paste as text, the data will be pasted as it appears in the window as well, with the number of digits shown. You can use Change Layout to adjust either the arrangement of the data or the number of digits. You can paste into a Series Edit Window by positioning the selection to the point where you want to insert values, then doing <Ctrl>+V, the menu operation Edit Paste, or the toolbar icon . The paste operation will take the values in order, even if the layout is different from what you have in the Series Edit Window. For instance, if you select and copy a column of data from a web site and paste it into the time series editor, the cells will be filled, in order, starting from the active cell, going first across and then down to the start of the next row, across that, etc. Note that you need the source data to be values from a single series in ascending time sequence.
Introduction to RATS
Int13
(Remove) (NA) (Max. value) (Min. value) (Find) (Statistics) (Graph) (Histogram)
(Graph Xform) displays a time series graph with several power transformations of the series.
Int14
Introduction to RATS
If you set the Decimal Width box, the values will be formatted to that number of digits right of the decimal, with however many are needed to the left of it. If you set the Number Width box, a common format will be chosen that displays all the values within that number of characters. (If you set both, the decimal width choice determines the representation).
If you select information out of this and copy it (which you can do many ways: the keystroke <Ctrl>+C, EditCopy menu, Copy toolbar icon , and Copy contextual menu), and then paste into a word processor, you will get the information that is shown on the screen, with the number of digits shown. If your target application is a spreadsheet, you may need to choose Paste Special in order to control what comes through. (rats copies report information in many different formats). The dif, csv and xml spreadsheet formats will paste numbers at full (up to fifteen digit) precision. On the other hand, if you paste as (Unformatted) Text, you will get only the number of digits shown on the screen in rats, so if you adjust this using Change Layout, you will get what you see. Note that rats only copies content, not column widths and cell formats, so you can reformat the cells in your spreadsheet to show them the way that you want.
Introduction to RATS
Int15
Exporting to a File
Select the cells that you want to save and use FileExport (or FileSave As, or the toolbar icon or the Export contextual menu). You have the choice of quite a few formats, most of which are also among the formats that rats copies when you do a Copy operation. The format here that is most likely to be useful is tex, since you can use an \include directive in your TeX document. By using that, rather than copy and paste, you can quickly replace the table if you need to re-generated the report.
Int16
Introduction to RATS
Our primary goal will be to fit the following regression models to these data: (2)
Ratet = + 1 IPt + 2 ( M1t M1t3 ) + 3 PSUM t + ut
PPI t PPI t1 PPI t2 + + PPI t PPI t1 PPI t2
where GRM2t =
( M2t M2t1 )
M2t1
, GRPPIt = 100
(PPIt PPIt1 )
PPI t1
Equation (2) is actually from Example 4.2 in the 3rd (1991) edition of Pindyck and Rubinfeld, while equation (3) is from Example 4.2 as it appears in the 4th (1998) edition. Our data were taken from Haver Analytics usecon database (available separately through Estima). The Haver series names for these are FTB3, IP, FM1, FM2, and PA, respectively. Weve converted them to the names shown above for our example. The series begin in January, 1959, and run through September, 1999. Some of the values are slightly different than the older data used in Pindyck and Rubinfeld.
Introduction to RATS
Int17
As in our previous example, we want to start by defining a date scheme and then reading data into memory. In this case, though, well be reading the data from a file, which is much more common. We could just type in the necessary instructions, but another option is to use the Data Wizard to do this. The Data Wizard approach is usually preferable for most file formats. However, for certain file formats, or in cases where you need to pull in data from multiple sources, you may need to type the instructions directly.
If you still have rats running after completing the previous example, you will probably want to clear the memory of the settings and data entered earlier. You can do that by opening the File menu and selecting Clear Memory, or clicking on the Clear Memory toolbar icon: . You can also close the Input Window, then open a new one using the menu operation FileNew-Editor/Text Window. Any of these will clear any data series and other variables, as well as any settings defined by instructions like CALENDAR, from memory. This allows you to start fresh, as if you had never executed any instructions. Note that Clear Memory does not delete any text or close any windows.
rats actually offers two Data Wizardsone for use with rats format data files, and one for all other file types. Well discuss the wizard for rats format data files in
Section 1.7. For now, open the Data/Graphics menu and select the operation Data (Other Formats).
We will be working with an Excel xls format file called ExampleThree.xls, so select Excel 3.0-2003 Files (*.XLS) from the drop-down list of file types. The dialog box should now show files with that extension in the current directory.
Int18
Introduction to RATS
Data Organization The Data Organization section tells rats how the data are arranged on the file. Here, the data series run down the page in columns, so we want to use the Down Page setting (which is, by far, the most common and should be selected by default).
Introduction to RATS
Int19
For now, accept the default settings and click on OK. rats will generate and execute the appropriate CALENDAR, OPEN DATA, and DATA commands. They should look something like this: OPEN DATA "C:\Users\Estima\Documents\WinRATS 8.0\ExampleThree.xls" CALENDAR(M) 1959:1 DATA(FORMAT=XLS,ORG=COLUMNS) 1959:01 1999:09 RATE IP M2 M1 PPI Lets take a closer look at each of these.
Int20
Introduction to RATS
To refer to a date in rats, use the following formats: for annual, monthly, and quarterly data (or any other frequency specified in terms of periods per year). In this example, we have set a monthly CALENDAR, so 1996:2 translates to the 2nd month (February) of 1996. for weekly, daily, etc.
year:month:day
With annual data, period is always one, so any reference to a date in annual data must end with :1. The :1 after the year is very important, because without it, rats will assume you are specifying an entry number, not a date.
Introduction to RATS
Int21
Int22
Introduction to RATS
This provides a quick check on the number of observations in each series, as well as the frequency and data range. Now, select (highlight) all of the series in the window and then select Statistics from the View menu, or click on the Basics Statistics toolbar icon: You should see the following table of summary statistics for each series. The most important items to check are the number of observations (Obs) and the minimum and maximum values. Be sure they are reasonable given what you know about the data.
You can explore the other View menu (and toolbar button) operations introduced on page Int10 with combinations of one or more seriesjust highlight the series you want to include before selecting an operation. Another way to generate the table of statistics is to use the instruction TABLE. Type in the following and hit <Enter>: The results should appear in the output window, and match those shown in the Statistics window above.
table
Introduction to RATS
Int23
For a more detailed set of sample statistics, you can use STATISTICS instruction with a single series:
The corresponding wizard is the Univariate Statistics operation on the Statistics menu. If you select that operation, rats will display the following dialog box:
The first step is to select the series you want to use from the Series drop-down listhere, weve selected the series RATE. Next, click on one or more of the Basic Statistics, Extreme Values, or Autocorrelations check boxes. Here, weve selected Basic Statistics, which generates a STATISTICS command as shown above.
Extreme Values generates an EXTREMUM instruction, which reports the maximum and minimum values of the series. Autocorrelations generates a CORRELATE instruction, which computes autocorrelations (and partial autocorrelations if you provide a series for the Partial Corrs field). You can check any combination of these three boxes. The other fields allow you to select the range used for the computations and to select various options for the autocorrelation computations.
Int24
Introduction to RATS
Getting StartedA Tutorial 1.4.3 Data Transformations and Creating New Series
The SET Instruction
In most of your work with rats, you will need to do at least a few data transformations, and you will often need to create new series from scratch. You can do that using the SET instruction, or one of several wizards. For our example, we need to define quite a few new series. Well start by generating a couple of differenced series using SET. Execute the following instructions:
Be sure to put at least one blank space before the = sign. Lets examine the first transformation. The {1} notation (which we refer to as lag notation) tells rats to use the first lag of PPI in the transformation. This creates a new series called PPIDIFF, and sets it equal to the first difference of PPI: PPIDIFFt = (PPIt PPIt1) for each entry t in the default entry range. Note that PPIDIFF cannot be defined for 1959:1, because we do not have data for 1958:12, which would be the one period lag from 1959:1. rats recognizes this, and defines entry 1959:1 of PPIDIFF to be a missing value. Similarly, M1DIFF is defined as the three-lag difference of the series M1, so that M1DIFFt = M1t M1t3. M1DIFF will be defined starting in 1959:4. If you want to see the values of these series, click on or re-open the Series Window, highlight the series you want to view, and click on ViewData Table (or click on the icon). Next, well create some quarter to quarter growth rates, again using the {L} lag notation, and the / division operator: set grm2 = (m2 - m2{1})/m2{1} set grppi = (ppi - ppi{1})/ppi{1} We also need to create a three-period moving average term. First, we define PRATIO as the ratio of PPIDIFF (the first difference of PPI that we created above) to PPI. Then, we define PPISUM as the sum of the current and two lags of PRATIO. This could be done with a single SET, but is easier to read or modify this way:
Note that there are specialized instructions that can be used for some of these operations, such as DIFFERENCE and FILTER, but SET is the most important because it is the most flexible.
Introduction to RATS
Int25
and other data-related operations. The Transformations operation on the Data/ Graphics menu is probably the most versatile.
For example, another way to create PPIDIFF as the first difference of PPI is to select Transformations, type in the name PPIDIFF in the Create field, select Difference from the By/As field, and select PPI in the From drop-down list.
You can use the Create field to type in or select the name of the series you want to create or redefine. The By/As field controls the type of transformation. Select GeneralInput Formula to enter your own formula for the transformation, or use one of the pre-defined transformations, including difference, log and square root. The Trend/Seasonals/Dummies, Differencing, and Filter/Smooth operations offer similar series creation and transformation capabilities.
While you could save these transformed series to a data file and then rely on those saved versions in subsequent analysis, we strongly recommend that you continue to read in the original source data, and retain the instructions used to generate your transformations as part of your rats programs. This will help ensure that you can reproduce your results later on, and will avoid any confusion about exactly how the transformed series were derived. (Consider how many ways there are to compute a growth rate). Also, even someone who has never used rats should be able to tell exactly how the transformations were done simply by reading through the instructions.
Int26
Introduction to RATS
Weve done the necessary transformations, and are ready to estimate the models.
Well start by using the Regression wizard to estimate equation (4). Select Regressions from the Statistics menu. In the dialog box, use the Dependent Variable dropdown list button to select RATE. Next, we need to select the explanatory variables. You can type the regressors directly into the Explanatory Variables field (using blank spaces to separate variables), or you can click on the button, which opens the dialog box shown below. You can add variables from the Available Series list to the regression by: doubleclicking on a series name in the Available list; selecting one or more series and clicking the button; or using the button to add lagged variables to the regression list For this regression, add CONSTANT, IP, M1DIFF, and PPISUM to this list of regressors (CONSTANT is a special built-in series name, used to include a series of ones in a regression):
Introduction to RATS
Int27
Click OK to run the regression. The Wizard will generate the instruction below. This will actually be in upper case to help you recognize which instructions are generated using wizardswe edit them to lower case using the menu operation EditTo Lower Case to keep with the style of the manual. linreg rate # constant ip m1diff ppisum
LINREG is the standard instruction for estimating linear regressions. Here, it regresses the dependent variable RATE on the independent variables IP, M1DIFF, and PPISUM, and includes a constant term (intercept) in the regression. The line beginning with the # symbol is called a supplementary card. Supplementary cards are used with many instructions to supply additional information to an instructionusually lists of series or equations. Supplementary cards always begin with the # character. The results will be somewhat different from those shown in the text book, because the data are not identical due to revisions made since Pindyck and Rubinfeld extracted their data. LINREG estimates using ordinary least squares (ols). The output produced by this command is shown on the following page:
Int28
Introduction to RATS
For many uses, particularly when youre examining several possible models, the text output shown above is most convenient, since the output from all the models will be together in a single file. However, when youve finally settled on a specification, this isnt what you want, since the format for the numbers is fixed the way you see them in the editor. You could round them yourself and type them into a document, but were trying to show you how to avoid that. Instead, you can reload the same information into a Report Window. To do that, you can open the Report Windows submenu on the Window menu and select the Linear RegressionLeast Squares report. The Report Windows list shows (up to) the last fifteen reports generated, with the most recent ones at the top of the list. Once youve reloaded the regression into a Report Window, you can use the operations described on page Int11 for reformatting numbers and copying the information for use in word processors. For example, you can select sections of the report and use ViewChange Layout to change the number of decimal places for the selected numbers, and then use EditCopy or FileExport to get the results into another program or file. In addition to reports generated by rats instructions like LINREG, you can also create your own reports with the precise information that you want. Thats a more advanced, but very useful, feature covered in Section 1.6.7 in the Users Guide.
Introduction to RATS
Int29
Range Parameters
Our first model used M1DIFF, which isnt defined for the first three periods, since it uses lag 3 of M1. This second model replaces that with GRM2, which only drops one point; the range for this regression is determined by the one-period lag of GRPPI which isnt defined until 1959:3. When you execute the LINREG, rats will scan the data, determine that 1959:4 is the earliest possible starting point for the first regression and 1959:3 is the earliest possible date for the second. Its ability to handle such entry range issues automatically is a very powerful feature. With time series models with lags, you need to be somewhat careful about doing comparisons of estimates based upon different ranges, as we have with these two.
Int30
Introduction to RATS
While not common with time series data, its also possible to skip entries out of the middle of the data set. Well look at that in Section 1.6, which looks at cross section data.
Introduction to RATS
Int31
If you want to see what the procedure code looks like, youll find it on the file called REGACTFIT.SRC. It is a fairly simple procedure that provides a handy alternative to writing the necessary SET and GRAPH instructions yourself. You can find many more, including procedures written by other rats users from around the world, on our website. The website also includes a handy Procedure Browser for locating procedures of interest. You can find the browser in the Resources section of the website. Each procedure is usually stored on its own text file. Some of the procedures included with rats are described in the manual. For the others (including those available on our web site), see the comment lines at the top of the procedure file.
Int32
Introduction to RATS
To use a procedure or function stored on a separate file, you need to have rats execute the instructions that define the procedure. In most cases, rats can do this automatically, by searching for a file with a .SRC extension whose name matches the name of the procedure. Otherwise, you can compile procedures stored on a file using the SOURCE instruction: source name of file with PROCEDURE or FUNCTION If rats cant load a procedure:
Check to make sure you did a full installation, including all of the files supplied with rats. See page Int156 (installing rats) for details. Do FilePreferences and check the Procedure Directory setting on the Directories tab. In order for rats to find procedure files automatically, this should point to the directory containing your procedures (Additional Topics, Section 1.3). If you know where the procedure file is installed on your computer, include a SOURCE instruction (with a complete path and filename) prior to the procedure call to source in the procedure. You may be running an out-of-date version of rats that did not ship with the procedure in questionyou can do HelpAbout RATS to check which version you are using. See www.estima.com, email [email protected], or call 800-822-8038 for information on updating. If you are using a network license at a company or university, your institution may already have the most recent version available check with your system support staff. If all else fails, you should be able to download the procedure using the Procedure Browser on the Resources section of our website.
Introduction to RATS
Int33
If your path and filename includes any blank spaces, you need to enclose the entire string in single or double quotes, as in the code generated by the wizard. For example: open data "C:\My RATS Files\ExampleThree.xls" or open data 'C:\My RATS Files\ExampleThree.xls' For a path or filename that does not include any blank spaces, you dont need quote marks around the name, although there is no harm in including them.
You do not have to load all your data with a single instruction. You can use several OPEN DATA and DATA instructions to read from multiple data sources. While you could use the Data Wizard operation for each file, you would need to make sure to use the same Target Dates setting each time. Otherwise, the date mappings specified by the last CALENDAR setting will no longer match up properly with data read in previously. So, if you need to read from multiple files or sources, you may find it easier to just type in the instructions directly (or use the Wizard for the first file, and then type the instructions for the additional files directly).
Int34
Introduction to RATS
Well use the following notation: y y y e T K The vector of values for the dependent variable The sample mean of the dependent variable over the estimation range The deviations from the mean of the dependent variable The vector of residuals The number of observations The number of regressors
(a) The type of model and estimation technique used. (b) The dependent variable (c) If you are using a CALENDAR, rats will list the frequency of the data and the beginning and ending of the estimation range. If you have date without a date scheme, this will be skipped. (d) The number of usable entries in the estimation range: T (e) The degrees of freedom: T-K (f) The centered R2 statistic: 1 ee yy
Introduction to RATS
Int35
(i) The mean of the dependent variable: y (j) The standard error of the dependent variable (k) The Standard Error of Estimate: ee (T K ) yy (T 1)
(l) The Sum of Squared Residuals: e ' e (m) The regression F-statistic: y y ee ( K 1) ee T K) (
(n) The marginal significance level of the F, with K-1 and T-K degrees of freedom. (o) The log-likelihood: T e e log + 1 + log (2p ) 2 T
(e
t =2
et1 )
e
t =1
2 t
(q) The names of the explanatory variables. Lags are shown as name{lag}. (r) The estimated coefficients. (s) The standard error of the coefficient estimate. (t) The t-statistic of the coefficient (coefficient/its standard error). (u) The marginal significance level for a (two-tailed) test for a zero coefficient.
simply statistics on the dependent variable, and tell you nothing about the accuracy of the regression model. They are the same values you would get by doing a STATISTICS instruction on the RATE series over the same range.
Int36
Introduction to RATS
Log Likelihood
For a linear regression, this is the log likelihood of the data assuming Normal residuals. Note that this includes the constants: the 1 + log( 2p ) terms only interact with T and not with the residuals and so could be dropped from any comparison of two linear regressions with the same number of observations. While some programs omit these, rats always includes them in all calculations of likelihoods or any density functions.
Durbin-Watson Statistic
The Durbin-Watson statistic tests for first-order serial correlation in the residuals. The ideal result is 2.0, indicating the absence of first-order serial correlation. Values lower than 2.0 (and particularly below 1.0) suggest that the residuals may be serially correlated.
rats always computes a Durbin-Watson statistic, even if you have cross-section data
where serial correlation isnt likely to be an issue. However, you should keep in mind that the tabled values for the Durbin-Watson statistic are known to be invalid in a variety of circumstances, such as the presence of lagged dependent variables.
Coefficient Table
rats attempts to come up with a common format for displaying the regression coeffi-
cients and standard errors. This makes the results easier to read than if the decimal points didnt align. The table lists all the variables in the regression, including the constant if you included it. The Coeff column lists the estimated coefficients for each variable. The t-statistic is the ratio of a coefficient to its standard error. The significance level (see page Int11) is for a two-tailed test for a zero coefficient. For models estimated by least squares, the t-statistic in the T-Stat column is treated as having a t distribution with T-K degrees of freedom. If the model is estimated by some other technique, the t-statistic is treated as having a Normal distribution.
Introduction to RATS
Int37
Shortcut for EditSelect All. Selects all the series in the list. Shortcut for ViewChange Layout. This is more useful in the possibly very large lists of series for data browsers, as it allows you to make a much shorter list by filtering out series which dont meet certain criteria. Shortcut for EditFind. Searches for a value across series. Shortcut for FileImport. Imports data from an external file. While this will work, its usually better to use the Data Wizard, which does much the same thing, but keeps a record of the instructions. Shortcut for FileExport. Exports the selected series in one of many formats. Shortcut for Data/GraphicsCreate Series (Data Editor). Opens a Series Edit Window for a new series. Shortcut for ViewTime Series Graph. Displays a time series graph for the series. Shortcut for ViewHistogram. Displays a histogram plot for the series. Shortcut for ViewBox Plot. Displays a box plot for the selected series.
(Find) (Import)
(Autocorrelations) Shortcut for ViewAutocorrelations. Computes and graphs the autocorrelations and partial autocorrelations of the series.
Int38
Introduction to RATS
(Cov./Corr.)
(View Data)
Introduction to RATS
Int39
Constants
You can represent a numeric value using a variety of forms: with or without decimal points: 5 in scientific notation with a suffix of one of the forms: En, E+n, E-n, where n is a non-negative whole number: 2.3E5 (230000) -.4E-4 (-.00004) In addition, rats provides the following two constants: %PI The constant p %NA The missing value code 13.6 -.393
Arithmetic Operators
+ * / ^ or ** += = *= /=
addition subtraction or negation multiplication division exponentiation Increment and assign (a += b is equivalent to a = a+b) Decrement and assign (a = b is equivalent to a = ab) Multiply and assign (a *= b is equivalent to a = a*b) Divide and assign (a /= b is equivalent to a = a/b)
You can use parentheses () to control the order of execution of the operations, and you can nest sets of parentheses if necessary. You cannot use brackets [] or braces {} as substitutes, because these have other meanings in rats. In the absence of parentheses, operations are done in the following order: 1. 2. 3. 4. 5. Negation ( - used to change sign) Exponentiation (exception: -a^b does a^b first) Multiply and divide Add and subtract Logical operators (see below)
If two operations have the same precedence, they are done from left to right, so A-B+C is equivalent to (A-B)+C. The one exception to this is ^: A^B^C is the same as A^(B^C).All of this is based upon natural order of operations in algebraic formulas. Just as a+b/c is interpreted as a+(b/c) in algebra, A+B/C is A+(B/C) in rats.
Int40
Introduction to RATS
ments and return a value or set of values. Function arguments must be enclosed within parentheses () and there should not be a space between the function name and the (. Some of the more important ones: LOG(x) SQRT(x) SIN(x) %IF(x,y,z) %VALID(x) natural log (loge) EXP(x) square root ABS(x) sine (of x in radians) COS(x) is y if x is non-zero and z if x is zero. is 0 if x is missing and 1 otherwise ex absolute value cosine (of x in radians)
See Section 2 in the Reference Manual for a complete list of available functions.
Examples
2
Expression 1 (1 + y a - bc d e
-u 2
Logical operators have many uses in rats, one of which is creation of dummy variables. They code true/false statements, returning a one for true and zero for false. These are shown below (A and B can be any expression or number.) Expression A==B (or A.EQ.B) A<>B (or A.NE.B) A>B (or A.GT.B) A>=B (or A.GE.B) A<B (or A.LT.B) A<=B (or A.LE.B) .NOT.A A.AND.B A.OR.B Translates to the Statement A is EQual to B A is Not Equal to B A is Greater Than B A is Greater than or Equal to B A is Less Than B A is Less than or Equal to B A is NOT non-zero (that is, A is false) Both A and B are non-zero (true) Either A or B or both are non-zero (true)
The logical operators are lowest in order of precedence, so A+B==C*D is done as (A+B)==(C*D).
The first six (the relational operators) take precedence over the last three, which are listed above in order of precedence: A.OR.B.AND.C.OR.D is done as A.OR.(B.AND.C).OR.D When testing for equality, be sure to use == (two equals), not = (just one)!!!
Introduction to RATS
Int41
rats distinguishes between integer and real (floating point) numbers. Integers are
whole numbers which serve primarily as entry numbers, loop indices and subscripts. For instance, the date 1970:1 is processed as an integer, and subscripts such as T-1 are integer expressions. A constant typed without a decimal point is considered to be an integer: 100.0 is real, 100, 1, 2 and 3 are integer. When an operation mixes an integer with a real, the integer is converted to its equivalent as a real number before the operation is completed. For instance, if any one of A, B or C is real, (A+B+C)/3 is the same as (A+B+C)/3.0. Division of two integers results in the integer quotient with no fraction, so 10/3 is 3 and 1/2 is 0. This may or may not be what you intend, so you need to be careful in such situations. If you need to force rats to convert an integer to a real in a situation where it would not be done automatically, use the function FLOAT, for instance FLOAT(T). Similarly, you can convert reals to integers with the function FIX. FIX truncates any remainder. If you want to round first and then convert to integer, do something like FIX(%ROUND(X,-1)) which rounds to the nearest 10 and converts to an integer.
Missing Values
Operations involving a missing value produce a missing value as a result, except for equality and inequality (== and <>). Because missing values propagate automatically, you dont have to worry about making special tests to insure that an expression only operates on valid numbers. An invalid operation of any form will also produce the missing value code as a value. Examples are SQRT(-1.0) and 1/0. rats does not distinguish between illegal operations (such as SQRT(-1.0)) and operations which could be assigned a value of infinity, such as 1./0. Within an expression, you can represent a missing value only as %NA; not as NA or . or any of the alternatives that can be used on data files.
You can access a particular entry of a series by listing the entry or element in parentheses immediately after the variable name. For series, you would use an expression of the form seriesname(entry), such as: FOODPROD(5) or DISPINC(1939:1). As weve already seen, in a SET instruction you reference the current value of a series (the value at the entry being computed) as seriesname alone, and its lag as seriesname{lag}.
Int42
Introduction to RATS
Getting StartedA Tutorial 1.5 Example Four: Time Series Graphs and Analysis
Now well look at an example to demonstrate some time series filtering and analysis techniques, and explore the graphing capabilities of rats. It uses monthly data on housing starts in the United States, and is also from Pindyck and Rubinfeld (1998), page 480. The instructions are provided on the file ExampleFour.rpf. Before starting, close the Input Window and start a new one (with FileNew: Editor/Text Window). This time, we will use separate input and output windows. Once the editor window is open, hit the toolbar. The data file we want is called EX152.XLS. Use the Data Wizard (Other Formats) operation to open the file. Click on Show Preview to view the contents, and then click on Scan to process the date information. The dialog box should look like this:
The dates are in the form year:month:day, but the file only contains one observation per month. rats is able to recognize this, and correctly identifies this as monthly data. Click on OK. rats will generate and execute the following instructions: open data ex152.xls calendar(m) 1986:1 data(format=xls,org=columns) 1986:1 1995:10 hs6fr
Introduction to RATS
Int43
As you would expect, the series exhibits a very strong seasonal behavior. There also appears to be a decreasing trend over the first few years, followed by an increasing trend over the remaining years.
We will examine some techniques for smoothing the data. Start by selecting Filter/ Smooth from the Data/Graphics menu, which will bring up this dialog box:
Int44
Introduction to RATS
Click on OK. rats will generate a FILTER instruction with the appropriate options: filter(type=centered,width=7) hs6fr / flat7 This seven-period moving average should smooth the series considerably, but will probably retain some of the seasonal behavior. To reveal the underlying trend behavior of this series, we can try the Hodrick-Prescott (hp) filter. It is designed to separate the trend behavior of a series from its cyclical component. Select Filter/Smooth again. This time, youll have to select HS6FR as the input series (rats doesnt guess, now that there are more than one series in memory). Enter HPFILTER as the Output Series and select Hodrick-Prescott as the Filter Type. You can leave the Tuning parameter field blank to use the default value. The dialog should look like this:
Introduction to RATS
Int45
Next, click on the Key tab, and select Upper Right (Inside) as the position for the key. Then click OK to generate the graph. Heres the resulting Graph Window:
Int46
Introduction to RATS
As expected, FLAT7 is considerably smoother than the original series, but still shows a significant amount of seasonality. The HPFILTER series, however, seems to fit the overall trend behavior of the original series quite well, with nearly all of the cyclical behavior and short-term fluctuations removed. Here is the GRAPH instruction generated by the wizard. Due to space constraints, we use the line continuation symbol $ here, which tells rats that a command is continued on the next line: graph(style=line,footer="Moving Average versus HP Filtering",$ key=upright) 3 # hs6fr # flat7 # hpfilter The main instruction includes several options: STYLE, which controls the way data is represented; FOOTER, which adds a text label below the graph; and KEY, which adds a key. Both STYLE and KEY select from a specific list of choicessee GRAPH in the Reference Manual for a list of the possible choices. The number 3 at the end of the (continued) GRAPH line tells rats that you are graphing three series. When you are done viewing the graph, close the graph window or click on the input window to bring it back to the front.
Introduction to RATS
Int47
Click OK to generate the DETREND series. The instruction looks like this: filter(remove=trend) hs6fr / detrend Next, we need to compute and save the trend component that was removed, by subtracting the detrended series from the original series. You could use the Transformations wizard (on Data/Graphics) to do this, but you may find it easier just to type in the SET instruction yourself: Now, we can do our exponential smoothing on the detrended series. Because it is time-series specific, the Exponential Smoothing wizard is located on the Time Series menu. Go ahead and select Exponential Smoothing. Select DETREND as the input series, None as the Form for Trend, and type in the name ESMOOTH for the output series. The textbook uses a value of 0.2 for the level smoothing parameter a, so enter that value in the Level field. The dialog box should look like this:
Int48
Introduction to RATS
esmooth(alpha=.2,smoothed=esmooth) detrend Now we need to add back in the trend component removed earlier. We can replace the existing values of ESMOOTH with the sum of those values and REMOVED: Now, select the Graph operation again, and choose HS6FR, HPFILTER, and ESMOOTH as the series to be graphed. To label the graph, enter Exponential Smoothing vs HP Filter as the header. On the Key tab, choose Above (Outside) and turn off the Box Around Key?:
Introduction to RATS
Int49
As noted earlier, there is an easier way to do this, which is to include a component for the trend behavior in the exponential smoothing model. Select Time SeriesExponential Smoothing again. This time, select the original series HS6FR as the series to model. Then, select the Linear choice for the trend model in the Form for Trend box, and turn on the Estimate switch in the Smoothing Parameters box (which tells rats to estimate the smoothing parameters used in the model). Thats all you need to reproduce the previous analysis, but lets go a couple of steps further, by also including a seasonal term in the model and using the resulting model to produce forecasts. In the Form for Seasonal box, select Multiplicative. Provide a name for the smoothed series (we used ESMOOTH again here). Finally, enter a name in the Forecasts to box to hold the forecasts (we use ESMOOTH_FORE), and enter 8 as the number of forecast steps to compute:
Int50
Introduction to RATS
When you are ready, click OK to do the smoothing. The resulting instruction is shown below, along with a GRAPH instruction that plots both the original series and the forecasts. esmooth(trend=linear,seasonal=multiplicative,estimate,$ smoothed=esmooth,forecast=esmooth_fore,steps=8) hs6fr graph(style=line,header="Exponential Smoothing Forecast", $ key=above,nokbox) 2 # hs6fr # esmooth_fore
Introduction to RATS
Int51
As you can see from the graph, the seasonal component has been removed from SMOOTHED, leaving the underlying trend and short-term fluctuations. Exponential smoothing offers a relatively simple form of seasonal adjustment. You can also treat seasonality using state-space models (Users Guide, Chapter 10), or, if you have a Professional level of rats, you can use the more sophisticated Census X11/X12 adjustment procedure.
Int52
Introduction to RATS
This generates the instruction: set trend * 1996:12 = t which uses the (normally omitted) start and end parameters on SET. The * symbol used for the start parameter tells rats to use the earliest date in the default range (entry one in this case). Specifying 1996:12 as the end date defines the trend through the end of our forecast range. The T on the right side of the equal sign is a reserved variable in rats. It returns the current entry being set or evaluated. So, this creates a series called TREND that contains the number 1 in entry 1, the number 2 in entry 2, and so on. Next, select Linear Regressions from the Statistics menu, and enter SMOOTHED (the seasonally adjusted series) as the dependent variable, 1992:1 as the starting date, CONSTANT and TREND as the explanatory variables, and FORECAST_EQ as the equation to define. The dialog box should look like this:
Introduction to RATS
Int53
linreg(define=forecast_eq) smoothed 1992:1 * # constant trend The DEFINE option creates an equation called FORECAST_EQ containing the structure and estimated coefficients from the regression. Well use that to produce forecasts. Now select Single-Equation Forecasts from the Time Series menu. The Equation field tells rats which equation you want to forecast. The default choice (Last Regression) would actually work, because the last regression performed is the one we want to forecast, but go ahead and select FORECAST_EQ. Then, enter 1995:11 and 1996:12 as the starting and ending date for the forecasts. Finally, enter HSFORE in the Forecasts To field to save the computed forecasts into a series with this name:
Int54
Introduction to RATS
Introduction to RATS
Int55
Resizing Graphs
You can resize a graph window by clicking and dragging a corner of the graph. rats will automatically adjust the elements of the graph (font size, etc.) to fit it within the new window. If you squeeze the graph down to be very narrow in one dimension or the other, the fonts may become hard to read. However, as long as you keep the proportions within normal ranges, it should remain readable. When you print a Graph Window or export it for use with a word processor, rats normally uses proportions close to a golden ratio, with the width being about 1.5 times the height. This will not necessarily match the proportions that you are seeing on the screen. If youve changed the shape of the graph and want to use those proportions, click on the Fix button ( ). To cancel that, click on the ( ).
By default, graphs are displayed in color, with different colors used for each series. If you print a graph to a black and white printer, rats will automatically convert to using different patterns to distinguish series. You can preview what the graph will look like in black and white mode by clicking on the toolbar button. The precise set of patterns (or colors, for that matter), can be configured, if the standard ones dont work well or your publication needs a standard style. See page Int149.
You can use FileSave As... or FileExport... to save a graph to disk. If you want to be able to re-open the graph in rats, save the graph in our rgf (rats Graph Format). If you want to import the graph into another document, use one of the other formats, with PostScript usually being the best option. You can also include instructions in your program to save graphs automatically (page Int152). You can also use EditCopy, <Ctrl>+C, or Copy on the contextual menu to copy a graph to the clipboard for pasting into another application. The formats available depend on the platform you are using (page Int129).
Int56
Introduction to RATS
Getting StartedA Tutorial 1.5.6 Learn More: Long and Short Program Lines
Continuation Lines, $ Symbol
rats will accept instructions of any physical length. Sometimes, though, a line
becomes so long that it is difficult for you to handle. To split a line into more manageable segments, put a $ character at the end of the unfinished line. You just have to be careful where you break a line. Dont break up tokens, things like numbers, variable names and quoted strings. The best locations are before or after commas or arithmetic operatorswith after being the easiest to read, since its clear that the expression isnt done. An example is set gnp = consumption + investment + govtexpend + $ export - import There is no limit on the number of continuation lines allowed for a single instruction. Some statistical and programming languages require a symbol, often a semi-colon (;), at the end of each command to signal to the program that a command is complete. That is not the case with ratsit automatically assumes a command is complete when it hits the end of the physical line of text. Thus the only time you have to include a symbol (the $) at the end of a physical line is if the command isnt done, and continues to the next line of text.
You actually can use the semi-colon (;) in rats to signal the end of a command, but this is only necessary if you want to include multiple commands on a single line. This is usually only a good idea for a set of short instructions which you see almost as one, or for attaching short comments to instructions. Examples: set gdp = log(gdp) ; set m1 = log(m1) smpl 1960:1 1985:3 ;* Set Sample for Remaining Instructions
Introduction to RATS
Int57
Getting StartedA Tutorial 1.5.7 Learn More: RATS Program Files (RPF)
At this point, you should have a complete Editor Window with the instructions for the analysis that weve done with this housing data series. The advantage of using the separate I/O windows is that we have the input commands by themselves. We will now save this as a rats program file which we can run later. We use the extension .RPF for program files. These are simple text files, so you can open them with any word processing program, but the .RPF extension allows us to associate the files with the rats software.
Saving a Program
Select FileSave (or FileSave As... or the toolbar) and assign the file a name. For example, you might save this as MyProgram.rpf. You can also save the file when you close the windowyoull be first asked if you want to save the changes, and if you answer Yes, youll be prompted for the file name.
Now, close all the open windows (using WindowsClose All). Because you are closing the input window (with your instructions), this will clear the rats memory as well. Do FileOpen... and re-open the file you just saved. Again, do the to get a separate output window. To re-execute the entire program, do EditSelect All (or click on the button) and hit <Enter> (or click on the run icon: ).
rats will execute all of the instructions in the file in order, generating text output in
the output window, along with the various graphs and report windows. Thats how easy it is to reproduce a set of results! You can do the same thing with any of our example programs.
.PRG Extension
Historically, we used the extension .PRG for program files, but have phased that out because it was not unique to rats, so any of a number of programs might actually end up being associated with it, and because it caused problems with some e-mail filters since one possible use of .PRG is for executable batch files. However, since there are a large number of existing rats program files which were given .PRG extensions, we still include that as a possible extension in the file dialog.
Int58
Introduction to RATS
print To view data over a limited range of entries, you can add start and end parameters with the desired dates (or entry numbers): print 1990:1 1996:6 You can also print only certain series by listing them after the dates: print 1990:1 1996:6 hs6fr esmooth esmooth_fore If you want all the data but only for certain series, you can replace the start and end parameters with a forward slash (/). This tells rats to use the default range for the series: print / hs6fr esmooth esmooth_fore To display the information to a spreadsheet style window, add a WINDOW option and a title for the window: print(window="ESMOOTH Forecasts") / hs6fr esmooth_fore You can copy and paste the contents of the resulting window into another program, or export the window contents to a spreadsheet or other file type using FileExport.... PRINT is also very useful when you are troubleshooting a program. When you get unexpected results, such as an error message complaining about missing values, try printing out the series involved. You may notice an error that had slipped through earlier checks. You can use the PICTURE option to supply picture codes (page Int5) to control the formatting of the output. In this case, we use an * on the left of the decimal, which tells rats to use as many digits as necessary, while the .# tells rats to round the output to one decimal (see DISPLAY in the Reference Manual for more on picture codes):
print(picture="*.#") / hs6fr ENTRY HS6FR 1986:01 105.4 1986:02 95.4 1986:03 145.0 1986:04 175.8
Introduction to RATS
Int59
The general form of SET is set( options ) series start end = function(T) In the function part of the SET instruction, you can use constants, scalar variables, other series, matrices, calls to built-in or user-defined functions, and any of the arithmetic and logical operators available in rats. In its most basic form, SET defines one series as a simple transformation of another series. For example: set loggdp = log(gdp) sets each entry of the series LOGGDP to the log of the corresponding entry of GDP, using the built-in function LOG() (see page Int41 for more on functions). The start and end parameters are optional, and you can usually skip them when you are doing your initial transformations after DATA. To set a series as a function of other variables, you use standard arithmetic notation: set totalcon = durables + nondur + services set scaled = resids/sigmasq
Trend Series
You use the variable T to create trend series and dummy variables based upon time. T is equal to the number of the entry being set, where the entry you specified on CALENDAR is given number 1. For instance, the following creates (in order) linear, quadratic and exponential (5% growth) trend series: set trend = t set trendsq = t^2 set exptrend = exp(.05*t)
Int60
Introduction to RATS
seasonal seasons seasonal(period=1948:2) february 1948:1 2009:12 The first creates SEASONS as a dummy for the last period of the year (4th quarter or December). By using SEASONS and its leads in a regression, you can get a full set of dummies without having to define a separate one for each period. With monthly data, the lag field SEASONS{-10 TO 0} covers dummies for February (lag 10, which is a 10-period lead) to December (lag 0). The second creates FEBRUARY as a February dummy defined from 1948 to 2009. The PERIOD option specifies the first period to receive a value of 1 (February, 1948).
Other Dummies
Dummy variables are easy to construct using logical and relational operators (see page Int41), since these operators return the values zero or one. set dummy = t>=1972:3.and.t<=1974:3 set large = pop>5000 set female = .not.male The first example creates a dummy series called DUMMY using a logical expression. It stores the value 1 in entries where the logical expression is true, and a 0 in the other entries. In this case, the expression is true between 1972:3 and 1974:3 inclusive, so DUMMY is 1 for those entries and 0 elsewhere. The second sets LARGE to 1 when the corresponding entries of POP are greater than 5000, and 0 elsewhere. In the third example, entries of FEMALE are 1 when MALE is 0, and are 0 elsewhere.
Trend/Seasonals/Dummies Wizard
You can create many of the trend, seasonal, and dummy variables described above using Trend/Seasonals/Dummies on the Data/Graphics menu.
Transformations involving lags or leads of a series can be written using the T subscript, lag notation, or a combination of both. set pavge = ( price + price{1} ) / 2.0 set pavge = ( price(t) + price(t-1) ) / 2.0 set inflation = 400.*log( deflator/deflator{1} ) The first two are identical. They create PAVGE as the average of the current and first lag values of PRICE. The first uses lag notation, the second uses T explicitly. Which style you use is a matter of taste. The third example computes annualized growth rates of DEFLATOR (in percent) using the log difference approximation.
Introduction to RATS
Int61
Differencing
Simple differencing is, of course, easy to handle with SET: set diffgdp = gdp - gdp{1}
rats also offers the instruction DIFFERENCE for regular, seasonal, or fractional dif-
difference gdp / diffgdp difference(sdiffs=1,diffs=1) gdp / ddsgdp As noted earlier, you can also use Transformations or Differencing on the Data/ Graphics menu to create differenced series.
Growth Rates
There are several ways to compute growth rates or approximations to them. The first two SET instructions below compute (for quarterly data) annualized growth rates, the third and fourth compute period over period rates and the last computes the year over year growth. set growx = 4.0*log(x/x{1}) set growx = ((x/x{1}) ^ 4 - 1.0) set growx = log(x/x{1}) set growx = x/x{1} - 1.0 set growx = x/x{4} - 1.0 Transformations on the Data/Graphics menu can also create simple growth rate series.
These generally require one of the two options for SET; either FIRST or SCRATCH: set(first=100.) capital 1920:1 1941:1 = .90*capital{1}+invest computes CAPITAL from an investment series beginning with a value of 100.0 for the first period (1920). set(scratch) gdp 1950:1 1998:4 = 1000.0*gdp/gdp(1975:3) renormalizes GDP to take the value 1000 in 1975:3. You need the SCRATCH option because it is replacing the values of the GDP series that are needed in the calculation, and is using two entries of it (current entry and 1975:3) . See SET in the Reference Manual for more on these options.
Int62
Introduction to RATS
The first makes all entries of W for which the series TEST is negative equal to missing (%NA is how you represent the missing value in expressions). The other entries are not affected. The second stores the values of SERIESONE in TESTSERIES for all entries through 1990:12. Entries from 1991:1 on are taken from SERIESTWO. Note that the %IF function only evaluates a singlevalued expression each time it is called. It is the SET instruction itself that loops over the entries in the sample range, calling %IF once for each entry in that range.
Missing Values
SET propagates missing values through the formula. With only two exceptions (the %VALID(x) function and the %IF(x,y,z) function), any operation which involves a missing value returns a missing value. SET also sets to missing any observation which involves an illegal operation, such as divide by zero and square root of a negative number. set stockprice = %if(%valid(stockprice),stockprice,-999.0) This replaces all the missing values of STOCKPRICE with the value 999.00. You might use this in preparation for exporting this series to a file format (such as ASCII) which doesnt support special codes for missing values.
Introduction to RATS
Int63
Simple regression models (Section 1.5.4 and Users Guide Section 5.2) Simultaneous equations (Users Guide, Chapter 8) Vector autoregressions (vars) (Users Guide, Chapter 7) Exponential smoothing (Section 1.5.3 and Users Guide Sections 6.2 and 6.3) Box-Jenkins (arima) models (Users Guide, Sections 6.2 and 6.4) Spectral methods (Users Guide, Sections 6.2 and 6.5) Chapter 5 of the Users Guide provides a general overview of forecasting, while specific kinds of forecasting models are addressed in the sections noted above.
You can use the PRJ instruction (page Int71) to compute out-of-sample fitted values for the most recently executed regression, as long as the necessary right-hand-side variables are defined for the required time periods. We introduced the UFORECAST instruction and the Single-Equation Forecast Wizard on page Int54. The other, more general, forecasting instruction is FORECAST. It can forecast one equation or many, and can also be used to forecast non-linear models. You can use VAR (Forecast/Analyze) on the Time Series menu to generate a FORECAST instruction once youve defined a proper model. By default, both UFORECAST and FORECAST do dynamic forecasting. That is, when computing multi-step forecasts, they use the forecasted values from initial steps as the lagged dependent variable values in computing the later forecast steps. Both can also do static forecasting if you use the STATIC option. Static forecasting means that actual values are used for any lagged dependent variable terms in the model. These instructions are discussed in detail in Chapter 5 and 6 of the Users Guide and in the Reference Manual.
Section 1.5.4 introduced the idea of defining equations and using UFORECAST to compute forecasts using equations. FORECAST can also produce forecasts for a formula, or a set of formulas. Note the distinction between equations and formulas:
Int64
Introduction to RATS
Formulas
Simulations
You can compute random simulations of a model using UFORECAST, or with the SIMULATE command, whose syntax is virtually identical to that of FORECAST. You can also use other tools to supply your own shocks to a systemsee Chapter 16 of the Users Guide.
Introduction to RATS
Int65
The data run down the page in columns, so the default settings should be correct. This file includes series names, so rats wont need to ask you to provide names for each series.
Int66
Introduction to RATS
Using the Univariate Statistics operation, the dialog box would look like this:
Most instructions (and associated wizards) that deal with series have the SMPL option.
Introduction to RATS
Int67
Another way to examine the respective wages for males and females is to regress the WAGE series against a constant and the MALE dummy variable:
The coefficient on the CONSTANT will be the average female wage, while the coefficient on the MALE variable will be the difference between male wages and female wages (that is, it reflects the impact of being male on wage). The results show an average female wage of $5.15, with males making an additional $1.17 per hour, for an average of $6.32, with a standard error of $0.11 on the differential. To determine whether gender truly affects wages earned, Verbeek considers whether other factors, such as years of schooling and years of experience on the job, may explain some or all of the discrepancy. One way to do that is to compare the restricted regression used above (restricted because the schooling and experience variables are omitted) with the unrestricted regression which does include the additional variables to determine whether the additional components are significant.
rats offers an instruction specifically for testing these types of exclusion restrictions.
Lets look at the regression with some added factors: linreg wage # constant male school exper
Int68
Introduction to RATS
The null hypothesis that the added coefficients on schooling and experience are zero (and thus can be excluded from the model) is tested with an F statistic with 2 and 3290 degrees of freedom. The result is significant beyond any doubt, so these variable do seem to help explain wages. However, the regression coefficient on MALE actually goes up in the expanded regression, so the use of the additional factors cant explain the difference between males and females.
You can also generate this test using the Regression Tests operation on the Statistics menu, which displays this dialog box:
Here, we want to select the Exclusion Restrictions option, which tests that some set of coefficients all have zero values. Thats the simplest of the three options. The Other Constant Restrictions is used when you have a test on one or more coefficients with a null hypothesis that they take specific values, not all of which are zero. (A common case, for instance, is that the intercept is zero and a slope coefficient is one). General Linear Restrictions is used when you have restrictions that involve a linear combination of several coefficients (examples are that coefficients summing to one, or coefficients being equal, so their difference is zero).
Introduction to RATS
Int69
Then click OK to run the test. This generates a TEST instruction with a ZEROS option. With TEST, you use numbers rather than variable names to indicate which terms are being tested. In this case, we are testing that the third and fourth regressors in the LINREG are (jointly) zero, so the instruction generated by the wizard is: test(zeros) # 3 4
Chapter 3 of the Users Guide provides full details on hypothesis testing, including detailed information on the instructions described above, as well as the specialized instructions SUMMARIZE and RATIO. You will also find out how to implement serial correlation and heteroscedasticity tests, Chow tests, Hausman tests, unit root tests, and many more.
Int70
Introduction to RATS
Getting StartedA Tutorial 1.6.4 X-Y Scatter Plots: The SCATTER Instruction
Weve looked at creating time series (data vs. time) graphs with GRAPH. You can also graph one series against another to produce a scatter or XY plot. To demonstrate, lets look at the relationship between wages earned and years of schooling. First, we will regress WAGE against a constant and SCHOOL, and compute the fitted values from this regression. You can do that using the Linear Regressions wizard, adding a series name in the Fitted Values to field to save the fitted values, or you can type the instructions directly, using the instruction PRJ (short for project), which computes the fitted values from the most recent regression: linreg wage # constant school prj wagefit To draw the graph, select Scatter (XY) Graph from the Data/Graphics menu to bring up the Scatter Graph wizard. Select (highlight) both WAGE and SCHOOL from the list of series and click on to add the pair to the list of series to be graphed. When prompted, choose the combination with SCHOOL as the X-axis variable and click OK. Then, select Symbols as the Style. Now, select WAGEFIT and SCHOOL and click on the button to add this pair to Overlay Series list. SCHOOL should again be the X-axis variable. Select Line as the Style, and turn on the Same Scale as Base? switch (we want both pairs of series to be graphed using the same vertical scale). In the dialog box below, weve also added labels for the horizontal and vertical axis:
Introduction to RATS
Int71
As you can see, the OVERLAY option allows us to combine (overlay) two different styles (possibly with two different scales) on a single graph.
Int72
Introduction to RATS
Getting StartedA Tutorial 1.6.5 Learn More: Comment Lines and Comment Blocks
If you open up ExampleFive.RPF, you will see, in addition to the instructions that we just generated, lines like the following: * Adds school and exper to the regression and test the joint * significance of the two additional variables. These are comments that we added to explain whats going on to someone reading the example file, but not following it in this section. Its generally a good idea to add comments to any program file that you save.
Comment Lines
A line with * as the first non-blank character is treated as a comment and is ignored. We use comments rather extensively in the examples of this manual to help you understand the programs. However, note that we also often use marginal comments which are set off from the rest of the line by being in italic type rather than bold face. This is not legal in an actual rats program.
Comment Blocks
You can also mark an entire block of lines as a comment by using the symbol /* to mark the beginning of the block, and */ to mark the end of the block. (Note: the /* must be the first (non-blank) characters on the lines). While this provides a convenient way to enter several lines of comments, it is probably most useful commenting out an existing block of instructions. For example: * This is a comment line /* This is a comment block linreg y # constant x1 */ linreg y # constant x1 x2 This skips the first regression, but does the second.
Your first goal is always to get the calculations correct. However, if you have a program (or part of one) that you expect that you might need again or that others might want to read or use, its a good idea to add comments describing what each section of code does. Also, if you have a part of your program which youre not sure is correct, commenting it can often help you spot errors. (If you cant explain why youre doing something, that might be a good sign that youre doing it wrong).
Introduction to RATS
Int73
/***************************************************** This is a program that analyzes the population of kangaroos in New South Wales. ******************************************************/ gives a similar appearance to the block above, but you can more easily edit the comments as you dont have to worry about having the * symbols at the start of each line. The Edit menu provides operations for commenting or un-commenting sections of your code. If something not quite as pretty will do, you can use the Format Comments operation on the Edit menu. This takes a selected block of text and creates a set of one or more comment lines of roughly equal length (except for the final line). If some of the lines are already comments, the *s and leading blanks are stripped out before the lines get formatted. As an example, we pasted in the first two sentences from above as a single line and did Format Comments. The result is: * If something not quite as pretty will do, you can * use the Format Comments operation on the Edit * menu. This takes a selected block of text and * creates a set of one or more comment lines of * roughly equal length (except for the final line). The desired line length can be set on the Editor tab in the Preferences dialog (Section 1.3 of the Additional Topics pdf). The comments above used a line length of 50, to fit the page, but this is usually set to something longer than that (70-80 tend to work best). You may want wider comments in your actual program files. Note that the comment length isnt a hard limit. In order to roughly balance the lines, it might go a bit above that. There are also a couple of other comment operations on the Edit menu. CommentOut Lines takes the selected text and inserts * at the beginning of each; converting each into a comment. The reverse is Uncomment Lines, which strips the lead * off any line which has one. These allow you to take a block of lines out of the execution and put them back in.
Int74
Introduction to RATS
This is a checkbox which you can use to change the way that the regression standard errors are computed. It wont change the coefficients; just the standard errors, the covariance matrix, and any regression tests that you do afterwards. If you apply this to our last linear regression in this example, you will get the following instruction: linreg(robust) wage # constant school so you could also simply have inserted the ROBUST option into the existing instruction. If you compare the output, youll see a few differences. First, it now says:
Linear Regression - Estimation by Least Squares With Heteroscedasticity-Consistent (Eicker-White) Standard Errors
so while it still estimates by least squares, the standard errors are now computed using the Eicker-White methods, which are robust to certain types of heteroscedasticity (hence the name of the option). If you arent familiar with this, see Section 2.2 in the Users Guide. You also might notice that the regression F isnt shown: thats a test which is computed under the assumption of homoscedastic errors, and youve said (by using the ROBUST option) that that isnt true. The other summary statistics are the same, as are the coefficients, but the standard errors are (slightly) different, so the T-Stat and Signif columns change as well. When you click on the Robust (HAC) Standard Errors check box, you will also notice that two additional fields below it become active: the Lags/Bandwidth and Lag Window Type. These arent of any special interest in this example, since this is cross section data, but these allow you to compute standard errors which are also robust to autocorrelation (the hac is short for Heteroscedastic Auto Correlated). If we applied that here (not that we should), the new instruction would be something like: linreg(robust,lags=3,lwindow=newey) wage # constant school
Residuals
Further down in the wizard, you will notice a drop down box labeled Residuals To. Whenever, you run a regression, rats creates a series named %RESIDS and fills it with the residuals. If you want to graph the residuals, or compute its statistics, you can just use %RESIDS like any other series. However, if you run a new regression, %RESIDS will now get the residuals from that. If you want to keep a copy of the residuals from one specific regression, you can give a (valid) series name in this box, which will generate the new instruction (see page Int31 for a description of the /):
Introduction to RATS
Int75
This is a checkbox which you will almost always want to be on. If you click it off, you will generate an instruction like this, adding the NOPRINT option: linreg(noprint) wage # constant male
Almost all instructions which ordinarily would produce some output will have the option of NOPRINT. Why would you want to do that? Perhaps all you really want from the regression are the residuals. Or the defined equation for forecasting. When you run a regression, almost anything computed by the LINREG is available for further calculations. For instance, the coefficients are in a vector called %BETA; the sum of squared residuals are in %RSS. Perhaps you only need those. If you plan ahead and use NOPRINT, you dont have to read past the unwanted regression output.
This is a checkbox that you will usually want to be off. If it is on, the estimation instruction will include the VCV option (using the larger regression from the example): linreg(vcv) wage # constant male school exper
This places the following below the standard regression output (and puts a similar report into the WindowReport Windows list):
Covariance\Correlation Matrix of Coefficients Constant MALE SCHOOL EXPER Constant 0.216203148 -0.15560300 -0.90642459 -0.54623329 MALE -0.007790538 0.011594097 0.09663502 -0.10932520 SCHOOL -0.013822338 0.000341249 0.001075567 0.18093999 EXPER -0.006035400 -0.000279728 0.000141010 0.000564669
This is a square table with covariances on and below the diagonal and correlations above the diagonal. For instance, the estimated variance of the coefficient on MALE (the number at the intersection of the MALE row and MALE column) is roughly .0116. The estimated correlation between the coefficients on MALE and EXPER is where the MALE row and the EXPER column meet (above the diagonal), roughly -0.109. The covariance of the same two coefficients is at the EXPER row and MALE column (-.00028). Note that the header says Covariance\Correlation. We use the \ to help you remember the structure of the matrix: covariance below and correlation above. We recommend that you not use this on a regular basis simply because there is little useful information in it. The covariances are used in doing joint hypothesis tests as in Section 1.6.3, but you will be using instructions like TEST and EXCLUDE that do the computations for you, rather than using numbers out of this table.
Int76
Introduction to RATS
The instruments are listed on the separate INSTRUMENTS instruction line. That allows you to do several LINREGs off the same list without having to re-enter the instrument information. Two-stage least squares is done by adding the INST (short for INSTRUMENT) option to LINREG. The next two choices for the Method box are AR(1) Regression and AR(1)-Instrumental Variables. These will generate a different instruction: AR1, which is for linear regressions with first-order autocorrelated errors. See Section 2.4 of the Users Guide for more on handling autocorrelated errors. We wont look further at this here, but would like to point out that parts of the dialog change when you choose this (and all the remaining methods). In particular, the Robust (HAC) Standard Errors is replaced by a different popup box for the AR1 Method. The next choice down on the Method box is Robust Regression, which generates an RREG (Robust REGression) instruction. This is still a linear regression, but uses a different estimation technique which is more robust to outliers. See Section 2.12 in the Users Guide if youre interested. The final choice is Stepwise Regression, which generates an STWISE instruction. Stepwise regression is nowhere near as popular as it was perhaps thirty years ago, but still has its place. If youre interested in this, see the description of STWISE in the Reference Manual.
Introduction to RATS
Int77
but have option sets that are so different that they cant easily be fit into the same wizard. These are the next several choices on the Statistics menu: The Limited/Discrete Dependent Variables wizard handles the DDV (Discrete Dependent Variables) and LDV (Limited Dependent Variables) instructions. DDV is used for techniques applied to data where the dependent variable is discrete (usually just values 0 and 1) such as logit and probit. LDV is used for techniques such as tobit which are applied when the dependent variable is continuous, but the observed range is somehow limited. These are covered in Chapter 12 of the Users Guide. The Panel Data Regressions wizard generates a PREG instruction, which includes special techniques for estimating the linear regression with panel data (often also known as longitudinal or cross section-time series data); techniques such as fixed effects and random effects. See Section 12.5 in the Users Guide for more. The Recursive Least Squares wizard generates an RLS instruction. When applied over the same range as a LINREG, it will give exactly the same outputthe point is that it does a whole set of calculations for reduced ranges that can be used to check for stability in the overall linear model. See Section 2.6 of the Users Guide. There are quite a few other estimation instructions, but they have quite a different form. The instructions included here have models which are based upon a linear combination of a set of explanatory variables. If we need a non-linear function, we will need a different way to enter that than just a list of variables. Well see one of these other instructions (NLLS, for non-linear least squares) in Section 1.7. There are several other instructions which apply to systems of linear equations rather than just single equations: SUR (Section 2.7 of the Users Guide), which does fairly general systems, and ESTIMATE, which estimates the equations of a Vector AutoRegression (var)the subject of Chapter 7 in the Users Guide.
Regression Format
Regression format is the manner which rats uses to list regressors, either on the supplementary card for LINREG and related instructions, or on a list of instruments. It consists of a list of series and lag fields. You create a lag field by appending to the series name the list of desired lags in braces ({}). You can use the notation {n1 TO n2} to represent all lags between n1 and n2. Leads are represented as negative lags. Examples of lag fields (using data from an earlier example with time series data) are: M1{0 TO 4 8} RATES{1} SEASON{-1} M1 lags 0,1,2,3,4, and 8 RATES lagged once One period lead of SEASON
Int78
Introduction to RATS
Whenever rats detects an error, it displays an error message describing the problem. Where possible, these messages provide you with specific information about the error. Each error message begins with an error code: a one-, two-, or three-letter code indicating the general type of error, plus a numeric code identifying the specific error. For example, general syntax errors begin with the code SX, syntax errors involving options have the code OP (for OPtion), and errors involving linear regressions begin with the code REG. See Chapter 6 in the Additional Topics PDF for a complete listing of all the rats error messages, along with some suggested causes and remedies.
Syntax Errors
Syntax errors probably appear most often. These occur while rats is reading a line (as opposed to errors which occur as rats is trying to execute a line it has read successfully). Syntax errors generally mean that rats couldnt make sense of the line it was processing. Missing parentheses, misspelled instruction or option names, illegal characters, and incorrectly entered numbers are some common causes of syntax errors.
rats displays two lines of information: the error message, and then the portion of the line which caused the error, enclosed in >>>> and <<<< symbols. rats only
prints the line up to the point at which the error occurred. It will display a maximum of 20 characters, counting back from the point of the error. For example, suppose you tried the following: set trendsq 1 50=t^2 This should have at least one blank space between the end parameter (50) and the =. Because that space is missing, rats will produce the following error message: Error SX15. Trying to Store Into Constant or Expression >>>>set trendsq 1 50=t<<<< As you can see, rats stopped processing the line immediately after it detected the illegal assignment operation.
rats often needs to look one character ahead to identify particular operators. For
instance, if it sees an =, it must check the next character to see if the operator is ==. Thus, the true culprit may be one character before the one shown.
Introduction to RATS
Int79
problem is actually the (illegal) blank space between DATA and the left parenthesis that starts the option field. This blank causes rats to interpret (UNIT=INPUT) as the start parameter, rather than as the option field. It is legal to use an expression like this for start. However, INPUT is not a recognizable variable name, so rats produces the error message.
Once rats has successfully interpreted the line, it does not echo back the characters on the line. All you will see is the error message.
If you are just typing in instructions one at a time, it will be clear which instruction caused the problem. Find it, fix it and re-execute the corrected line (hit <Enter>). However, if you select a block of lines and execute, the problem could be with any of the selected lines. If its a syntax error, you might be able to figure out where the problem is by matching up the echoed characters, but that wont help if its an execution error. In that case, try the Show Last Error operation on the Edit menu, which will position the cursor on the instruction line that generated the error.
Int80
Introduction to RATS
Once you set a SMPL, rats uses the SMPL range as the default. To clear a SMPL, just issue a SMPL instruction with no parameters. We recommend that you do any preliminary transformations before you set a SMPL. If you need to skip entries in the middle of a data set, use the SMPL option (pages Int67 and Int82).
You can use hard-coded entry numbers rather than dates. For example, given a CALENDAR of
because 1960:12 is the twenty-fourth entry given the CALENDAR setting. With time series data, you will usually use the dates, but using entry numbers is sometimes easier.
Introduction to RATS
Int81
rats would try to run the regressions using entries one thousand nine hundred and
fifty nine and one thousand nine hundred and sixty. Clearly not what you intended, so be sure to include the :period anytime you are referring to a date.
The default end period is not a binding constraintyou can define series beyond this default limit as needed by using explicit date/entry ranges.
rats provides two related methods for dropping observations out of the middle of a
sample. We introduced the SMPL option available on many instructions on page Int67. It allows you to include and omit selected observations within the start to end range of the instruction. The formal description is: smpl=SMPL series or formula The SMPL series is a series or formula with non-zero (or logical true) values at the entries (between start and end) you want to include in the estimation, and zero values (false) at the entries to omit. It can be an existing series, or a formula like that used in a SET instruction. Its usually a dummy variable series of some form. It may be a dummy in the data set, or one constructed for this particular purpose. You can also set a SMPL series which applies to all instructions that support the SMPL option. You do this with smpl(series=SMPL series) We prefer to use the SMPL options in most situations. If you use the SMPL instruction, you must remember to reset it when you are done with the analysis which uses the reduced sample.
Int82
Introduction to RATS
dent variable or any of the regressors, so you dont need a SMPL option for them. If you have a regression with lags, you could end up losing several data points since any observation which needs an unavailable lag of a variable will be dropped.
Suppose you want to leave the years 1942 to 1946 out of a regression over 1919 to 2009. You could construct a SMPL series for this with: set notwar 1919:1 2009:1 = 1.0 Set all entries to one set notwar 1942:1 1946:1 = 0.0 Set entries for war years to zero linreg(smpl=notwar) depvar # regressors The second SET only applies to the restricted range from 1942:1 to 1946:1, and so wont affect the values at other time periods. You could do the same thing with linreg(smpl=t<1942:1.or.t>1946:1) depvar # regressors but the first way is easier to understand at a glance.
To run a regression for just those entries where a series exceeds some value or meets some similar criterion, use relational operators. This generates dummies for three subsamples based upon the series POP, then runs the regressions over those. set small = pop<2000 set medium = pop>=2000.and.pop<=6000 set large = pop>6000 linreg(smpl=small) depvar # regressors linreg(smpl=medium) depvar # regressors linreg(smpl=large) depvar # regressors linreg(smpl=pop<2000) depvar # regressors
Again, we could collapse these by using the SMPL option into three instructions like
again, however, at a loss in readability. A few extra keystrokes is generally worth it if is produces a clearer program.
Introduction to RATS
Int83
where C is (real) consumption, Y is (real) disposable personal income and a, b and g are unknown parameters. The data file is ExampleSix.RAT, which is a rats data format file. If you open this (choose File-Open, pick RATS Data Files in the file type box, and select the file), you will see the following RATS Data File Window:
If you think that it looks a lot like a Series Window, youre right. They are formatted the same way, and share most of the same operations on the View menu and toolbars. Of the five series on the file, we need only two: REALCONS and REALDPI. Select those two (click on one of the series, then <Ctrl>+click or <Command>+click on the second), and choose the Data/GraphicsData (RATS Format) menu operation. This will pop up the following dialog box:
Youll notice that this is much simpler than the Data Wizard for the other formats. What this wizard will do is to look at the series that you selected, and guess that you want the coarsest frequency and the maximum common range. For instance, if we had both monthly and quarterly data, with some series starting in 1947 and some
Int84
Introduction to RATS
Since its unknown, we cant, and have to estimate this using the instruction NLLS (Non-Linear Least Squares). Estimating linear models with least squares and related techniques is a fairly simple process, involving straightforward matrix computations. Non-linear estimation, however, is an inherently more general and complex taskthe variety of different models you can estimate is virtually limitless, and fitting these models requires the application of complex iterative optimization algorithms, rather than simple computations. The estimation process can demand a fair bit of expertise and judgment on the part of the user, because the algorithms can be sensitive to initial conditions and are prone to converging to local, rather than global, optima. Thus, it should be no surprise that fitting non-linear models in rats requires more effort and attention than fitting simple ols models. There are several steps we must do before we can even estimate the model. First off, we need to decide what we will call the free parameters; we cant use actual Greek characters, but we have to choose instead some legal rats variable names. Some other programs force you to use a specific way of writing this (perhaps c(1)+c(2)*realdpi^c(3)). rats allows you to use symbolic names, which is much simpler, particularly if you ever decide to change the formula and add or remove some of the parameters. alpha, beta and gamma are an obvious choice here, but well choose the shorter a, b and g. If we were doing a SET instruction to calculate the right-hand side formula, we could write that as a+b*realdpi^g, which is, in fact, the way that we will write this. We need two instructions to tell rats what the free parameters will be called and to define the right-hand side formula. These, respectively, are NONLIN and FRML. You might find it easiest to put these in manually, but you can also apply the Equation/ FRML Definition Wizard from the Statistics menu:
Introduction to RATS
Int85
Choose FRML (General) from the Create popup menu. Choose the name that you want to assign to this formula in the Equation/FRML Name box; well use CFRML. Choose the dependent variable (REALCONS) in the Dependent Variable popup. Put in the names A B G in the Free Parameters box and the formula A+B*REALDPI^G in the Formula box. As you can see, since you have to type in both the formula and the parameter names, there isnt all that much that the wizard really does other than help you make sure you get all the information in. For instance, if you just put in the formula definition without providing the A B G names, you will get an error message that A is unrecognizable when you try to ok the dialog. If you put everything in correctly, the wizard will produce: nonlin a b g frml cfrml realcons = a+b*realdpi^g
The NONLIN instruction tells rats that on non-linear estimation instructions that follow, the free parameters will be A, B and G. The FRML instruction (FRML short for FoRMuLa) defines the expression that well be usingCFRML will be a special data type also known as a FRML. You dont need to include the dependent variable when defining a FRML; if you dont have one, just leave that part of the instruction out.
Guess Values
However, were still not quite ready. (As we said, non-linear estimation is quite a bit harder than linear). Non-linear least squares is an iterative process; Greene, in fact, shows how to do (roughly) what rats will do internally as a whole sequence of linear regressions. That sequence has to start somewhere, at what are known as the guess values or initial values. The default for rats is all zeros, which sometimes works fine. Zeros wont work here, because if B is zero, the value of G doesnt matter: G is said to be unidentified (more than one value for G, here all values, give the same result).
Int86
Introduction to RATS
%BETA is a vector defined by rats which has the coefficients from the last estimation instruction. %BETA(1) is the first coefficient and %BETA(2) is the second. We use those in a COMPUTE instruction to put our guess values into the three parameters.
Because of all the work required to prepare everything, the instruction itself is quite simple. NLLS has quite a few options, but most of them are to control the estimation process itself if the model proves hard to fit. The output is shown here:
Nonlinear Least Squares - Estimation by Gauss-Newton Convergence in 65 Iterations. Final criterion was 0.0000003 <= 0.0000100 Dependent Variable REALCONS Quarterly Data From 1950:01 To 2000:04 Usable Observations 204 Degrees of Freedom 201 Centered R^2 0.9988339 R-Bar^2 0.9988223 Uncentered R^2 0.9997776 Mean of Dependent Variable 2999.4357843 Std Error of Dependent Variable 1459.7066917 Standard Error of Estimate 50.0945979 Sum of Squared Residuals 504403.21571 Regression F(2,201) 86081.2782 Significance Level of F 0.0000000 Log Likelihood -1086.3906 Durbin-Watson Statistic 0.2960 Variable Coeff Std Error T-Stat Signif ******************************************************************************** 1. A 458.79905447 22.50138682 20.38981 0.00000000 2. B 0.10085209 0.01091037 9.24369 0.00000000 3. G 1.24482749 0.01205479 103.26415 0.00000000
Its not that much different from LINREG output. The only addition is the line describing the number of iterations. You would like this to indicate that the estimation has converged. If it doesnt, you will see in its place something like:
NO CONVERGENCE IN 30 ITERATIONS LAST CRITERION WAS 0.0273883
Introduction to RATS
Int87
Fitted Values
We introduced the PRJ instruction for computing fitted values on page Int71. PRJ also works for many other types of estimations. However, it doesnt work after NLLS, or other instructions that arent based upon a linear specification. Instead, you can apply your defined FRML in a SET instruction: set fitted = cfrml A FRML can be used within the SET expression (or, for that matter, in another FRML definition) almost exactly like a series, that is, CFRML by itself means the value at the current entry, CFRML{1} means the value the previous entry, etc. However, these types of expressions are the only places where you can use a FRML like a series. You cant use them for the dependent variable in a regression, or in the regressor list, or many other places. If you want to see the value produced by a FRML, do a SET as shown, and then examine the series created.
Int88
Introduction to RATS
Introduction to RATS
Int89
By now you should be familiar with DISPLAY and COMPUTE, and wont be surprised to learn they work with arrays as well as scalars. For example, after doing the NLLS instruction in our example, you could (re) display the estimated coefficients and standard errors (with fewer decimals) by doing: display *.### %beta display *.### %stderrs
COMPUTE is the primary instruction for doing matrix computations. rats supports the standard arithmetic operators as well as several special matrix-specific operators. The program also provides dozens of built-in functions (such as inverse, transpose, and so on) for doing matrix calculations. See Section 1.7 of the Users Guide for more.
Defining Arrays
You can use DECLARE to create your own arrays, although you can often skip the declaration step. COMPUTE, READ, or INPUT can store values into arrays. If you need to construct an array from a set of series, you can do that using the MAKE instruction. You can define arrays of labels, strings, series, equations, even arrays of arrays, and so on. These structures can be very useful in writing more sophisticated code, particularly for implementing complex, repetitive tasks. In Chapter 3 we make extensive use of arrays of strings for labeling graphs, while instructions like FORECAST use arrays of series to store results.
You can use in-line matrixnotation (Users Guide, Section 1.7) to provide the values of an array in an expression. Use two vertical lines (||) to mark the start and end of an array, and a single bar (|) for a row break. This is particularly useful for defining a matrix in the middle of an expression, such as in a non-linear formula. You can also use in-line matrix notation for options that accept an array for the arguments. For example, this estimates a Box-Jenkins model with ar terms on lags 1, 4, and 12: boxjenk(ar=||1,4,12||) y
Int90
Introduction to RATS
Loops
DO
is a standard loop instruction which loops over an integer index. It is like a fortran do or a basic for. is less standard but often very useful. It loops over a list of items: series, matrices, numbers, etc. loops as long as an expression is true. loops until an expression is true. It always executes the enclosed instructions at least once (WHILE may not). loops unconditionally. You need to use a BREAK instruction to get out of the loop.
do index = startvalue,endvalue,increment instructions executed for each value taken by index end do The index is a simple variable name, by convention, short names like I, J and K are often used. The increment is 1 by default, and the ,1 can be left out if it is. A DOFOR loop repeatedly executes all of the instructions down to the matching END, with index taking a new value from the list of values on each pass through the loop. This continues until the list is exhausted. While the index of a DO loop must be an integer variable, a DOFOR index can be almost any type of variable. dofor index = list of values instructions executed for each value taken by index end dofor
Introduction to RATS
Int91
Conditional Execution
The IF instruction allows you to control the flow of program execution based on the condition of a logical expression. For example, in the following, Condition is true is displayed only if the variable TEST contains the value 1. if test==1 display "Condition is true" else display "Condition is false"
Important note: The IF instruction only evaluates a single conditional expressionit does not include any sort of implicit looping over series or matrix entries. If you want to set values of series or an array based on a condition, you probably want to use the %IF() function, rather than using IF inside a loop. See page Int63 for details. IF-ELSE blocks are usually part of a larger programming structure, like a DO loop or a PROCEDURE. On the rare occasion that you need a stand-alone IF or IF-ELSE, enclose the whole set of lines in { }; for instance, { if test==1 display "Condition is true" else display "Condition is false" }
This lets rats know the limits of the programming code (what we call a compiled section) that needs to be treated as a unit.
Int92
Introduction to RATS
Introduction to RATS
Int93
2.. Dealing.With.Data
lmost every time that you use rats, you will need to bring data into the program. Since collecting and organizing your data set may be the single most timeconsuming part of your analysis, you would obviously like rats to accept your data with as little fuss as possible. We have provided you with a wide range of options for handling this important step. You should note that rats is not a data set-oriented program. Simply selecting a data file does not make the contents immediately available for analysis: you must use the DATA instruction or a Data Wizard to bring the data into working memory. This may seem to be an unnecessary extra step, but it offers numerous advantages. For example, you have the option of reading in only certain series and certain entries from the data set. Converting data from one frequency to another can be handled automatically as you read in the data.
rats supports reading and writing data from a wide range of sources and in many
different formats. The most popular are RATS format and Excel spreadsheets. The Professional version of rats supports sql commands and odbc connections for reading many types of databases. Estima provides (for purchase) two sets of macroeconomic data. The oecd Main Economic Indicators has key data series for a large set of major countriesfor more information see http://www.estima.com/datainfo_oecd.shtml. These are provided in a set of rats format data files with one for each country. The Haver usecon data (http://www.estima.com/datainfo_haver.shtml) is an extensive set of us data. These are provided in both rats format and in dlx format. The RATS format version can be used on any platform, while the dlx (which we call FORMAT=HAVER) can be used on Windows only.
DATA, COPY and Related Instructions Converting Frequencies Missing Values RATS Format Excel and Other Spreadsheet Formats Database Formats Free and FORTRAN Formats Tips and Tricks
Most of your projects in rats will require reading data in from a file or files. The critical instruction for this is DATA, which reads data from a file into one or more series variables stored in memory. You can write out the appropriate OPEN DATA and DATA instructions directly, or you can use one of the Data Wizards (on the Data/Graphics menu) to generate the necessary instructions. The FORMAT option on DATA tells rats what type of file you will be reading. Depending on the type of file, you may also need to use the ORGANIZATION option to specify whether the data series on the file are arranged in rows or columns. Note that the default format option for reading data is simple free-format text. rats does not attempt to determine the format of the data file itself based on the filename extensionyou need to set the FORMAT option yourself.
The companions instructions to OPEN DATA and DATA are OPEN COPY and COPY, which write data series to a file. COPY can produce data files in a wide range of formats, including spreadsheets, rats format files, text files, and binary files. For rats format files, COPY can only create a new file. To write data to an existing rats file, use the instructions DEDIT, STORE, and SAVE (page Int110). If you prefer to use menu operations to write the data, you can: 1) Use ViewSeries Window to list the series available in memory. 2) Select (highlight) the series you want to write to a file from that list. 3) Do FileExport..., select the desired file format from the drop-down list, enter a name for the file, and click OK. You can also open or create a rats format file (using FileNew or FileOpen) and then drag and drop series from the Series Window onto the rats file window.
Supported Formats
We list the formats in Section 2.2, divided into three broad categories. You can find detailed information on each format (indicating where it can be used and any special details) in the Additional Topics pdf.
Int96
Introduction to RATS
Data
Other Instructions for Reading and Writing Data
DATA and COPY can only read and write SERIES type variables. For other types of variables (such as scalar reals, integers, arrays, labels, strings), you can use the INPUT or READ instructions to read data into rats, and the WRITE or DISPLAY instructions to write data to a file. The REPORT instruction can be useful for creating specialized reports of data and statistics, similar to those created by rats instructions like LINREG or STATISTICS.
rats allows you to write data in a wide range of forms using COPY. You can also open or create rats format files using FileNew or FileOpen, and move data to and from memory one rats format file to another (or from the working data series in memory to the rats file) by dragging and dropping series from one window to another.
In fact, with rats format used as an intermediate stop, you can easily translate data from, for instance, a poorly formatted text file to a wellorganized spreadsheet. The rats file format is directly portable across different platforms (Mac, Windows, unix) with no translation required. You simply need to be able to transfer binary data. XLS, XLSX, WKS, PRN, DBF, DTA, DIF and the rats Portable format are some other machine-independent formats which rats supports.
It is very important to be sure that data are being read in properly, particularly when reading from a data file for the first time. The tutorial in Chapter 1 includes a number of suggestions for doing this, particularly using quick views of the sample statistics. In a rats program file, you can use the TABLE instruction immediately after the DATA instruction(s) to get the same type of quick statistics table.
Introduction to RATS
Int97
strictly for input, some strictly for output, and some can be used for either. The details on each of these is provided in the Additional Topics PDF. The different formats generally fall into one of three broad categories.
Here, we look at file formats specifically designed to handle time series data. Data are organized by named series. Each of these series has its own calendar scheme and range of data. These are usually fairly complicated proprietary formats, since they have to be able to code up many types of date schemes, and must allow for very large amounts of data. The most important of these is rats format (FORMAT=RATS). The only other one which is supported in the standard release of rats is rats Portable Format, which is a text version of rats format, useful mainly for archiving data in a human-readable form. We use FORMAT=PORTABLE for describing this format. The other formats listed below are available only in the Professional version of RATS, and some arent included on certain platforms. These are all proprietary formats, so our ability to support them depends upon the type of support offered by the owner of the format. You will also need a subscription to a database or service provided by the owner in order to use them. These other formats are: Citibase/DRI/Global Insight native format. We call this FORMAT=CITIBASE. This is available on all platforms.
crsp (center for research in security prices) data, available from the University of
Chicagos Booth School of Business (www.crsp.com). We call this FORMAT=CRSP. Its available for Windows and some unix systems.
Fame is the native format for the fame database management program provided by SunGard. We call this FORMAT=FAME. This is available on Windows and certain unix systems. Haver dlx is the native format for Haver Analytics (www.haver.com). The Haver usecon data which can be purchased from Estima are provided in both rats format and in dlx format. We call this FORMAT=HAVER. Its available on Windows only.
fred (federal reserve economic data) is a (free) on-line database provided by the
St. Louis Federal Reserve Bank (research.stlouisfed.org/fred2). This is available on all platforms, but requires an active internet connection. You can read series in directly with FORMAT=FRED, but you also have the option of browsing the database interactivelyon the Data/Graphics menu, select Data Browsersfred(online) browser. This displays a list of the main database categories in a new window. Double-click on a category (or sub-category) to see a Data File Window with the series available in that category.
Int98
Introduction to RATS
Data
Labeled Tables and Spreadsheets
These form a rectangular table of data with each column representing a series and each row representing an observation. Each column is labeled with the series name. Each series has at least nominally the same range, and same date scheme (if any) though there might be missing values in some of the series. The most commonly used of these is one of the Excel formats, though they also can be in the third, less structured category. For formats through Excel 2003, use the option FORMAT=XLS. For Excel 2007, use FORMAT=XLSX. You can pull data off more than one worksheet within an Excel workbook (using the SHEET option on DATA), but can only access one worksheet per DATA instruction; use additional DATA instructions to get data from more than one worksheet.
rats accepts several delimited text formats. FORMAT=PRN will accept data fields
which are separated by commas or white space (spaces or tabs). For writing data, you can also use FORMAT=CDF (comma delimited format) or FORMAT=TSD (tab separated data) to get specific field separators. EViews workfiles fall into this category. rats can process data series (but not other objects). This uses FORMAT=WF1.
dta is the native format for Stata data files. Use FORMAT=DTA for that.
If you have the Professional level of rats, you can also read data using sql queries on databases which support odbc (such as Oracle and Access). This is a bit more complicated than other formats since you have to provide the sql query that sets up the table of interest. This is FORMAT=ODBC.
dif is a (rather bulky) text format for transmitting the content of a simple spread-
sheet in a text, rather than binary form. Its rarely used now, except as a copy-paste format for data to and from spreadsheets. It uses FORMAT=DIF.
wks is an older spreadsheet format used by the Lotus spreadsheets. Its perfectly
adequate as a storage format for data, and quite a few legacy data sets are saved in it. As with Excel, it can also be in the third category. This uses FORMAT=WKS.
dbf is the database format used by dBase and compatible programs. It uses
FORMAT=DBF.
These either dont have labels for individual series, or have labels which have illegal characters for rats series names (such as spaces or parentheses). The most important of these is free-format, which is just a text file with numbers, delimited with commas or white space (spaces, tabs, line breaks). While we would never recommend saving your own data in this, there are a large number of existing data files done in such an unstructured way. Also, if you ever have to scan data out of a book, you will likely end up with this. This uses FORMAT=FREE.
Introduction to RATS
Int99
Data
Another unlabeled text format is the collection of fortran formats. This is likely only of value if you have a very old text data file which, in order to keep the size down, squeezed data into undelimited fields. (For instance, first five positions are the first number, second five are the next number).
matlab is the native data format for the matlab programming language. This
could also fall into the Time Series Databases category, if each series is a separate one-column matrix. If, instead, you have a single matrix with multiple columns forming your dataset, it falls into this group. This uses FORMAT=MATLAB. The least-recommended of all the formats is native binary. Never save data in this format; theres no identifying information on the file, you cant read the data without the proper program and it isnt necessarily portable from one type of computer system to another. Its FORMAT=BINARY. Any of the spreadsheet formats (XLS, XLSX, WKS, DIF, PRN) can also be treated this way if you have extra comment lines or missing or unusable labels.
The advantage of the Time Series Databases and the Labeled Tables is that they have series labels already on the file, so you can pick and choose which series you want. However, the name you use for a series in your program must be the same as the name for the series on the data file. That is, if M1 is called FMS on the data file, you will have to use the name FMS in your program also. The commercial databases need naming conventions to distinguish thousands of series, so their names can often be a bit cryptic. While the data must initially be read using the names from the file, you can (and probably should) always copy the information into more meaningful names, such as: set m1 = fms
are FORMAT=TEX, which generates a TeX tabular environment, for inclusion in a TeX document and FORMAT=HTML, which generates an html table for inclusion on a web page.
Int100
Introduction to RATS
Except for fred, these can all be read using the proper sequence of CALENDAR, OPEN DATA and DATA instructions. See Section 2.7 for more on the use of RATS format; otherwise, check the description of the format in the Additional Topics PDF. Again, note that most of these are available only for the Professional level of rats.
rats, fred, Fame and Haver dlx all have browser modes, which are Data File
Windows. You can use that to navigate through the contents of the file, using the ViewReset List menu item or Change Layout toolbar icon ( ) to restrict the list based upon frequency, start or end year, comments or names (or any combination). You can drag and drop series you select onto the Series Window, or onto a RATS Data File Window, or export them directly to some other type of file (such as a spreadsheet). You open the browser for a rats data file by opening it with the menu File-Open; the other browsers are submenus for Data/GraphicsData Browsers. If you are working with the browser for a rats file, you can also select the series you want and use the Data (RATS Format) Wizard. That will look at the ranges and frequencies of the series that you selected, and come up with a common data range.
In a Labeled Table
These are all included in the Data (Other Formats) Wizard, which we would recommend you use the first time you try to work with a particular file. The wizard will always read all the series from the file, which might not be what you want. However, you can always edit the DATA instruction produced by the wizard to eliminate the unwanted series. Save the edited program file, and use that as the basis for further work. See Section 2.8 and the next paragraph for more on the spreadsheet formats (XLS, XLSX, WKS, DIF, PRN). Because there are many ways to pull data out of these, when you use them as a Labeled Table, you need to include the option ORG=COLUMNS.
Spreadsheets can often include additional information besides the data and labels (and possibly dates) that are required for treatment as a Labeled Table. If you have a well-structured labeled table within the spreadsheet, you probably can read it as a Labeled Table by using the LEFT and TOP options to restrict the attention of the DATA instruction to the area that you want. For instance, if you have ten lines of descriptive headers, you would add the option TOP=11. The Data (Other Formats) Wizard can help you set those options.
Introduction to RATS
Int101
Data
If you have a properly labeled table, except that the series are arranged by rows, rather than columns, you can use the option ORG=ROWS. You can combine that with the TOP and LEFT options if needed to isolate the data table from other information. There are several other options for reading data out of less-structured spreadsheets which are covered in Section 2.8. Note, however, that in many cases, the simplest approach is simply to pull the data into a spreadsheet program and edit out the unwanted parts of it.
In a Text File
What you should do depends a lot on the format that you have inherited and how big the data set is. If the data is a well-structured Labeled Table, you can just read it as described above. If the file is fairly well-organized in columns and rows, but without series names, you can probably still process the file using the Data (Other Formats) operation. In most cases, you can just select Text files (*.*) as the file type. Youll just have to provide labels for the series. If the data file is fairly stable, we recommend that you then write the data from rats into a rats format or spreadsheet format file for later use. See Section 2.9 for more tips on reading text files.
In a Database File
If the data are in a database you can access using sql commands, you should be able to read it with the Professional version of rats, using DATA with FORMAT=ODBC. See the description of the FORMAT=ODBC in the Additional Topics pdf. If you have quite a bit of data in printed form, youre probably best off scanning it to create a text file, and continuing as described under In a Text File. Since character recognition software is still imperfect, youll have to be extra careful in checking that the data came in properly. If you need to key in your data, you can:
On Paper
type the data into a spreadsheet, a database application, or a text file (using rats or any other text editor) and read the data using the steps described in the relevant section above. Use the DataCreate Series operation and type the data directly into rats memory, and then use FileExport.... Open or create a rats format file (using FileOpen or FileNew), and then use DataCreate Series to type the data directly into a rats format data file. The rats data editor used by the Create Series operation is designed to handle timeseries data sets easily, where you deal with one series at a time. If your data set is more case-oriented, a spreadsheet or data base editor is likely to be more convenient, since you can edit across series. Whatever method you use, be sure to check the data after reading it into rats.
Int102
Introduction to RATS
To get to this point, weve done the following: Selected the FileData Wizard (Other Formats) operation, selected Excel 2007 Files (*.xlsx) from the list of file types, and opened the file HAVERSAMPLE.XLSX. Clicked on Show Preview to view the file, and used the Sheet button to preview the two sheets on this file. Here, weve selected the Monthly sheet. Clicked on Scan to have rats determine the frequency and dates of the data. Used the Set button to tell rats to read the data at a quarterly frequency, rather than at its native monthly frequency. Because weve set our Target Dates field to a lower frequency than the source data, the Compact by button is active. You can use this to choose the compaction method rats will use. Here, weve selected the default choicetaking simple averages of the subperiods (page Int104). If we didnt want the Wizard to generate a CALENDAR instruction at all (for example, if we had already set a quarterly CAL earlier in the session), we could just turn off the Reset Workspace Dates switch.
Introduction to RATS
Int103
the source file must contain dates that rats can process. The program cannot determine the frequency of the source data if the file does not contain dates. you must set the CALENDAR instruction to the desired (new) frequency. You can do this by typing in CALENDAR directly, by using the Data/GraphicsCalendar operation, or by setting the Target Dates field in the Data Wizard (page Int103). Given a mismatch between the frequency of the data on the file and the CALENDAR seasonal, rats will automatically compact or expand the data to match the CALENDAR setting. This works for any of the file formats for which rats can process dates (any of the Time Series Database formats and most of the Labeled Table formats).
Compacting Data
To compact from a higher frequency to a lower frequency, just follow these steps: 1) As noted above, make sure the source data file contains valid date information at the original (higher) frequency. See page Int106 for tips if you dont already have date information on a file. 2) If youre using a Data Wizard, just make sure that the File Dates field accurately reflects the higher frequency of the source data,. Then, set the Target Dates fields to the desired lower frequency. Click on ok to read the data. If you are typing in commands directly, set the CALENDAR to the target (lower) frequency. For example, if you are compacting monthly data to a quarterly frequency, specify a quarterly CALENDAR. Then use OPEN DATA and DATA to read the file.
rats will automatically compact the data to match the CALENDAR frequency using
the method specified by the COMPACT or SELECT option, or the Compact by field on the Data Wizard. The default is COMPACT=AVERAGE.
The COMPACT and SELECT options allow you to select from several compaction methods. Note that the two options are mutually exclusive. If you try to use both, rats will honor the SELECT choice. The choices are: compact=[average]/sum/geometric/first/last/maximum/minimum AVERAGE SUM GEOMETRIC FIRST/LAST MAX/MIN simple average of the subperiods sum of the subperiods geometric average of the subperiods first or last entry of each subperiod, respectively maximum value or minimum value from each subperiod
Int104
Introduction to RATS
Data
select=subperiod to select compacts data by selecting a single subperiod from within each period. Suppose you have a quarterly CALENDAR and you want to read a monthly data series. DATA with SELECT=3 will read in the third month from each quarter (that is, the March, June, September, and December observations from each year). With the default option of COMPACT=AVERAGE, each quarterly value will be the average of the three months which make up the quarter. It is more complicated when you move between dissimilar frequencies: weekly to monthly, for instance. If you use SELECT=2, it will select the second full week within the month. Suppose you have the weekly observations shown below. Since weekly data are classified in rats according to the end of the week, March 13, and not March 6, will end a full week for this data set. If you compact data using the other methods, rats will give 6/7 of the March 6 value to March, and 1/7 to February. If the input data are: Week ending: March 6 15.0 March 13 11.0 March 20 13.0 March 27 18.0 April 3 20.0
the value for March (with COMPACT=AVERAGE) is: (6/7x15.0 + 11.0 + 13.0 + 18.0 + 4/7x20.0)/(6/7 + 3 + 4/7) = 14.97
The steps are the same as those described under Compacting Data on page Int104. If rats detects that the data on the file being read are at a lower frequency than the current CALENDAR setting or Data Wizard target frequency, it will automatically expand the data to the higher frequency by setting each subperiod equal to the value for the full period. For example, if you set a quarterly CALENDAR and read in annual data, rats will set the value of each quarter in a given year to the annual value for that year. For dissimilar frequencies, the value of a period which crosses two periods of the lower frequency data is a weighted average of the two values. For instance, in moving from monthly to weekly, the value for the week ending March 6 will be: 1/7 x February + 6/7 x March For a more complex interpolation, you would first read the data as described above to expand to the higher frequency, and then apply the desired interpolation routine to the expanded data. rats ships with several interpolation procedures you can use, but we primarily recommend the @DISAGGREGATE procedure (supplied on the file DISAGGREGATE.SRC), as it provides options for choosing from several models and techniques. The following example reads in quarterly gdp data at a monthly frequency. It uses DISAGGREGATE to produce a monthly series from the step function that DATA gener-
Introduction to RATS
Int105
Data
ates. Since gdp is ordinarily quoted in annual rates, we want to maintain the average at the higher frequency; if we had a series that quoted in totals (sales figures, for instance), we would use MAINTAIN=SUM. calendar(m) 1947 open data haversample.rat data(format=rats) 1947:1 2006:4 gdp set trend = t @disaggregate(factor=3,model=loglin,maintain=average) gdp / gdpm # trend
If you have a data set that you want to compact or expand, but your data file doesnt include date information, you can either
add dates to the original file directly (see page Int119 for suggestions if using a spreadsheet), or read the data into rats under its actual frequency, write the data out to a new file that does include dates, and then read the data back in from the new file, letting rats compact or expand as needed. For example, suppose the quarterly gdp data from the previous example was provided in a plain text file. You know that the data is quarterly, and starts in 1947Q1, but the text file doesnt contain any date information, so you cant expand it directly. Instead, you would first read the data into rats, using the appropriate quarterly CAL setting: calendar(q) 1947 open data gdpnodates.txt data(format=free,org=columns) 1947:1 2006:4 gdp Next, write the data out to a new file, using the DATES option to include dates (based on the CAL information) in the file. (You could also export the data from the Series Window). Here, well create a rats format file: open copy gdpwithdates.rat copy(for=rats,dates) close copy You can then process it as above, but reading from GDPWITHDATES.RAT: calendar(m) 1947 open data gdpwithdates.rat data(format=rats) 1947:1 2006:4 gdp set trend = t @disaggregate(factor=3,model=loglin,maintain=average) gdp / gdpm # trend
Int106
Introduction to RATS
Spreadsheet Files
The +infinity coding is the same as is used by the major spreadsheet programs for N/As. Thus, if a cell contains the explicit missing value function (NA() in Excel), rats will read a missing value at that cell. When you export data to the spreadsheet, rats passes the code value (as a number, not a function), so it will display as NA or #N/A on the spreadsheet.
rats will also interpret blank cells within the spreadsheet as missing values.
Missing values are a problem if you have to save the data in a space or tab separated text format (PRN or TSD). You cant simply leave the cell blank in the text file, as you can with an actual spreadsheet, because a blank cell is indistinguishable from the blanks used to separate data items. Instead, youll have to use one of the codings described in the next paragraph.
Text Files
rats will accept the following as codes for missing values in text-format data files:
The characters NA or #N/A (upper or lower case) A decimal point, followed by zero, one, or two non-numeric characters (for example, . or .NA) Note, however, that you cannot use these within a rats expression: use %NA for that.
rats will interpret any block of non-numeric characters as a missing observation. However, if the characters dont fit the description above, rats will issue a warning
Introduction to RATS
Int107
Data
Numeric Codes
If you have data which use a specific numeric value (999 or something similar) to indicate a missing value, use the option MISSING=missing value code on DATA. Whenever possible, use integers for missing value codes. The realities of numerical precision in the computing world mean that rats may not be able to match exactly a decimal-valued code such as 999.99. Suppose your data set uses 9999 for missing values. You could use something like the following: data(format=prn,org=columns,missing=-9999) / sales revenue This would read the series SALES and REVENUE, and convert any values of 9999.0 to missing values. If you have several missing value codes (such as 999 = no response, 998 = invalid response), you have two options: Edit the file and replace the two codes by a single code. Read the data and alter it within rats. This is an example of the latter: data(format=free,org=col) / income charitable mortgage set income = %if(income==-999.or.income==-998, %na, income) The %IF function tests whether the current entry of INCOME is equal to either of our two missing value numeric codes. If so, the function returns the %NA missing value code, which is then stored in INCOME. Otherwise, the existing value of INCOME is retained. To apply this procedure to multiple series, we can use a DOFOR loop: dofor i = income charitable mortgage set i = %if(i{0}==-999.or.i{0}==-998, %na, i{0}) end dofor
Note that the index variable I will actually be an integer variable containing the series number associated with the current series. As a result, we need to use the lag notation {0} (specifying the zero lag) on the right hand side of the SET instruction. This tells rats to treat I as a series, not as an integer number.
Skipped Dates
Suppose that you have a (daily) data set in which holidays and other non-trading days are skipped. If you have no date information on the file, there is little you can do: you will have to treat it as an irregular time-seriesomit the CALENDAR entirely, or use CAL(IRREGULAR).
Int108
Introduction to RATS
Data
If you do have dates on the file, DATA (and STORE with CONVERT) will code entries corresponding to the skipped dates as missing values. For example, consider the following portion of an XLS file, which skips the (U.S.) Thanksgiving holiday on November 23, 2000: SALES_DATA 2000:11:20 3590.50 2000:11:21 4256.05 2000:11:22 2987.23 2000:11:24 6799.87
You might read the data with the following instructions: calendar(d) 2000:1:2 open data sales.xls data(format=xls,org=col) 2000:1:2 2000:12:31 sales_data The data in the SALES_DATA series for the week of Thanksgiving would be: 2000:11:20 2000:11:21 2000:11:22 2000:11:23 2000:11:24 3590.50 4256.05 2987.23 NA 6799.87
If you really want to skip the holidays without having gaps in your data (in the sense that you want to treat the data for November 22 and November 24 as adjoining entries), you cannot treat the data set as Daily because rats insists that daily data be five days a week. If you use CALENDAR(IRREGULAR), rats will ignore the dates on the data file and read the data from the file into consecutive entries. There is little difference between the two ways of handling the holidays, unless you do some type of time-series analysis that uses lags or leads. Another option for these situations is to go ahead and read the data using a DAILY or SEVENDAY CALENDAR, as in the Thanksgiving example above, then use the SAMPLE instruction to create compressed versions of the data without the missing-values: sample(smpl=%valid(sales_data)) sales_data / sales_nomissing You can use the uncompressed data for printing or generating graphs (where you want to include date information), and use the compressed series for estimating Box Jenkins, garch, and other similar models that dont accept missing values. If you want to patch over a missing value like this with the previous value (which would make no sense with the sales data, but might if you have, for instance, price data), you could do that with something like: set patched = lastprice=%if(%valid(price),price,lastprice) This will use the value in the series PRICE if PRICE isnt missing, and will use the last non-missing value if it is.
Introduction to RATS
Int109
Data access is more flexible: you can set up a single file with many series and select only the ones you need for a particular application. You can also select a specific set of entriesyou dont have to read in entire series. The data series do not need to have identical structures. For example, you can mix monthly, quarterly and daily series on one file and can have series running over different intervals. rats can automatically compact or expand data to match the current CALENDAR frequency. See Section 2.4. There are many ways to add data to a file or edit series already on a file. Data retrieval is extremely fast.
rats also allows a certain amount of flexibility in reading the Labeled Table files
(page Int99): you can select specific series off a file and restrict yourself to a subset of entries, and, under certain circumstances, you can compact and expand.
Stored Information
For each series on the file, rats retains the following information: the series name the frequency of the data (annual, quarterly, monthly, panel, etc.) the dates (or entries) for which the series is available up to two lines of comments the data itself
Open the file using OPEN DATA, and read the data using DATA(FORMAT=RATS), or Open the file using FileOpen, select (highlight) the series you want, and use the Data (RATS Format) wizard from the Data/Graphics menu to read in the data. Open the file using FileOpen and drag and drop series from the rats file onto the Series Window (displayed using ViewSeries Window). With rats format, you can read any combination of series from the file. You can also read specific sets of observations from the full data set by using the start and end parameters on the wizard or the DATA instruction. This is one of the most important advantages of rats format. If you omit the list of series when using DATA, rats will read all the series on the file. Be cautious when working with large files, or you might read in many unneeded series.
Int110
Introduction to RATS
Data
To change the name of the series as stored on the file, you can either open the file using File-Open and use the Rename toolbar button, or else open the file with DEDIT and use the RENAME instruction.
rats provides special instructions for creating and editing rats format data files. Never try to make changes to a rats data file using a text editor. The instructions for working with rats format files are:
COPY When used with the option FORMAT=RATS, this writes a set of series to a new rats format file. This is the easiest way to write data to a rats file, but cannot be used to append data to an existing fileuse DEDIT, STORE, and SAVE for that. DEDIT initiates the editing of a new or existing file. Once you have opened a file using DEDIT, you can use the following instructions. Several of these are rarely used now, since its easier to make changes on-screen using the RATS Data File Window. STORE SAVE CATALOG PRTDATA QUIT adds specified series to the file, or converts the contents of a data file of another format. saves changes to the file. produces a directory of series on the file. prints one or more of the data series stored on the file. ends an editing session without saving the changes (do SAVE then QUIT if you want to save changes and then close the file).
The following are no longer documented in the Reference Manual, but are included in the Additional Topics pdf. EDIT performs on-screen editing of an existing or new series. adds a single series to the file. makes changes to a small set of entries of an existing series. deletes a series from the file. renames an existing series.
Introduction to RATS
Int111
Data
RATS Data File Windows
When you open an existing rats file using FileOpen, or create a new file using File NewRATSData Window, rats displays the contents of the file in a window. From this window, you can:
Read data into memory by selecting the series you want from the data window and then doing Data (RATS Format) from the Data/Graphics menu. Read data into memory by dragging and dropping series from the rats file window to the Series Window (displayed using ViewSeries Window). Write data to the rats file by dragging series from the Series Window and dropping them on the rats Data File Window. Use FileImport to bring data from other files into the rats format file. Use FileExport to export data from the rats format file. Double-click on a series to view or edit the data in that series. Select Create Series from Data/Graphics (or click on the icon series on the file. Rename a series by selecting the series and clicking on the ) to create a new icon.
Use the ViewReset List menu item or toolbar icon to restrict the list based upon frequency, start or end year, comments or names (or any combination) Use the View menu operations or corresponding toolbar icons to display time series graphs, histograms, and box plots, generate a table of basic statistics, or compute a set of autocorrelations for the selected series. You can also right-click (or <Command>+Click on the Mac) on a series (or list of series) and select operations like Cut, Copy, and Export... from the pop-up menu.
Examples of DATA
Suppose the data file MYDATA.RAT has REAL_GDP, quarterly from 1947:1 to 2010:1, and TBILLS, monthly from 1946:1 to 2010:5. cal(q) 1947:1 Sets a quarterly CALENDAR open data mydata.rat data(format=rats) 1947:1 2010:1 real_gdp tbills
will read REAL_GNP and quarterly averages (the default compaction option) of TBILLS, over the range 1947:1 through 2010:1. cal(m) 1954:1 allocate 1999:12 open data mydata.rat data(format=rats) / tbills Sets a monthly CALENDAR
will read the (monthly) data for 1954 through 1999 for TBILLS.
Int112
Introduction to RATS
Data
Examples of Editing
dedit company.rat cal(q) 1950:1 open data ascii.dat data(format=free) 1950:1 2003:4 order invent shipment backlog store order invent shipment backlog save reads four series from a freeformat file and saves them on the rats file COMPANY. RAT. cal(d) 1991:1:2 dedit(new) options.rat open data options.wks store(convert=wks,org=col,adddates) save
converts all data from the (undated) wks file OPTIONS.WKS, creating OPTIONS.RAT. The data will be stored as daily data, beginning with entry 1991:1:2.
rats ships with a stand-alone, menu-driven utility program called ratsdata. Most of the functionality of this program has now been incorporated directly into rats, us-
ing the New, Open, Import and Export operations on the File menu, and the various operations (and associated toolbar icons) on the View menu.
You may still find ratsdata useful for some tasks. Windows users will find shortcut icons for ratsdata in the Winrats folder on the Start menu and desktop. Mac users will have a ratsdata icon in their Macrats folder. Linux and unix users can run the ratsdata executable file. See the ratsdata help for details on using the program.
rats Version 8 uses the same rats file format as Versions 4 through 7, so files can
be interchanged seamlessly among these versions. It can also read from files created with Versions 2 and 3 of rats, which should cover any rats format file created since around 1987.
Introduction to RATS
Int113
xls/xlsx are typically the best choices from among these. rats supports these formats in several ways:
You can read data from a file using the Data Wizard (Other Formats) operation, the instruction DATA, or by importing into a Series Window. You can write data to a file using the instruction COPY or by exporting from the Series Window.
You can convert data from a spreadsheet directly to a rats format file using the CONVERT option of STORE or by importing into a RATS Data File Window. You can read and write matrices using READ and WRITE. You can export data from Report Windows using the export operations.
As Labeled Tables
All of these can be treated either as Labeled Tables or as Unlabeled Data, depending upon the form that the information takes. To be handled as a Labeled Table, its necessary for the data to look something like the sample at the top of the next page. We refer to this as organization by column (series arranged in columns, one observation per row). The series can also run across the rows: dates (if present) in the first row and each row of data beginning with the series label in column A. This is organization by row or variable. In either case, the block of data should be in the upper left hand corner of the worksheet (although options like TOP and LEFT can be used to ignore data above and to the left of the data block).
Int114
Introduction to RATS
Data
Dates
The column (or row) of dates is optional. Dates permit more flexible use of the data. If your file includes dates, the date information must appear in the first column or row of the data block. You can enter the dates as strings or as functions or values. If you do enter them as functions or values, be sure to format the cells with a date format. If you use strings, the dates must be have some type of delimiter between the year and period, or year, month and day; for instance, 1999:1, 1999Q1 or 1999-3-31 are acceptable, 199901 isnt. If the dates arent yearDperiod or yearDmonthDday (D being some non-numeric delimiter), you need to use the DATEFORM option on DATA to provide the form being used. For instance, if youre using the notation qq-yyyy (011999, 02-1999, etc.), include the option DATEFORM="qq-yyyy". The Data Wizard will generally be able to properly detect any such non-standard coding for the dates. With annual data, you can use just the year number in the data file (2010 rather than 2010:1), but rats will only recognize this as a date if it is entered as a string rather than a numeric value. Remember that in your rats programs themselves, you must include the :1 for annual date references.
Labels
The labels at the beginning of each series are not optional if you want to treat the file as a Labeled Table. rats uses the series labels to determine which series to read from the file. Labels should normally appear in row 1 (if organized by columns) or column A (if organized by rows). If you have additional rows of header information before the row of series labels (on data arranged by column), you can use Header Rows before Dates/Labels field in the Data Wizard or the TOP option directly on DATA to skip those. Variable names must start with a letter, consist of letters, digits, _ , $ or %, and be sixteen characters or less in length (they can actually be longer, but only the first sixteen are significant). If you dont have the option of changing the names (for in-
Introduction to RATS
Int115
Data
stance), your best strategy is to skip the automatic label processing. This is done using the option NOLABELS on DATA, combined with the TOP option to skip the line with the (unusable) labels. For instance, suppose the sample file had labels of Investment (GE), Value (GE) and Capital (GE). Neither the spaces nor the parentheses are permitted in a rats variable name. Instead, we could read this with: open data sample.xls cal(q) 1999:1 data(format=xls,org=col,nolabels,top=2) 1999:1 2001:1 ige fge cge Since we skipped the label processing, we have to provide our own labels for the series, and we have to read all the series from the file.
Reading Data
You can read data from a spreadsheet or delimited text file using the Data (Other Formats) Wizard or by typing in a DATA instruction with the appropriate FORMAT and ORG options. For multi-sheet workbooks, you can use the SHEET option to tell rats which worksheet you want to read. By default, it will read data from the first worksheet on the workbooks list of sheets. To use the Wizard, select Data (Other Formats) from the Data/Graphics menu, specify the format of the file you want to read (such as Excel 2007 Files (*.XLSX)) from the drop-down list in the dialog box, select the file you want to read, and then use the Wizard dialog box to read the file. If the source file has more than one worksheet, this will have a popup box to allow you to select the worksheet you want. If you are typing the instructions manually, use CALENDAR or the Calendar operation to set the frequency and start date (if using dated data), then use OPEN DATA to specify the file to be read, followed by a DATA instruction with the appropriate options. You can list the specific series you want to read on the DATA instruction, or omit the list and let rats read all the series on the file. Whether you can select specific observations out of the file depends in part on whether or not the file includes a date column:
If there is no date column or row on the file, rats assumes the first observation on the file corresponds to the first observation you request on DATA. You can ask only for entries at the beginning of the file, never a block in the middle or end. If you need to be able to read in a subset of the data, you could first convert the file to rats format. If there are dates on the file, and the frequency on the file matches the current CALENDAR seasonal, DATA will locate the entries requested and fill in any skipped dates with missing values. If the frequency of the current CALENDAR does not match the frequency of the data on the file, rats will compact or expand the data as it reads it in. See Section 2.4. If you dont use a CALENDAR instruction, rats will read observations from the beginning of the file. Any dates on the file are ignored.
Int116
Introduction to RATS
Data
Examples
Make sure that you use the proper extension (XLSX, XLS, or PRN for example) on the file name. rats will not add it automatically. cal(q) 1999:1 open data sample.xls data(format=xls,org=col) 1999:1 1999:4 cge fge reads series CGE and FGE, for the dates 1999:1 through 1999:4, from the sample worksheet earlier in this section. cal(q) 1999:1 open data sample.xls data(format=xls,org=col) 1999:1 2000:3 This reads all the series on the sample file. Because there are no data for 2000:2 and 2000:3, those entries are filled with NA. cal(m) 2002:1 open data daysales.xlsx data(format=xlsx,org=col,compact=sum) 2002:1 2009:12 This reads data from an Excel 2007 xlsx file, summing the daily data on the file to create monthly data in working memory. cal(q) 1950:1 open data sales.xls data(format=xls,org=col,sheet="quarterly",verbose) 1950:1 2006:4 This reads data from an Excel workbook containing several spreadsheet pages. Here, we are reading from the sheet entitled Quarterly. The VERBOSE option produces information about the data file, including the frequency and starting date. It will also indicate if any frequency conversion is being performed to match the CALENDAR frequency.
Introduction to RATS
Int117
Data
ORG=MULTIROWS
Consider the following. It has three years of quarterly data for two firms. This could be in any of the spreadsheets formats. FIRM A 2007 11.3 11.6 10.9 12.3 2008 13.0 12.8 11.5 12.5 2009 12.9 13.0 13.2 13.6 FIRM B 2007 22.5 21.9 24.3 25.6 2008 21.9 21.8 22.6 23.5 2009 22.5 25.0 24.5 25.4 We cant easily convert this to a Labeled Table because the data for a single series span multiple rows. One approach (probably the simplest in this case) is to eliminate the FIRM A and FIRM B lines and delete the 2007, 2008, and 2009. In this is in a spreadsheet, you could just delete the first column, and save whats left as text, and read it as free-format (see Section 2.9) with cal(q) 2007 open data firms.txt data(format=free,org=rows) 2007:1 2009:4 firma firmb
An alternative is to use a set of options on DATA to isolate just the information that we need. All the spreadsheet formats have a third choice for the ORG option, which is ORG=MULTIROWS. This is for precisely this type of situation, where a data series covers several lines. In order to use this, however, we need to know (in advance) exactly how many data points there are in each series, since the limit on a series isnt defined by the end of the data file. The data for the first series starts at column 2 of row 2 and has twelve data points while the second starts at column 2 of row 7. We have to read each series separately with something like: open data firms.xls cal(q) 2007 all 2009:4 data(format=xls,left=2,top=2,nolabels,org=multi) / firma data(format=xls,left=2,top=7,nolabels,org=multi) / firmb Both the date scheme (quarterly 2007:1) and end date (2009:4 or twelve entries) need to come from us since those wont be recognized from the file.
Int118
Introduction to RATS
Data
Writing Data
There are several ways to write data to a spreadsheet file. The most common is to use the COPY command to write data series. Begin by opening a file for output with OPEN COPY. Then use COPY to write the data to the file. We recommend that you use the ORG=COL option. You can include dates on the file with the DATES option. Do a CLOSE COPY command if you want to be able to open the file in another application right away. For spreadsheets, this creates a new file (overwriting any existing file of the same name), so you must write the entire file using a single COPY instructionyou cannot use multiple COPY commands to append data to existing spreadsheets. You can also write series to a spreadsheet by opening the Series List Window using ViewSeries Window, selecting the series you want to export, and doing FileExport. open copy sample.xls copy(format=xls,org=col,dates) 1999:1 2000:1 ige fge cge produces the sample worksheet from earlier in the section.
One way to add dates to a spreadsheet file which doesnt have them is to read the data into rats, set the desired CALENDAR, and write the data back to a new file. If you do that with COPY, use the DATES option; if you export it, make sure you check the Label Observations with Dates box. If you prefer to add dates directly to a spreadsheet, heres an easy way to add monthly or quarterly date labels to a spreadsheet file. First, create a blank column or row and format it as one of the built-in date formats. Next, enter the date number corresponding to your first date in cell A2 (or B1 for ORG=ROWS) using the appropriate date function. In Excel, for example, you could enter the date June 1, 1999 with the formula: =date(1999,6,1) To fill the rest of the date column or row with monthly dates, enter the following formula in cell A3 (or C1): =date(year(a2+31),month(a2+31),1) If ORG=ROWS, use +b1+31 in the formulas, rather than +a2+31. Finally, copy this formula to the rest of the cells in the date column or row. For quarterly dates, just use +92 in place of +31.
Introduction to RATS
Int119
prn format refers to a text file structured like a spreadsheet. The name dates back to
the days of Lotus 123, where it described a printable (text) version of a spreadsheet. To be read as a Labeled Table, prn files need to have data structured as described on page Int114. Series should be arranged in columns or rows, and the file must contain names for each series. prn files can also contain dates, in the form of date-format strings such as yyyy/mm/dd. Note that you cant use any type of numerical coding for the dates. Numbers on the file can be separated by blanks, commas, tabs, and/or carriage-returns. The columns dont need to be nicely aligned since its the delimiters that determine where one column ends and the next starts. You can read the file using the Data (Other Formats) operation, or by typing in a DATA instruction with FORMAT=PRN and the appropriate ORG option.
rats also offers two related choices: FORMAT=CDF for comma-delimited files and
For reading data, CDF, TSD, and PRN are interchangeable. Regardless of which you use, rats will accept commas, tabs, or spaces as separators. For creating a file with COPY, the option will determine the type of separator used: commas for CDF, tabs for TSD, and spaces for PRN.
Free format files can be very convenient if you want to type in a short data set, because you can create them with any editor that can save files as plain text. They are also the most natural format for data scanned in from printed material. However, because these files do not contain series labels or date information, they are not good for long-term use, and rats cannot read them with much flexibility. Usually, you will want to convert free-format files to rats format files, or to one of the spreadsheet formats.
Int120
Introduction to RATS
Data
prn format is a generally more useful and reliable. The presence of series names
reduces the chance of mistakes identifying data, and also give you the option of only reading in selected series. The ability to include date labels is clearly an advantage for dated time series data. If you have a text file that does have variable labels, or other non-numeric characters you could: read the file using FORMAT=PRN. This allows rats to process the series labels and dates (if any). import the data into a spreadsheet and read that file into rats (see Section 2.8). Spreadsheet programs have very sophisticated parsing dialogs for taking text and dividing it into spreadsheet cells. If you have an otherwise well-formatted text file which does not include series labels, you could: edit out all the non-numeric characters and read the file as FORMAT=FREE. edit the file to add series labels and read it as FORMAT=PRN.
When reading a free format file, rats reads series line by line, according to the following:
If your data are organized by row, each variable must begin on a new line. The data for a given series can, however, extend over more than one linejust make sure that the data for the next series begins on a new line. If DATA does not find enough entries on a line to fill a series, it automatically moves on to the next line and continues reading numbers. Extra rows of spaces are fine (for instance, separating data for two series). FORMAT=FREE will just keep scanning until it hits the next set of numbers. If your data are organized by column, the data for each new observation must begin on a new line. As above, data for a particular observation can extend over multiple lines. If DATA does not find enough entries on a line to fill all the series for an observation, it automatically moves on to the next line and continues reading numbers. When it has read data for all series for that observation, it drops to the next line to start reading in the next observation. rats interprets the characters NA or #N/A (upper or lower case), or a period followed by zero, one, or two non-numeric characters, as a missing value. If it encounters any other non-numeric characters, rats will interpret them as a missing observation and display a warning message.
Introduction to RATS
Int121
Data
Troubleshooting
Free format allows data for a single observation (or a single variable) to cover several lines. The disadvantage of this is that it becomes more difficult to pinpoint errors. If you forget one number early in the file, DATA will automatically pull in the next line to fill the omitted value, and throw the data off. If you get the error Unexpected end of file... when reading with FORMAT=FREE, it means that rats reached the end of the data file before it filled all of the data series. To determine what happened, do the following: Check your ALLOCATE setting or the start and end parameters on DATA to make sure they are set correctly. Note that if, for example, you have ALLOCATE 2003:5:14, you can do DISPLAY 2003:5:14 to see how many data points are implied by the ALLOCATE range. Make sure that you have the proper ORGANIZATION option. Check that the data file has the number of observations and variables that you expect, at least at first inspection. If all seems to be correct and its a small enough file, you can do a quick check for typographical errors. If all this fails to locate the problem, you will have to let DATA help you find the problem. For illustration, suppose you have a file that looks like this: 1,2,3 10.20,30 100,200,300 1000,2000,3000 This is supposed to have 4 observations on each of three series, but the second line has a decimal point between the 10 and the 20, where it should have a comma, so the line only contains two values (10.20 and 30) rather than three. If we read this with data(org=col) 1 4 first second third print we will get the error message,
Unexpected end of file while processing line 5. (series FIRST entry 4).
We can tell the following from this: 1. DATA thinks it needs a fifth line to read the requested data. Our data set is supposed to have four linesthis tells us that, in fact, the file has as many lines as we think. 2. rats was trying to read the fourth observation from a fifth line, so for some reason we are precisely one line off at the end of the file. We can then examine the values of the series with PRINT, looking for values which have ended up in the wrong series, or locating where a series gets off sequence.
Int122
Introduction to RATS
File Units
In rats, you open a file by associating a file name with an input/output unit. For example, the statement: open data myfile.txt simply associates the filename myfile.txt with the DATA unit, which is one of the reserved unit names in rats. Every rats instruction that can read or write data has a UNIT option which allows you to specify the source or destination unit for that operation. Fortunately, this business of file unit names is generally transparent to the user, because all of the relevant instructions have default settings for the UNIT option. For example, the DATA instruction applies to the DATA unit by default. So, you can read data from a file by simply doing something like: open data sample.rat data(format=rats)
Because DATA is the default unit for the DATA instruction, it will automatically read the data from the SAMPLE.RAT file, which has been associated with the DATA unit by the OPEN command. If no file has been associated with the DATA unit, rats will prompt you for a filename. In some cases, however, you may find it helpful to make use of the UNIT option, particularly when you want to have several data files or output files open simultaneously. This is made easy by the fact that rats lets you define your own unit names.
Introduction to RATS
Int123
Data
For example, suppose you want to read data from two different files in your program. You can either: Use an OPEN DATA command to associate the first file with the DATA unit, and then read the data in using DATA. Then, repeat this procedure for the second file: open data first.rat data(format=rats) / x open data second.rat data(format=rats) / y Or, you can define your own custom unit names, and associate one file with each name. You can then read from the files in any order by specifying the appropriate unit name. For example: open data1 first.rat open data2 second.rat data(format=rats,unit=data2) / y data(format=rats,unit=data1) / x Because you are using different unit names for each file, both files remain open, so you can go back and read from either one without having to repeat the OPEN command.
Int124
Introduction to RATS
3.. Graphics
SCATTER for x-y graphs, GCONTOUR for creating contour graphs, and GBOX for creating box plots. All of these instructions offer a very large collection of options, allowing you to create publication-quality graphs easily. In addition to a variety of basic graph types (such as line graphs and bar graphs), rats offers a number of special effects, such as overlay graphs (displaying data in two different forms or with two different scales in a single graph) and arrays of smaller graphs. You can also define graphics style sheets, which allow you to customize various attributes of your graphs, including colors, patterns, line thicknesses, and more. Finally, graphs created can be exported in several well-known formats (such as PostScript) for placement in documents.
ats offers four main graphing instructions: GRAPH for time-series graphs,
Displaying Graphs Saving and Printing Graphs Graph Style Sheets Exporting Graphs for Publication Graph Labels Special Graphs and Examples
GRAPH creates time series plots, or, more generally, plots of a series which is arranged as a sequence. The Graph wizard on the Data/Graphics menu generates a GRAPH instruction. You can produce line graphs, filled line graphs, several types of bar graphs, and high-low-close graphs. SCATTER creates scatter (x vs. y) plots. In addition to series vs. series, it does graphs where the x axis is a grid on the real line, either equally or unequally spaced. The Scatter(X-Y) wizard on the Data/Graphics menu generates a SCATTER instruction. GCONTOUR (Section 3.13) produces contour plots. GBOX (Section 3.14) produces box (or box and whisker) plots. These are very flexible instructions which allow you to create a wide variety of graphs. The auxiliary instructions SPGRAPH, GRTEXT, and GRPARM further enhance the abilities. With rats, you can: use color, dashed line patterns, or shades of gray to distinguish series. rats can automatically translate color into patterns or grayscale for output to black and white printers. generate a graph with series having different scales (which we refer to as overlay graphs) using a single GRAPH or SCATTER instruction (Section 3.7). The overlay options also allow you to mix different styles on a single graph. For example, you could plot one series as a line and another using a bar-graph style. create pages of equally sized postage-stamp graphs. This is done using SPGRAPH (Section 3.8). add explanatory text within the graph, done with GRTEXT (Section 3.9). use graph style sheets to set the color and thickness of lines, choose from a range of fill patterns for bar graphs, and more (Section 3.16). change fonts and font sizes, done with GRPARM (Section 3.18) The GRAPH and SCATTER instructions were introduced in the tutorial in Chapter 1. For complete details on these and the other instructions listed above, see the remainder of this chapter and the relevant sections in the Reference Manual.
Int126
Introduction to RATS
rats can render a graph either in color, or in black and white. Color is almost always
the easiest to view on the screen, so thats the standard way that graphs are shown, but most (print) publications still require graphs in black and white. If you need a grayscale graph, click on the toolbar icon: . If you copy or export the Graph Window, whether that is done in color or black and white will depend upon how you are showing the graph at the time. If you want to change back to color, just click on the same toolbar icon, which will now be in color. Grayscale graphs can be hard to read if you have lines that cross many times. If you have such a graph, you may need to either change the style numbers (page Int130), or define your own style sheets (page Int149).
If you want to save a graph so you can reload it later, you need to save it in rgf format (rats Graphics Format). To open a saved rats graph, select the Open... operation from the File menu, choose rats graphics from the list of file types, and then open the desired graph file. This will show the graph in a new Graph Window, exactly as if it has just been generated by the program.
rgf is designed for temporary storage of graphs. Its specification changes as we add
features to our graphics system, so you should only open files with the same version of rats that created them. It is, however, portable across systems, so a file can be shared by Windows, Mac and unix users as long as they are running the same version number of rats.
Introduction to RATS
Int127
Graphics
Printing
To print a Graph Window, do the following: 1. Make sure the desired graph window is active. 2. Select Print from the File menu, or click on the toolbar icon.
If you have a black and white printer, your graph will print with colors replaced by the black and white patterns, whether or not that is showing in your window. If its a color-capable printer, then the graph will print in color if youre showing the graph in color, or in black and white if thats what youre showing. Printers will allow you to choose between portrait and landscape mode. The results of the two choices are shown below. When youre printing a graph, youre more likely to use landscape, since it uses the full page. Portrait generally will only give a partial page since the graph itself is wider than it is tall, but the paper, in that orientation, is the reverse.
Portrait:
Portrait Mode
140
RATE IP PPI
Landscape:
100 120 140 20 40 60 80 0 1959 1962 1965 1968 1971 1974 1977 1980 1983 1986 1989 1992 1995
120
RATE IP PPI
100
80
60
Landscape Mode
40
20
0 1959 1962 1965 1968 1971 1974 1977 1980 1983 1986 1989 1992 1995
Int128
Introduction to RATS
Export the graph to one of the standard graphics file formats and then import the graph into your word-processor or page-layout program. Use EditCopy to copy a graph to the system clipboard, and then paste it into your word-processing application. Print a copy of your graph directly from rats and include this in your publication. For example, if you have Adobe Acrobat or similar software, you can print directly to a pdf format file. The first two are obviously more flexible, since most word processors will allow you to size and shape the graph to fit your document. Make sure that you have the desired settings for the proportions and color as discussed on page Int127. Those will be applied when exporting or copying the graph.
Exporting/Saving
To export a graph for placement into another application: 1. Make sure the desired graph window is active. 2. Choose the Export or Save As operation from the File menu or the icon. Select the desired format. toolbar
PostScript is the preferred format for this because it gives the most accurate translation of the graph, and works very well if you will be producing your output as a pdf file, or on a PostScript printer. pdf format should also work very well for any applications that support importing pdf files. wmf (Windows Metafile) can work well for color graphs, but isnt as good with patterns. Note that PostScript comes in two orientations, Portrait and Landscape. When you place the graph file on a page, these will have the same orientations shown on the previous page for printing. Portrait is the standard here, and is what we use in all the graphs in this manual other than samples of landscape.
To copy a graph to the clipboard: 1. Make sure the desired graph window is active. 2. Choose the Copy operation from the Edit menu or the toolbar icon. Windows versions copy both bitmap and Windows metafile versions of the graph to the clipboard, while Macintosh versions copy in pdf format. To paste the graph, switch to the other application and select the Paste or Paste Special... operation from the Edit menu (Paste Special... allows you to select the format that is pasted).
Introduction to RATS
Int129
you choose for the STYLE and OVERLAY options: for instance, the painted styles like bar, stacked bar, and polygonal all use fill patterns. For each category (line, fill, symbol) rats supports up to thirty different styles for color mode, and a corresponding thirty for black and white mode. Styles are identified and selected by number, from 1 to 30, plus style 0 which is used by the SHADE option (Section 3.11). The default styles used by rats have been chosen to be fairly easily distinguishable roughly for style numbers 1 through 10. You can use Graph Style Sheets (Section 3.16) to create your own definitions for the style numbers. By default, rats uses style number one for the first series being graphed (the series listed on the first supplementary card), style number two for the second series, and so on. You can use the stylenum parameter on the supplementary cards of GRAPH and SCATTER to select different styles. For example: graph 2 # x1 / 4 # x2 / 2
selects style number four for the X1 series and style number two for the X2 series.
rats normally displays graphs in color, using different colors to distinguish series.
In color mode, with the default style definitions, lines are drawn as solid lines in different colors, fill patterns as solid fills in different colors, and symbols using the same symbol in different colors. These usually are easy to distinguish.
rats switches to the corresponding black and white (grayscale) styles if you: print to
a black and white printer; use the ( ) toolbar button; or use the PATTERNS option on the graphing instruction. With the default styles, lines are drawn in black using different dash patterns to distinguish series. Fills are drawn using different hatch patterns, and different symbols (in black) are used.
If you have a graph with several intertwined lines, it can be hard to see the detail of the lines when you cant use color. The solid black (style 1) isnt the problem; its the dashed lines which lose detail and may seem to disappear at times. If you have one series which is fairly smooth and one which is more volatile, list the volatile one first so it gets style 1. If that wont work, you may need to use thicker solid grayscale linesstyles 8, 9, 10 and 11 are defined that way (this may look a bit odd in color). However, it may not be possible to make the graph work if its too busy, and you may need to think of a different way to show the data.
Int130
Introduction to RATS
Major Labels
The four main graphing instructions, as well as SPGRAPH, all offer HEADER, FOOTER, SUBHEADER, HLABEL, and VLABEL options. Their functions are shown in the graph below. In addition, in its title, the Graph Window will assume the name of the HEADER or the FOOTER (HEADER if you use both).
SUBHEADER is the second label at the top, immediately below the HEADER
80
60
40
20
0 10 20 30 40 50 60 70 80 90 100
Other Labels
When the main labels are used on SPGRAPH (Section 3.8), they are placed at these locations relative to the full graph page, and not to any single graph on it. You can use the XLABELS and YLABELS options on SPGRAPH to label the rows and columns of the graph matrix, or you can add the standard label types to the individual graphics instructions, which will add (smaller) labeling in the zone assigned to that graph. The GRTEXT instruction (Section 3.9) is a very flexible tool that allows you to add strings of text anywhere inside or in the margins of a graph. You can select the exact location, font, size, and style of the text string. SCATTER and GCONTOUR (Section 3.13) offer an XLABELS option to supply your own list of labels for the X-axis tick marks, while GBOX (Section 3.14) provides a LABELS option for labeling each of the series in the graph.
Introduction to RATS
Int131
Graphics
Supplying Labels
You can supply either a literal string of text enclosed in quotes, or a LABEL or STRING variable defined ahead of time (some options require a VECTOR of STRINGS). For example, the following GRAPH commands produce the same result: graph(header="US Real GDP") # rgdp
Constructing Strings
Quoted strings are fine for single graphs, but if you need to generate many standardized graphs, it can be rather tedious to duplicate code and hand edit it. Fortunately, all these options will permit you to use a STRING type variable instead of a quoted string. These can be constructed, or input (see below). compute header="Coherence of "+%l(x1)+" and "+%l(x2) graph(header=header,noticks) # coherenc compute header="Autocorrelations "+diffs+" x "+sdiffs graph(header=header,max=1.0,min=-1.0,style=bargraph) # corrs Note: %L(series) is a special function which returns the label of a series.
If you have a standardized program, but the headers or labels cant be constructed easily as they have no obvious pattern, make up a separate file with a list of headers (one per line) and read them in using the instruction READ: open data labels.rgf declare vector[string] header(230) read header do i=1,230 ... graph(header=header(i),...) # ... end do i
You can use two backward slash characters (\\) to insert line breaks in strings used in graphs. See the GRTEXT examples in Section 3.9.
Int132
Introduction to RATS
750
MANUFACTURING
500
SERVICES
RETAIL
250
AGRICULTURE
0 1960 1962 1964 1966 1968 1970 1972 1974 1976 1978 1980 1982 1984 1986 1988
Introduction to RATS
Int133
Use the OVERLAY option on your GRAPH or SCATTER instruction to tell rats to do an overlay graph. OVERLAY offers the same choices as STYLE, but it sets the style used for the overlaying (right-scale) series. The STYLE option itself applies only to the left-scale series. If you are only graphing two series (or two pairs of series for SCATTER), you dont need to do anything else. Just list the series on separate supplementary cards, as you would for an ordinary graph. The second series (or pair) are graphed using the OVERLAY style and scale. If graphing more than two series, use the OVCOUNT option to tell rats how many series should be graphed using the right-side (overlay) scale. For OVCOUNT=n, rats graphs the last n series (or pairs) listed using the right-side scale.
Notes
When you use the OVERLAY option, rats ignores the AXIS, EXTEND, and SCALE options on GRAPH and the AXIS, EXTEND and VSCALE options on SCATTER. This is because running an axis line or extending grid lines across the graph is likely to be very distracting, as they will apply to only one of the two scales. All other options, such as HEADER, HLABEL, and GRID, work normally. You can use the OVLABEL option to label the right-side scale. Use the standard VLABEL option if you want to label the left-side scale. The OMAX and OMIN options set the maximum and minimum values for the right-side scale. They function just like the MAX and MIN options, which will control only the left-side scale in a two-scale graph. If you want to use one of the painted styles, such as POLYGONAL or BARGRAPH, you should probably use that as the STYLE (left-scale), as these are drawn first. If you use a paint style for the overlaying series, they may cover up the first block of series. You can use the OVRANGE option to offset the two scales so they arent directly across from each other. OVRANGE=fraction gives each scale the given fraction of the verti-
Int134
Introduction to RATS
Graphics
cal size (fraction should be in the range 0.5 to 1.0). OVRANGE=.6 for instance will have them overlap only slightly (the left scale getting the bottom 60% and the right getting the top 60%).
Example
This simple example (from GRAPHOVERLAY.RPF) graphs two series. The series HSF (housing starts) is graphed using the POLYGONAL style, and its scale appears on the left side of the graph. The series FCME (mortgage rates) is graphed as a LINE, and uses the right-side scale. You will probably need to experiment with the stylenum parameters to get overlay graphs to look good. Here, we have used fill pattern 2 (medium gray) for the HST series, and line type 1 (solid black) for the FCME series. Without these, HST would be graphed using a solid black pattern (pattern 1), and FCME, which would be a dashed line, would not be as visible. We also used KLABEL to supply custom key labels. open data haversample.rat calendar(m) 1972 data(format=rats) 1972:1 1988:12 fcme hst graph(key=below,header="Housing Starts vs Mortgage Rates",$ klabel=||"Housing Starts","Mortgage Rate"||,$ style=polygonal,min=0.0,overlay=line) 2 # hst / 2 # fcme / 1
1500
500
Introduction to RATS
Int135
This SPGRAPH divides the available space in half in each direction, creating four zones of equal size. The graphs (by default) fill the zones by rows beginning at the top left. Note, however, that the characters on the small graphs are sized to be proportional to what they would be on a full page; that is, each quarter graph will look like a reduced version of the same graph done by itself. The labeling (particularly on the scales) can sometimes get too small to be readable, particularly if you get to four or more graphs in either direction. Depending upon the situation, you may want to increase the character sizes using GRPARM, or you might want to suppress the axis labeling altogether. To do this, use NOTICKS and SCALE=NONE on GRAPH and VSCALE=NONE and HSCALE=NONE on SCATTER or GCONTOUR. You also need to be careful that you do not leave false impressions by allowing each graph to find its own range. This could inflate the appearance of what may be, in reality, some very small effects. Most of the work in doing a matrix of graphs is, in fact, just preparation. The following (from example SPGRAPH.RPF) graphs the exchange rate of the dollar versus four foreign currencies. These are first given a common reference by converting them to percentage appreciation of dollars per foreign unit since the start of the sample. As all but the uk series (GBRUSXSR) are originally stated in foreign currency per dollar, they have to be flipped. We then use TABLE to get the maximum and minimum values attained across all the countries, and use these as the MAX and MIN on each GRAPH. This ensures that the very modest movements relative to the Canadian dollar arent exaggerated relative to the much larger movement versus the yen. The LABELS instruction is used to give a more readable label to the series, naming them by their country instead of the database coding. Their new labels are used in the GRAPH instructions within the loop on the HEADER option. cal(m) 1996:1 open data oecdsample.rat data(format=rats) 1996:1 1998:12 canusxsr frausxsr $ jpnusxsr gbrusxsr Flip to dollars per foreign unit and assign descriptive labels set canusxsr = 1.0/canusxsr set frausxsr = 1.0/frausxsr set jpnusxsr = 1.0/jpnusxsr labels canusxsr frausxsr jpnusxsr gbrusxsr # "Canada" "France" "Japan" "UK"
Int136
Introduction to RATS
Graphics
Convert to percent appreciation dofor i = canusxsr frausxsr jpnusxsr gbrusxsr compute base=([series]i)(1996:1) set i = 100*(i{0}/base - 1.0) end dofor i Use TABLE to get the maximum and minimum across all series table(noprint) / canusxsr frausxsr jpnusxsr gbrusxsr Set up the SPGRAPH for a 22 matrix spgraph(vfields=2,hfields=2,$ header="U.S. Dollar vs Major Currencies",$ subheader="Percent appreciation over the sample") dofor i = canusxsr frausxsr jpnusxsr gbrusxsr graph(max=%maximum,min=%minimum,header=%l(i)) 1 # i end dofor spgraph(done)
Japan
France
35 30 25 20 15 10 5 0 -5 1996 1997 1998 35 30 25 20 15 10 5 0 -5 1996
UK
1997
1998
Introduction to RATS
Int137
Graphics
Here is another example using SPGRAPH. This is taken from an example in Diebold (2004). The example program file (DIEBP235.RPF) is included with rats. spgraph(hfields=2,vfields=2,$ header="Figure 9.17 Recursive Analysis: Breaking Parameter Model") scatter # x y3 rls(cohist=cohist,sehist=sehist,sighist=sighist,csum=cusum) $ y3 / resids # x set upperco = cohist(1)+sehist(1)*2.0 set lowerco = cohist(1)-sehist(1)*2.0 graph(header="Recursive Estimates") 3 # cohist(1) # upperco 10 * # lowerco 10 * set upperres = 2.0*sighist set lowerres = -2.0*sighist graph(header="Recursive Residuals") 3 # resids # upperres # lowerres set cusum = cusum/sqrt(%seesq) set upper5 startr end = .948*sqrt(%ndf)*(1+2.0*(t-startr)/%ndf) set lower5 startr end = -upper5 graph(header="CUSUM test") 3 # cusum # upper5 # lower5 spgraph(done)
Figure 9.17 Recursive Analysis: Breaking Parameter Model
Data Series
640 560 480 400 320 240 160 80 0 -80 0 50 100 150 200 -2 -4 -6 20 40 60 80 100 120 140 160 180 200 4 2 0 8 6
Recursive Estimates
CUSUM test
175 150 125 100 75 50 25 0 -25 -50 20 40 60 80 100 120 140 160 180 200 250 200 150 100 50 0 -50 -100 -150 -200 20 40 60
Recursive Residuals
80
100
120
140
160
180
200
Int138
Introduction to RATS
Introduction to RATS
Int139
The following computes a series of AR1 regressions for a grid of values for r between .5 and 1.0 and graphs the residual sum of squares against r. This is from example file GRAPHFUNCTION.RPF. @GridSeries(from=.5,to=1.0,size=.005,pts=gpts) rhos set rss 1 gpts = 0.0 do i=1,gpts ar1(noprint,rho=rhos(i)) invest 1950:1 1985:4 # constant ydiff{1} gnp rate{4} compute rss(i)=%rss end do i scatter(style=lines,vlabel="Residual Sum of Squares",$ hlabel="Value of rho",header="Multiple Mode in AR1") # rhos rss
Multiple Mode in AR1
42000 39000
36000 33000 30000 27000 24000 21000 18000 0.5 0.6 0.7 0.8 0.9 1.0
Value of rho
Int140
Introduction to RATS
is from GRAPHOVERLAY.RPF. It puts shading over 1973:8 to 1974:12 and 1978:3 to 1981:11. You might find that you need to darken the shading for publication. To do that, redefine FILL_BW_0 (see page Int149). The default value is .90; if thats too light, you might try .85.
Introduction to RATS
Int141
Int142
Introduction to RATS
100
80
60
40
20
0 0 5 10 15 20
Introduction to RATS
Int143
Here, weve used the LABELS option to tell GBOX to use 1965 and 1983 as the labels for the two series, rather than the series names. In this case, we use in-line matrix notation to provide the VECTOR of STRINGS. This could also be done by storing the labels into a variable of type VECTOR[STRING] ahead of time: compute [vector[string]] gboxlab = ||"1965","1983"|| gbox(header="Taxes as Share of Output for 22 Countries",$ subheader="1965 vs 1983",labels=gboxlab,$ frame=half,extend) 2 etc.
1965 vs 1983
Int144
Introduction to RATS
Introduction to RATS
Int145
Graphics
High-Low-Close Graphs
You can use the option STYLE=VERTICAL for high-low-close graphs and the like. At each entry, it draws a line connecting the highest and lowest values and puts hash marks at the locations of the series. If there are three or more series, it puts a filled circle on the first series so it can be picked out easily. The example GRAPHHIGHLOW.RPF pulls monthly values of the Dow Jones Industrial Average into annual series. It uses three DATA instructions, one to get the maximum, one the minimum and one the final value during the year. Since each DATA instruction will reset SPDJI, the data are copied to a new series name after each. The close series should be listed on the first supplementary card so it gets tagged with a special symbol. For this graph, we look at results from 1982 through 2006. open data haversample.rat calendar(a) 1982:1 all 2006:1 data(format=rats,compact=max) / spdji set djmax = spdji data(format=rats,compact=min) / spdji set djmin = spdji data(format=rats,compact=last) / spdji set djlast = spdji graph(style=vertical,header="DJIA: 1982-2006") 3 # djlast # djmin # djmax
DJIA: 1982-2006
12500
10000
7500
5000
2500
0 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006
Int146
Introduction to RATS
Graphics
Forecasts
If you graph forecasts with the last few observations of historical data (as separate series), you will find there will be a break in the graph between the end of the historical data and the start of the forecasts. One way to improve the appearance is to add the final historical value to the beginning of the forecast series. That way, its line will connect smoothly with the historical series. The following (from GRAPHFORECAST.RPF) uses ESMOOTH (exponential smoothing) to forecast from 2007:1 to 2008:12. The final actual data value from 2006:12 is added at that entry to the forecast series (JPNFORE). A grid line is added to the graph at 2006:12. cal(m) 1960:1 open data oecdsample.rat data(format=rats) 1960:1 2006:12 jpniptotrs
esmooth(trend=select,seasonal=select,$ forecast=jpnfore,steps=24) jpniptotrs set jpnfore 2006:12 2006:12 = jpniptotrs graph(header="Forecasts of Japanese IP",grid=t==2006:12) 2 # jpniptotrs 2004:1 2006:12 # jpnfore 2006:12 2008:12
Forecasts of Japanese IP
130 125 120 115 110 105 100 95 2004 2005 2006 2007 2008
Introduction to RATS
Int147
Graphics
This is another example, taken from pages 349-360 of Diebold (2004). It includes upper and lower confidence bands, and shades the forecast area. The full example program (DIEBP348.RPF) and associated procedure files are included with rats. Set dummy variable FOREZONE to 1 for 1995:1 and later:
set forezone * 2010:12 = t>=1995:1
Graph the actual values, forecasts, and upper and lower bounds. Shading is applied where FOREZONE is non-zero. The stylenum parameter is used to specify line style 3 for both the upper and lower series:
graph(header=$ "Figure 12.17. Log Yen/Dollar Rate: History, Forecast and Realization",$ shading=forezone) 4 # logyen 1990:1 1996:12 # fyen 1995:1 1996:7 # upper 1995:1 1996:7 3 # lower 1995:1 1996:7 3
Int148
Introduction to RATS
For lines in color graphs: the line color, the pattern (solid line or one of seven dashed patterns), and thickness. For lines in grayscale graphs: the grayscale level, pattern, and thickness. For fill patterns (as used in bar graphs and similar styles) in color graphs: the color and the pattern, with seven patterns from which to choose (solid and six types of hatch patterns). For fill patterns in grayscale: the grayscale level and the pattern. For symbols in color graphs: the shape (twelve choices), the color, and whether or not the symbol is filled or not filled. For symbols in grayscale graphs: the shape, the grayscale level, and whether or not the symbol is filled or not filled.
To define your own styles, you need to create a text file containing the definitions (see below for details), and then read those definitions into rats using OPEN and GRPARM. You can create the text file with rats or any other text editor or word processor. Each style definition should appear on a separate line. You can define as many or as few of the styles as you want; if you dont redefine a style, it will just keep the previous settings. Youre most likely to want to redefine the black and white styles, since those will be used most often in publications. A line in the text file will take one of the following forms: LINE_COLOR_NN=pattern,color,thickness LINE_BW_NN=pattern,gray,thickness FILL_COLOR_NN=pattern,color FILL_BW_NN=pattern,gray SYMBOL_COLOR_NN=pattern,color,filled SYMBOL_BW_NN=pattern,gray,filled The first part of the definition specifies the type of representation you are defining (LINE, FILL, or SYMBOL). The second part (COLOR or BW) tells whether it is a color or black and white style.
Introduction to RATS
Int149
Graphics
The third part (NN) is the style number that youre defining. It should be between 0 and 30. Styles 1 through 30 can be selected by the user. Style 0 is reserved for shading performed using the SHADE option, so if you want to adjust the pattern or gray level used for shading, define the FILL_COLOR_0 and/or FILL_BW_0 styles. The arguments are as follows: pattern a number indicating the pattern choicesolid or dashed for lines, hatch pattern for fills, and symbol shape for symbols. See the next page for the available choices. is represented as a 24 bit (six digit) hexadecimal number. The first two hexadecimal digits are the level of red (00=no red to FF=red fully on), the next two are the level of green and the final two the level of blue. is a real number between 0 and 1 representing the degree of grayness (fraction of white). 0 means black, 1 means white. Note that its much easier to distinguish the lighter end of this (near 1) than the darker end: 0 and .25 look very similar, .90 and .95 look quite different. The default values for the first four black and white fills are solid black, solid .90 gray, solid .50 gray and solid .80 gray.
color
gray
thickness is a real-valued scale factor where 1.0 represents a standard line thickness. To make a line three times the standard thickness, use 3.0. filled is 0 for not filled (outline only) and 1 for filled.
Examples
The line graphs shown in Chapter 1 used a style set with these definitions: LINE_BW_01=0,0.00,1.0 LINE_BW_02=0,0.60,1.0 LINE_BW_03=0,0.80,1.0 Here, we are redefining the styles for the first three black and white line styles. The first value after the = selects line pattern 0 (a solid linesee next page) for all three. The second parameter sets the gray scale value. Here, we use solid black, 60% gray, and 80% gray. (Note again that in gray scale, a higher number is lighter). The third parameter sets the line thicknesswere using the default size of 1.0. Were only changing the black and white styles, so color versions of the graphs will use the default styles (solid lines, with black, blue, and green as the colors for the first three styles). But in black and white mode, the graphs will use solid lines in black, 60% gray, and 80% gray, respectively, rather than default of a solid line and two dashed line styles (all in black). We read these into rats from an external text file prior to generating the graphs using instructions like this: open styles graphstyles_00_60_80.txt grparm(import=styles)
Int150
Introduction to RATS
Graphics
If we wanted thicker lines, we could replace the 1.0 values above with 2.0 or 3.0 for lines that are twice or three times as thick.
Background Color
The default background color for the main graph box is white. You can redefine this color or pattern to be used by using the instruction GRPARM(BACKGROUND=stylenum)
Pattern Definitions
The available line, fill, and symbol choices are shown below. To select a line, fill, or symbol for a given style, use the number in the left-hand column as the pattern parameter. For example, SYMBOL_COLOR_2=1,FF0000,1 defines color symbol style number two as a red, filled square (1 being the pattern code for a symbol). Code Line Pattern Fill Pattern Symbol
0 1 2 3 4 5 6 7 8 9 10 11 12
Introduction to RATS
Int151
If you issue an OPEN PLOT instruction, any subsequent graphs you generate will be saved to the specified rgf format file, until you either do a CLOSE PLOT instruction, or use another OPEN PLOT instruction to open a different graph file. This works in both interactive and batch modes, and offers the option of saving multiple graphs to a single file. There is no problem with putting several pages of graphics on a single file if you just intend to print them. However, if you are going to reopen the graphs later for viewing or for translation to another format, you should put only one graph on a file. If your program generates several graphs, you can either use a separate OPEN PLOT instruction for each graph as shown below, or use the ENVIRONMENT GSAVE instruction. open plot gdp.rgf graph(header="US Real GDP") # gdp90 open plot consump.rgf graph(header="Consumption of Durable Goods") # gcd
The ENVIRONMENT instruction with the GSAVE=template parameter is your best choice for automatically saving multiple graphs into separate files (one graph per file), and for automatically saving files in formats other than rgf, such as PostScript. You just supply a filename template, and rats saves any subsequent graphs using that template plus a sequence number for the filename. The template will usually be a filename string that includes an asterisk (*) symbol. For each graph you generate, rats will construct a filename by replacing the asterisk with a sequence number, and save the graph using the constructed filename. Omit the asterisk if you want to save a single graph under a specific name.
Int152
Introduction to RATS
Graphics
By default, this saves graphs in rgf format. You can use the GFORMAT=format parameter to select other formats. Choices for the format parameter include: RGF, PORTRAIT, LANDSCAPE, WMF, and PDF, where PORTRAIT and LANDSCAPE are PostScript format, saved in portrait and landscape orientations, respectively (see page Int129). The availability of some formats is platform-dependent. The code below plots a series of impulse response graphs and saves them in a set of PostScript format files named ImpulseResp1.EPS, ImpulseResp2.EPS, and so on. environment gsave="ImpulseResp*.eps" gformat=portrait list ieqn = 1 to neqn do i=1,neqn graph(header=header(i),key=loleft,number=0) neqn cards impblk(i,ieqn) end do i
in your program (prior to the graphing instructions). This will spool the graphs to your default printer as they are generated.
Introduction to RATS
Int153
Examples
grparm(font="Symbol") axislabels 14 compute [vect[strings]] flabel=$ ||"0","p/6","p/3","p/2","2p/3","5p/6","p"|| scatter(style=line,vlabel="Coherence",vmin=0.0,vmax=1.0,$ xlabels=flabel) # freq coher The axis labels will be done in 14 point Symbol font. Although this choice affects both the horizontal and vertical axes, the numbers on the vertical axis will still be shown as numbers, since the Symbol font doesnt remap the numerical characters. However, the ps in the XLABELS option strings will be shown as ps. The seven character strings in FLABEL will be spaced equally (on center) from one end of the x-axis to the other.
Int154
Introduction to RATS
4.. Resources I
n addition to the information and examples presented here in the rats manuals, there are numerous other resources available that can help you get the most out of the program. We describe some of those here in this chapter.
Installing RATS Additional Documentation Examples and Procedures RATS Forum and Online Courses Technical Support
To install rats on your system, just drag the macrats folder from the cd to your hard drive. If you do not want to install all of the files included with rats, first create a new folder for rats on your hard drive, then open the rats folder on the cd and copy over only the components you wish to install.
To install rats on your system: 1. Insert the cd in your cd rom drive. 2. In most cases, the installation program still start automatically. If the installation program does not start automatically, you can run it manually by selecting the Run operation from the Start menu, typing in d:setup (where d is the drive containing the cd), and clicking on ok. File Locations By default, the core winrats application files will be installed in the subdirectory: C:\Program Files\Estima\WinraTS 8\ while all of the user files, including the example programs, procedures, and pdf documentation files will be installed in the rats user directory. By default, this will be a folder called WinRATS 8 in your Documents folder (My Documents on older versions of Windows). For example, under Windows 7, this would usually be: C:\Users\(username)\Documents\WinraTS 8\ which you can access using the Documents or My Documents shortcuts available in Windows. If you want to install the files in a different location, use the Custom button displayed on the Setup Types screen in the installer. You can control the locations of both the application files and the user files. For example, you may wish to install all of the user files in an easy-to-find location, such as C:\RATS The Custom installation button also allows you to choose which components you wish to install.
Int156
Introduction to RATS
In addition to pdf versions of this Introduction and the Users Guide and Reference Manual, you will find the following files providing additional information: An Additional Topics manual, covering some additional statistical topics and features not included in the Introduction, Users Guide and Reference Manual Short files (Procedures and Examples, Paper Replication Programs, and Textbook Examples) listing the examples and procedures included with rats. You may also find a Supplement pdf describing features and changes made to the program since these manuals were written.
In the Windows version, you can access the rats help system via the Help menu. Youll find quick references for all of the rats instructions, details on the various menus and dialog boxes, and other information on using rats. For Macintosh and unix/linux users, the help system is provided as a collection of html files. Double click on the rats Help shortcut icon in your rats folder to open the main page. From there, you can navigate to other help topics.
Introduction to RATS
Int157
you learn the program, and they can also provide frameworks you can modify to suit your own needs. We also include hundreds of rats procedures that greatly extend the capabilities of the program, allowing you to implement complex tasks with a single procedure call. See page Int32 for details. You will find the main set of examples and procedures located in your rats user directory (page Int156). Programs and data sets for replicating the examples from many popular econometric textbooks are provided in the TextbookExamples subdirectory. Similarly, the PaperReplicationExamples subdirectory offers program, data, and procedure files for replicating the results from many important papers. You may want to consult the pdf files listing the available examples and procedures to help locate those that may be of interest
All of the examples and procedures shipped with rats are also available on our website, along with dozens of others written by rats users around the world. You may find that the Procedure Browser and Search tools on the web site are the easiest ways to locate files of interest. You can find links to the examples and procedures by going to: www.estima.com and clicking on the Resources tab, then on Procedures/Examples. The Textbook Examples link takes you to lists of the example programs for the various textbooks, grouped by book. The Procedure Browser link takes you to a very handy tool for searching through the available files (excluding the textbook examples). You can also get to the Procedure Browser directly using this address: www.estima.com/cgi-bin/procbrowser.cgi The Browser allows you to search for files related to a particular subject area, or that reference a particular authors work or techniques. You can also search for recently added files, or limit the search to files that work with specific (older) versions of rats. Alternatively, you can use the Search tab on the site to do a general keyword search. This is particularly handy for locating relevant textbook examples (as these are not covered by the Procedure Browser) and applicable posts on our web forum.
Int158
Introduction to RATS
Estima also offers online courses delivered via private sections of the user forum on our website. Please see the
We also offer for sale the packages of course materials from previous courses. These packages include the pdf handbooks providing the instruction materials along with example programs and procedures developed for the course. Again, see the website for details on course materials.
Introduction to RATS
Int159
Your serial number will be printed on a label on the cd jacket. (Note that classroom rats doesnt include this). This serial number is your key to updates and technical help. You can use the Preferences dialog (on the File menu in Windows or unix, or the RATS menu on the Mac) to save your serial number in the registry for later reference. You may also want to write the serial number in your manual, or somewhere else handy where you can find it. If you are a new purchaser, please fill out the registration/address change form available on our website. This is especially important if you bought the program through a reseller or through your purchasing department as we will be unable to send you newsletters and other notices without an address. When contacting technical support, please supply your serial number so we can verify which version of rats you are using.
If you have access to e-mail, this is probably the best way for you to obtain technical support. You can provide us with a copy of your program and data set, and other very specific information about the nature of your question. This makes it much easier for us to resolve the problem or question, and to provide detailed answers. We try to respond to questions within one business day. Please be sure to use a descriptive subject line on your email. A message with a subject like "Please help" is all too likely to end up in a spam-filter folder. You can also contact us by calling the technical support number listed below. Technical support is available from Monday through Friday, 9 am to 5 pm US Central time. When you contact technical support please be able to provide the following: 1. Your serial number (found on the label on the cd envelope). We do spot checks to make sure that only those who have paid for the product get support. 2. The product name and version number (also from the original disk). 3. As much detail about your question as possible. In particular, if you are getting an error message you dont understand, be sure to include that error message in your e-mail, or have it handy to read to us over the phone. rats produces fairly specific and detailed error messages, so providing the specifics of any errors you encounter will make it much easier for us to diagnose the problem. As noted earlier, please dont submit same technical questions via both email and the forumchoose one medium or the other.
Int160
Introduction to RATS
Resources
You can contact technical support at: Voice: Email: Web site: FAX: Mail: (847) 864-1910 [email protected] www.estima.com (847) 864-6221 Estima 1560 Sherman Ave, Suite 510 Evanston, IL 60201
If you write or FAX us with a question, please remember to include your name and a phone or FAX number.
Many of these questions can be answered by checking the index and the table of contents in the manuals carefully, or by visiting our web site (www.estima.com), where your question may be addressed by the list of Frequently Asked Questions or by one of the many procedures and example programs available for downloading. If you cant find the answer there, you can e-mail, fax, or call our technical support department with your question. The answers to these sorts of questions generally fall into four categories: 1. Yes (and you should have known it by looking at the index or table of contents). Please be sure to check these first. 2. Yes, you can use the instruction ... 3. Yes, but it takes a little work (a short sequence of instructions). 4. No, or at least it would be very difficult and require extensive programming. Many of the suggestions made by users have helped to improve our product, so we try to be as helpful as we can. With types 2 and 3, we will usually tell you exactly how to do it. However, with type 4, we can only give you a general idea of what you have to do if you decide to press on.
Statistical Questions
rats has many capabilities which may be unfamiliar to some of you. If you decide
to explore some new territory, we will be happy to steer you to some good references or to explain how rats does particular computations. However, while we can help to clear up basic misunderstandings about the use of the rats instructions, we cannot give involved statistics lessons over the phone or email. If you are interested in discovering new techniques, watch the newsletter for information regarding upcoming courses.
Introduction to RATS
Int161
Resources
Bugs and Potential Bugs
In a program as complex as rats, there are undoubtedly some bugs remaining. In addition, because rats has many features of a programming language, it is quite possible for you to experience problems due to errors in your own code. The more complex your program, the more likely it is that the latter is true. If your program is not running correctly, you should do the following:
Check carefully that you are using the proper syntax on the instruction(s) causing the problem. See the Reference Manual in particular. If you are doing extensive operations with loops and COMPUTE instructions, put in some debugging statements (DISPLAY and PRINT are the most useful for this) to see where things go awry. Check the list of frequently asked questions, and the list of known bugs, available on our web site (www.estima.com). If, after all this, you have a strong suspicion that you have located a bug, contact Technical Support. If you have done a thorough job on the preceding steps, you can often ask a direct question such as Is there a known bug in ....?, and we may be able to give you a quick answer. If you have not been able to isolate the problem, we will almost certainly have to ask you to send us the input file and data and as much other information as you can supply.
The RATSletter
The RATSLetter is a newsletter for registered users. We distribute it (approximately) twice a year. It includes new product announcements, answers to common questions, bug reports, tips on the use of the program, lists of contributed procedures, among others. We would appreciate questions of general interest and suggestions. If you have a program or part of one which you are proud of, send it in and let the rest of the rats community see it.
Updates
We typically have a major update every two to three years, where we change the main version number and redo the documentation. Between these we have several minor updates, where we add features to the program, revise procedures, add new textbooks and paper replications, etc. Many of the most important features get added first in these minor updates since thats when we do most of the programming. If you want to stay up-to-date automatically, we have update subscription programs where you pay in advance to receive the updates at one fixed rate. See www.estima.com/updatesubs.shtml
www.estima.com
Our web site offers news and information on rats and other Estima products, answers to frequently asked questions, and many examples and procedures you can download.
Int162
Introduction to RATS
Bibliography
Diebold, F.X. (2004). Elements of Forecasting, 3rd Edition. Cincinnati: South-Western Greene, W.H. (2008). Econometric Analysis, 6th Edition. New Jersey: Prentice Hall. Hill, R.C., W.E. Griffiths, and G.C. Lim (2008). Principles of Econometrics, 3rd Edition. New York: Wiley. Makridakis, S., S.C. Wheelwright, and R.J. Hyndman (1998). Forecasting, Methods and Applications, 3rd Edition. Hoboken: Wiley. Pindyck, R. and D. Rubinfeld (1998). Econometric Models and Economic Forecasts, 4th Edition. New York: McGraw-Hill. Verbeek, M. (2008). A Guide to Modern Econometrics, 3rd Edition. New York: Wiley.
Introduction to RATS
Int163
Index
Symbols
operator, Int40. = operator, Int40. ; multiple statements per line, Int57. .AND. operator, Int41. .EQ. operator, Int41. .GE. operator, Int41. .GT. operator, Int41. .LE. operator, Int41. .LT. operator, Int41. .NE. operator, Int41. .NOT. operator, Int41. .OR. operator, Int41. {..} for lags in expressions, Int25. in regressor lists, Int78. @procedure, Int33. * for comments, Int73. for default entry, Int31. operator, Int40. ** operator, Int40. *= operator, Int40. / for default entries, Int31. operator, Int40. for integers, Int42. /= operator, Int40. \\ for line breaks, Int132. + operator, Int40. += operator, Int40. < operator, Int41. <= operator, Int41. <> operator, Int41. == operator, Int41. > operator, Int41. >= operator, Int41. || for in-line matrices, Int90. $ line continuation, Int57, Int75. %IF function, Int41, Int62, Int107. used with SET, Int63. %L function, Int132. %NA missing value, Int40. %PI constant, Int40. %RESIDS series, Int75. %ROUND function, Int42. %VALID function, Int41, Int63.
AR1 instruction, Int77. ARIMA models, Int64. Arithmetic expressions, Int40. Arrays, Int90. Autocorrelations graphing, Int145.
Batch mode graphs in, Int127. Benchmarking, Int62. Binary data, Int123.
CALENDAR instruction, Int21. Calendar wizard, Int8. CATALOG instruction, Int111. Comments, Int73. COMPUTE instruction, Int6. for matrices, Int90. Concatenation of strings, Int132. Conditional blocks, Int91. Constants, Int40. CONSTANT series, Int27. Continuation lines, Int57, Int75. COPY instruction, Int96, Int111. with spreadsheets, Int119. Cross sectional data, Int66. CRSP format, Int98. CUSUM test example, Int138. CVMODEL instruction, Int89.
Filter/Smooth, Int44. Graph, Int46. Scatter (X-Y) Graph, Int71. Transformations, Int26. Trend/Seasonals/Dummies, Int53. DATA instruction, Int22, Int96. changing data frequencies, Int 103. with holidays omitted, Int108. spreadsheet files, Int116. Data wizards, Int18. (Other Formats), Int19, Int43, Int103. (RATS Format), Int84, Int110. Dates range of, Int30, Int81. referring to, Int21. on spreadsheet files, Int114, Int119. DDV instruction, Int78. DEDIT instruction, Int111. DEFINE option, Int64. DELETE instruction, Int111. DIEBP228.RPF example, Int138. DIEBP235.RPF example, Int138. Differencing, Int62. Differencing wizard, Int26. DIF files, Int114. @DISAGGREGATE procedure, Int105. DISPLAY instruction, Int4. for matrices, Int90. DLM instruction, Int89. DOFOR instruction, Int91. DO instruction, Int91. Dummy variables, Int60, Int61. Durbin-Watson statistic, Int37. Dynamic Linear Models, Int89.
Data changing frequency of, Int104. cross-section, Int66. detrending, Int48. reading from a file, Int18, Int96. subset of, Int67. transformations, Int25. writing to a file, Int96. Data/Graphics menu Calendar, Int8. Create Series (Data Editor), Int9. Data Browsers, Int98. Data (Other Formats), Int18. Data (RATS Format), Int84.
EDIT instruction, Int111. Edit menu Comment-Out Lines, Int74. Copy as TeX, Int16. Format Comments, Int74. Show Last Error, Int80. To Lower Case, Int28. Uncomment Lines, Int74. ELSE instruction, Int92. Entry ranges, Int30, Int81. Equation/FRML wizard, Int86. Equations, Int64. Error messages, Int79. ESTIMATE instruction, Int78.
Introduction to RATS
Int165
Index
EViews work files, Int99. EXAMPLEFIVE.RPF example, Int66. EXAMPLEFOUR.RPF example, Int43. Example programs, Int158. EXAMPLESIX.RPF example, Int 84. EXAMPLETHREE.RPF example, Int17. Excel files, Int99, Int114. Exponential smoothing, Int48. Exponential Smoothing wizard, Int48. Expressions, Int40. logical, Int41. ODBC, Int99. PORTABLE, Int98. PRN, Int114. RATS, Int110. TSD, Int114. WF1, Int99. WKS, Int114. XLS, Int114. XLSX, Int114. Formulas, Int64. creating from regression, Int 64. FRED database, Int98. Frequency of data series changing, Int103. differing, Int34. FRML instruction, Int85. Functions using, Int41. window, Int56. wizard, Int46. Graph window, Int56, Int127. Graph wizard, Int46. Growth rates, Int62. GRPARM instruction, Int126. GRTEXT instruction, Int126.
Haver Analytics data, Int95. Holidays on data file, Int108. Hypothesis tests results of, Int11.
Fame format, Int98. Fan chart, Int149. File menu Clear Memory, Int18. Directory, Int34. New Editor/Text Window, Int 3, Int18. Files binary, Int123. formats, Int22. organization of data on, Int22. reading strings from, Int132. spaces in names, Int34. spreadsheet, Int114. Filtering, Int44. Filter/Smooth wizard, Int26, Int48. FIND instruction, Int89. Fitted values, Int64. for non-linear regression, Int 88. FIX function, Int42. FLOAT function, Int42. Fonts for graphs, Int133. Forecasts, Int53, Int64. graphing, Int147. static, Int64. FORMAT option, Int22. CDF, Int114. CITIBASE, Int98. CRSP, Int98. DIF, Int114. DTA, Int99. FAME, Int98. FREE, Int120. HAVER, Int98. MATLAB, Int100.
GARCH instruction, Int89. GCONTOUR.RPF example, Int 143. Goodness of fit, Int30. GRAPHBOXPLOT.RPF example, Int144. GRAPHFORECAST.RPF example, Int147. GRAPHFUNCTION.RPF example, Int140. GRAPHHIGHLOW.RPF example, Int146. GRAPH instruction, Int126. GRAPHOVERLAY.RPF example, Int135. Graphs autocorrelations, Int145. background, Int151. copying and pasting, Int129. displaying, Int46, Int127. exporting, Int129. fan charts, Int149. fonts on, Int154. highlighting entries, Int141. high-low-close, Int146. instructions for, Int126. keys/legends, Int132. labeling, Int131. orientation of, Int130. overlay/two-scale, Int134. patterns, Int151. preparing for publication, Int 129. scatter (X-Y) plots, Int71. shading, Int141.
IF instruction, Int92. INCLUDE instruction, Int111. Input window, Int7. Instructions long (splitting up), Int57, Int75. multiple per line, Int57. INSTRUMENTS instruction, Int 77. Integer numbers, Int42. Interpolating data, Int105. Interrupt program, Int7. I/O units tips on, Int123.
J K L
Labels on data files, Int115. for graphs, Int131. Landscape mode, Int130. LDV instruction, Int78. Least squares, Int27. Limited/Discrete Dependent Variables wizard, Int78. LIML. See Limited information maximum likelihood. Linear regressions, Int27. annotated output, Int35. Linear Regressions wizard, Int 35. LINREG instruction, Int28.
Int166
Introduction to RATS
Index
Logical operators, Int41. creating dummies using, Int61. LOOP instruction, Int91. LQPROG instruction, Int89.
Q R
Marginal significance levels, Int 11. MATLAB data files, Int99. Missing values, Int62, Int63. on data files, Int107. in expressions, Int42, Int63. %NA constant, Int40. Moving average, Int25. MWHP366.RPF example, Int142.
Neural networks, Int89. NLLS instruction, Int87. NNLEARN instruction, Int89. NNTEST instruction, Int89. Non-linear estimation, Int84. initial values, Int86. NONLIN instruction, Int85. Normalizing series, Int62. NPREG instruction, Int89.
OECD MEI data, Int95. OPEN instruction, Int34, Int96. Operators precedence, Int40. ORGANIZATION option, Int22. with free-format, Int121. Output window, Int7. Overlay graphs, Int134.
RATS Data File window, Int112. RATSDATA program, Int113. RATS format files instructions for, Int111. older versions of, Int113. RATS forum, Int159. Ready/Local button, Int7. Recursive Least Squares wizard, Int78. Recursive residuals graphing example, Int138. @REGACTFIT procedure, Int32. Regression format, Int78. Regressions output annotated, Int35. Regression Tests wizard, Int69. Relational operators, Int41. RENAME instruction, Int111. Report window, Int11, Int15, Int29. Residuals, Int75. Robust regression, Int77. ROBUST option, Int75. Rounding, Int5. RPF file type, Int58. RREG instruction, Int77. R-squared statistics, Int30. Run button, Int7.
Panel Data Regressions wizard, Int78. Picture codes, Int5. Portrait mode, Int130. Precedence of operators, Int40. PRG file type, Int58. PRINT instruction, Int59. PRJ instruction, Int64. forecasting with, Int64. PRN files, Int114. Procedures, Int32. PRTDATA instruction, Int111.
SAVE instruction, Int111. SCATTER instruction, Int71, Int126. Scatter plots, Int71. Scatter (X-Y) Graph wizard, Int 71. Scientific notation, Int40. Seasonal adjustment, Int52. dummies, Int61. Serial correlation tests for, Int37. Serial number, Int160. Series, Int9. compacting frequency, Int104. creating, Int9, Int25. dummy variables, Int61. editing, Int13. expanding frequency, Int105.
frequency of, Int103. missing values, Int62, Int107. names, Int22. print, Int59. reading from a file, Int96. transformations, Int25. Series Edit window, Int9, Int13. Series window, Int23, Int38. SET instruction, Int25. Simulations, Int65. Single-Equation Forecasts wizard, Int54. Smoothing, Int44. exponential, Int48. SMPL instruction, Int81. SMPL option, Int67. SPGRAPH instruction, Int126. SPGRAPH.RPF example, Int136. Spreadsheets adding dates to files, Int119. reading data from, Int114. Stata data files, Int99. STATISTICS instruction, Int24. Statistics menu Limited/Discrete Dependent Variables, Int78. Panel Data Regressions, Int 78. Recursive Least Squares, Int 78. Regressions, Int27. Regression Tests, Int69. Univariate Statistics, Int24. Stepwise regression, Int77. Stop button, Int7. STORE instruction, Int111. Strings concatenating, Int132. line breaks in, Int132. reading from files, Int132. STWISE instruction, Int77. Style Sheets graph, Int149. Sum of coefficients, Int77. Supplementary cards, Int28. SUR instruction, Int78. Syntax errors, Int79.
TABLE instruction, Int23. Technical support, Int160. TeX copy to, Int16. Textbook examples, Int158.
Introduction to RATS
Int167
Index
Time Series menu Exponential Smoothing, Int48. Single-Equation Forecasts, Int 54. Toolbar icons series edit window, Int14. series window, Int38. Transformations wizard, Int26. Trend/Seasonals/Dummies wizard, Int26, Int53, Int61. Trend series, Int53, Int60. Linear Regressions, Int35. Panel Data Regressions, Int 78. Recursive Least Squares, Int 78. Regression Tests, Int69. Scatter (X-Y) Graph, Int71. Single-Equation Forecasts, Int 54. Transformations, Int26. Trend/Seasonals/Dummies, Int26, Int53. Univariate Statistics, Int24. WKS files, Int114.
X Y Z
View menu, Int10. Change Layout Report Window, Int15. Series Edit Windows, Int13. Data Table, Int25. Series Window, Int12, Int38. Statistics, Int10, Int23. Time Series Graph, Int10.
WHILE instruction, Int91. Window, Int13. change layout, Int13. Graph, Int56, Int127. Input, Int7. Output, Int7. RATS Data File, Int112. Report, Int11. Series, Int23. toolbar, Int38. Series Edit, Int9. Window menu Close All Graphs, Int56. Report Windows, Int29. Use for Input, Int7. Use for Output, Int7. Wizards Data (Other Formats), Int18, Int103. Data (RATS Format), Int110. Differencing, Int26. Equation/FRML, Int86. Exponential Smoothing, Int48. Filter/Smooth, Int26, Int48. Graph, Int46. Limited/Discrete Dependent Variables, Int78.
Int168
Introduction to RATS