Chapter 35. Gretl and T
E
X
320
-editable. In addition, it does not use any non-standard style packages. Besides the standard L
A
T
E
X
document classes, the only files needed are, as noted above, the amsmath, dcolumn and longtable
packages. These shouldbe included in any reasonably full T
E
Ximplementation.
35.4 Installing and learning T
E
X
This is not the place for a detailed exposition of these matters, but here are a fewpointers.
So far as we know, every GNU/Linux distribution has a package or set of packages for T
E
X, and in
fact these are likely to be installed by default. Check the documentation for your distribution. For
MS Windows, several packaged versions of T
E
Xare available: one of the most popular is MiKT
E
X at
http://www.miktex.org/. ForMacOSXaniceimplementationisiT
E
XMac, athttp://itexmac.
sourceforge.net/.AnessentialstartingpointforonlineT
E
Xresources is the Comprehensive T
E
X
Archive Network (CTAN) athttp://www.ctan.org/.
As for learning T
E
X, many useful resources are available both online and in print. Among online
guides, Tony Roberts’ “L
A
T
E
X: from quick and dirty to style and finesse” is very helpful, at
http://www.sci.usq.edu.au/staff/robertsa/LaTeX/latexintro.html
An excellent source for advanced material is The L
A
T
E
XCompanion (Goossensetal.,2004).
Converter pdf to powerpoint - application software cloud:C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF in C#.net, ASP.NET MVC, WinForms, WPF
Online C# Tutorial for Creating PDF from Microsoft PowerPoint Presentation
www.rasteredge.com
Converter pdf to powerpoint - application software cloud:VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to PDF in vb.net, ASP.NET MVC, WinForms, WPF
VB.NET Tutorial for Export PDF file from Microsoft Office PowerPoint
www.rasteredge.com
Chapter 36
Gretl and R
36.1 Introduction
Ris, by far, the largest free statistical project.
1
Like gretl, it is a GNU project and the two have a
lot in common; however, gretl’s approach focuses on ease of use much more than R, which instead
aims to encompass the widest possible range of statistical procedures.
As is natural in the free software ecosystem, we don’t view ourselves as competitors to R,
2
but
rather as projects sharing a common goal who should support each other whenever possible. For
this reason, gretl provides a way to interact with R and thus enable users to pool the capabilities of
the two packages.
In this chapter, we will explain how to exploit R’s power from within gretl. We assume that the
reader has a working installation of R available and a basic graspof R’s syntax.
3
Despite several valiant attempts, no graphical shell hasgainedwide acceptancein the R community:
by and large, the standard method of working with R is by writing scripts, or by typing commands
at the R prompt, much in the same way as one would write gretl scripts or work with the gretl
console. In thischapter, the focus will be on the methods available to execute R commands without
leaving gretl.
36.2 Starting an interactive R session
The easiest way to use R from gretl is in interactive mode. Once you have your data loaded in gretl,
you can select the menu item “Tools, Start GNUR” and an interactive R session will be started, with
your dataset automatically pre-loaded.
Asimple example: OLS on cross-section data
For thisexample we use Ramanathan’s dataset data4-1, one of the sample filessupplied with gretl.
We first run, in gretl,an OLS regression of price on sqft, bedrms and baths. The basic results are
shown in Table36.1.
Table 36.1: OLS house price regression via gretl
Variable
Coefficient
Std. Error
t-statistic
p-value
const
129:062
88:3033
1:4616
0:1746
sqft
0:154800
0:0319404
4:8465
0:0007
bedrms
21:587
27:0293
0:7987
0:4430
baths
12:192
43:2500
0:2819
0:7838
1R’shomepageisathttp://www.r-project.org/.
2
OK, who arewekidding? Butit’sfriendly competition!
3
The main reference for R documentation ishttp://cran.r-project.org/manuals.html. In addition, R tutorials
abound onthe Net; as always, Google isyour friend.
321
application software cloud:C#: How to Use SDK to Convert Document and Image Using XDoc.
You may use our converter SDK to easily convert PDF, Word, Excel, PowerPoint, Tiff, and Dicom files to raster images like Jpeg, Png, Bmp and Gif.
www.rasteredge.com
application software cloud:C# PDF Convert: How to Convert MS PPT to Adobe PDF Document
Microsoft PowerPoint to PDF. |. Home ›› XDoc.Converter ›› C# Converter: PowerPoint to PDF. You maybe interested: PDF in C#,
www.rasteredge.com
Chapter 36. Gretl and R
322
We will now replicate the above results using R. Select the menu item “Tools, Start GNU R”. A
window similar to the one shown in figure36.1 should appear.
Figure 36.1: R window
The actual look of the R window may be somewhat different from what you see in Figure36.1
(especially for Windows users), but this is immaterial. The important point is that you have a
window where you can type commands to R. If the above procedure doesn’t work and no R window
opens, it means that gretl was unable to launch R. You should ensure that R is installedand working
on your system and that gretl knows where it is. The relevant settings can be found by selecting
the “Tools, Preferences, General” menu entry, under the “Programs” tab.
Assuming R was launched successfully, you will see notification that the data from gretl are avail-
able. In the background, gretl has arranged for two R commands to be executed, one to load the
gretl dataset in the form of a data frame (one of several forms in which R can store data) and one
to attach the data so that the variable names defined in the gretl workspace are available as valid
identifiers within R.
In order to replicate gretl’s OLS estimation, go into the R windowand type at the prompt
model <- lm(price ~ sqft + bedrms + baths)
summary(model)
You should see something similar to Figure36.2. Surprise—the estimates coincide! To get out, just
close the R window or type q() at the R prompt.
Time series data
We now turn to an example which uses time series data: we will compare gretl’s and R’s estimates
of Box and Jenkins’ immortal “airline” model. The data are contained in the bjg sample dataset.
The following gretl code
open bjg
arima 0 1 1 ; 0 1 1 ; lg --nc
produces the estimates shown in Table36.2.
application software cloud:XDoc.Converter for .NET, Support Documents and Images Conversion
file converter SDK supports various commonly used document and image file formats, including Microsoft Office (2003 and 2007) Word, Excel, PowerPoint, PDF, Tiff
www.rasteredge.com
application software cloud:Online Convert PowerPoint to PDF file. Best free online export
Online Powerpoint to PDF Converter. Download Free Trial. Convert a PPTX/PPT File to PDF. Just upload your file by clicking on the blue
www.rasteredge.com
Chapter 36. Gretl and R
323
Figure 36.2: OLS regression on house prices via R
Table 36.2: Airline model from Box and Jenkins (1976) – selected portion of gretl’s estimates
Variable
Coefficient
Std. Error
t-statistic
p-value
1
0:401824
0:0896421
4:4825
0:0000
Ò
1
0:556936
0:0731044
7:6184
0:0000
Variance of innovations
0:00134810
Log-likelihood
244:696
Akaike information criterion
483:39
application software cloud:RasterEdge XDoc.PowerPoint for .NET - SDK for PowerPoint Document
Able to view and edit PowerPoint rapidly. Convert. Convert PowerPoint to PDF. Convert PowerPoint to HTML5. Convert PowerPoint to Tiff. Convert PowerPoint to Jpeg
www.rasteredge.com
application software cloud:C# WinForms Viewer: Load, View, Convert, Annotate and Edit
View PDF in WPF; C#.NET: View Word in WPF; C#.NET: View Excel in WPF; C#.NET: View PowerPoint in WPF; C#.NET: View Tiff in WPF. XDoc.Converter for C#; XDoc.PDF
www.rasteredge.com
Chapter 36. Gretl and R
324
If we now open an R session as described in the previous subsection, the data-passing mechanism
is slightly different. Since our data were defined in gretl as time series, we use an R time-series
object (ts for short) for the transfer. In this way we can retain in R useful information such as the
periodicity of the data and the sample limits. The downside is that the names of individual series,
as defined in gretl, are not valididentifiers. In order to extract the variable lg, one needs to use the
syntax lg <- gretldata[, "lg"].
ARIMA estimation can be carried out by issuing the following two R commands:
lg <- gretldata[, "lg"]
arima(lg, c(0,1,1), seasonal=c(0,1,1))
which yield
Coefficients:
ma1
sma1
-0.4018
-0.5569
s.e.
0.0896
0.0731
sigma^2 estimated as 0.001348: log likelihood = 244.7,
aic = -483.4
Happily, the estimates again coincide.
36.3 Running an R script
Opening an R window and keying in commands is a convenient method when the job is small. In
some cases, however, it would be preferable to have R execute a script prepared in advance. One
way to do this is via the source() commandin R. Alternatively, gretl offers the facility to edit an R
script and run it, having the current dataset pre-loadedautomatically. Thisfeature can be accessed
via the “File, Script Files” menu entry. By selecting “User file”, one can load a pre-existing R script;
if you want to create a new script instead, select the “New script, R script” menu entry.
Figure 36.3: Editing windowforR scripts
In either case,you are presentedwith a windowvery similar to the editor window usedfor ordinary
gretl scripts, as in Figure36.3.
There are two main differences. First, you get syntax highlighting for R’s syntax instead of gretl’s.
Second, clicking on the Execute button (the gears icon), launches an instance of R in which your
commands are executed. Before R is actually run, you are asked if you want to run R interactively
or not (see Figure36.4).
An interactive run opens an R instance similar to the one seen in the previous section: your data
will be pre-loaded (if the “pre-load data” box is checked) and your commands will be executed.
Once this is done, you will find yourself at the R prompt, where you can enter more commands.
application software cloud:C# powerpoint - Convert PowerPoint to PDF in C#.NET
RasterEdge Visual C# .NET PowerPoint to PDF converter library control (XDoc.PowerPoint) is a mature and effective PowerPoint document converting utility.
www.rasteredge.com
application software cloud:VB.NET PDF Converter Library SDK to convert PDF to other file
editing if they integrate this VB.NET PDF converter control with for converting MicroSoft Office Word, Excel and PowerPoint document to PDF file in VB
www.rasteredge.com
Chapter 36. Gretl and R
325
Figure 36.4: Editing windowforR scripts
Anon-interactive run, on the other hand, will execute your script, collect the output from R and
present it to you in an output window; R will be run in the background. If, for example, the script
in Figure36.3 is run non-interactively, a window similar to Figure36.5 will appear.
Figure 36.5: Output from a non-interactive Rrun
36.4 Taking stuff back and forth
As regards the passing of data between the two programs, so far we have only considered passing
series from gretl to R. In order to achieve a satisfactory degree of interoperability, more is needed.
In the following sub-sections we see how matrices can be exchanged, and how data can be passed
from R back to gretl.
Chapter 36. Gretl and R
326
Passing matrices from gretl to R
For passing matrices from gretl to R, you can use the mwrite matrix function described in section
15.6.Forexample,thefollowinggretlcodefragmentgeneratesthematrix
A
2
6
6
6
6
4
3
7
11
4
8
12
5
9
13
6 10 14
3
7
7
7
7
5
and stores it into the file mymatfile.mat.
matrix A = mshape(seq(3,14),4,3)
err = mwrite(A, "mymatfile.mat")
The R code to import such a matrixis
A <- as.matrix(read.table("mymatfile.mat", skip=1))
Although in principle you can give your matrix file any valid filename, a couple of conventions
may prove useful. First, you may want to use an informative file suffix such as “.mat”, but this
is a matter of taste. More importantly, the exact location of the file created by mwrite could be
an issue. By default, if no path is specified in the file name, gretl writes matrix files in the current
working directory. However, it may be wise for the purpose at hand to use a directory that isknown
to be writable by the user, namely the user’s “dotdir”(see section14.2). This can be achieved on the
gretl side by passing a non-zero integer as the (optional) third argument to mwrite; on the R side
you can use the function gretl.loadmat, which is pre-definedwhen R is called from gretl.
4
So the
above example may be rewritten as
Gretl side:
mwrite(A, "mymatfile.mat", 1)
Rside:
A <- gretl.loadmat("mymatfile.mat")
Passing data from R to gretl
For passing data in the opposite direction, gretl defines a special function that can be used in the R
environment. An R object will be written as a temporary file in gretl’sdotdir directory, from where
it can be easily retrieved from within gretl.
The name of this function is gretl.export(); it takes one required argument, the object to be
exported. At present, the objects that can be exported with this method are matrices, data frames
and time-series objects. The function creates a text file, by default with the same name as the
exported object (plus an appropriate suffix), in gretl’s temporary directory. Data frames and time-
series objects are stored as CSV files, and can be retrieved by using gretl’s append command.
Matrices are stored in a special text format that is understood by gretl (see section15.6); the file
suffix is in this case .mat, and to read the matrix in gretl you must use the mread() function.
This function also has an optional second argument, namely a string which specifies a basename
for the export file, in case you want to use a name other than that attached to the object within R.
As in the default case an appropriate suffix, .csv or .mat, will be added to the basename.
4
Incase youneed todo this sortofthing manually, you can usethebuilt-in string variable dotdirin gretl, whilein R
you havethe same variableunderthename gretl.dotdir.
Chapter 36. Gretl and R
327
As an example, we take the airline data and use them to estimate a structural time series model à
laHarvey(1989). The model we will use is the Basic Structural Model (BSM), in which a time series
is decomposed into three terms:
y
t

t
t
"
t
where 
t
is a trend component, 
t
is a seasonal component and "
t
is a noise term. In turn, the
following is assumed to hold:
Ñ
t
t 1

t
Ñ
t
t
Ñ
s
t
Ñ!
t
where Ñ
s
is the seasonal differencing operator, 1  L
s
, and 
t
,
t
and !
t
are mutually uncorre-
lated white noise processes. The object of the analysis is to estimate the variances of the noise
components (which may be zero) and to recover estimates of the latent processes 
t
(the “level”),
t
(the “slope”) and
t
.
Gretl does not provide (yet) a command for estimating this class of models, so we will use R’s
StructTS commandand import the results back into gretl. Once the bjg dataset is loadedin gretl,
we pass the data to R and execute the following script:
# extract the log series
y <- gretldata[, "lg"]
# estimate the model
strmod <- StructTS(y)
# save the fitted components (smoothed)
compon <- as.ts(tsSmooth(strmod))
# save the estimated variances
vars <- as.matrix(strmod$coef)
# export into gretl’s temp dir
gretl.export(compon)
gretl.export(vars)
Running this script via gretl produces minimal output:
current data loaded as ts object "gretldata"
wrote /home/cottrell/.gretl/compon.csv
wrote /home/cottrell/.gretl/vars.mat
However, we are now able to pull the results back into gretl by executing the following commands,
either from the console or by creating a small script:
string fname
sprintf fname "%s/compon.csv", $dotdir
append @fname
vars = mread("vars.mat", 1)
The first commandreads the estimatedtime-seriescomponentsfrom a CSV file, which is theformat
that the passing mechanism employs for series. The matrix vars is readfrom the file vars.mat.
After the above commands have been executed, three new series will have appeared in the gretl
workspace, namely the estimates of the three components; by plotting them together with the
original data, you should get a graph similar to Figure36.6. The estimates of the variances can be
seen by printing the vars matrix, as in
? print vars
vars (4 x 1)
Chapter 36. Gretl and R
328
4.6
4.8
5
5.2
5.4
5.6
5.8
6
6.2
6.4
6.6
1949
1955
1961
lg
4.6
4.8
5
5.2
5.4
5.6
5.8
6
6.2
1949
1955
1961
level
0.01
0.01005
0.0101
0.01015
0.0102
0.01025
1949
1955
1961
slope
-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
0.25
0.3
1949
1955
1961
sea
Figure 36.6: Estimated components from BSM
0.00077185
0.0000
0.0013969
0.0000
That is,
ˆ
2
0:00077185; ˆ
2
0; ˆ
2
!
0:0013969; ˆ
2
"
0
Notice that, since ˆ
2
 0, the estimate for 
t
is constant and the level component is simply a
random walk with a drift.
36.5 Interacting with R from the command line
Up to this point we have spoken only of interaction with R via the GUI program. In order to do the
same from the command line interface, gretl provides the foreign command. This enables you to
embed non-native commands within a gretl script.
A“foreign” block takes the form
foreign language=R [--send-data[=list]] [--quiet]
... R commands ...
end foreign
and achieves the same effect as submitting the enclosed R commands via the GUI in the non-
interactive mode (see section36.3 above). The --send-data option arranges for auto-loading of
the data present in the gretl session, or a subset thereof specified via a named list. The --quiet
option prevents the output from R from being echoed in the gretl output.
Usingthis method, replicating the example in the previous subsection is rather easy: basically,all it
takes is encapsulating the content of the R script in a foreign...end foreign block; see example
36.1.
Chapter 36. Gretl and R
329
Example 36.1: Estimationof the Basic Structural Model – simple
open bjg.gdt
foreign language=R --send-data
y <- gretldata[, "lg"]
strmod <- StructTS(y)
compon <- as.ts(tsSmooth(strmod))
vars <- as.matrix(strmod$coef)
gretl.export(compon)
gretl.export(vars)
end foreign
append @dotdir/compon.csv
rename level lg_level
rename slope lg_slope
rename sea lg_seas
vars = mread("vars.mat", 1)
Example 36.2: Estimation of the Basic Structural Model – via a function
function list RStructTS(series myseries)
smpl ok(myseries) --restrict
sx = argname(myseries)
foreign language=R --send-data --quiet
@sx <- gretldata[, "myseries"]
strmod <- StructTS(@sx)
compon <- as.ts(tsSmooth(strmod))
gretl.export(compon)
end foreign
append @dotdir/compon.csv
rename level @sx_level
rename slope @sx_slope
rename sea @sx_seas
list ret = @sx_level @sx_slope @sx_seas
return ret
end function
# ------------ main -------------------------
open bjg.gdt
list X = RStructTS(lg)
Documents you may be interested
Documents you may be interested