Difference between revisions of "Main Page"

From ECLR
Jump to: navigation, search
(Freely available toolboxes)
(Econometric Computing Learning Resource (ECLR))
 
(30 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
  
 
== Econometric Computing Learning Resource (ECLR) ==
 
== Econometric Computing Learning Resource (ECLR) ==
  
This is the home of the ECLR. It is the purpose of this resource to facilitate the learning of '''MATLAB''' as an Econometric software.
+
This is the home of the ECLR. It is the purpose of this resource to facilitate the application of Econometric techniques. There exist numerous software packages that can be used to solve Econometric problems. Some of them are menu driven (e.g. EVIEWS) and are great to tackle standard econometric problems. Others require more programming but therefore also allow the user to tackle non-standard problems. This resource provides support material for the use of [[EVIEWS]], [[R]] and [[MATLAB]]. [[Python]] material is currently being developped.
 
 
Why do you need to learn MATLAB?
 
It is a widely used programming environment for Economists and many academics write and publish code in MATLAB. If you just want to run a simple regression in MATLAB it will (initially) take you longer to get to the results than in other menu driven software packages such as EVIEWS. However, if you want to achieve nonstandard things (and working on a PhD or even a MSc you are bound to want to do non-standard things) the picture is very different. A menu driven software package may do some related things but often not exactly what you want. Even if the software package has a "button" to do what you want to do, it is often badly documented what exactly happens underneath the hood. But most importantly, many nonstandard things just cannot be done in menu driven software. This is were MATLAB (or other software packages like GAUSS or OX) comes to the rescue. At the core it has nothing to do with econometrics. It is a matrix algebra maths programme in which you can do with data (stored in matrices) whatever you want. When we say whatever, then this is to be understood almost literally. And that is the point.
 
There are a number of great advantages once you are familiar with MATLAB:
 
 
 
# You can easily repeat the same analysis with another dataset.
 
# For some analysis there are some very repetitive things you got to do. In some cases, writing a program will eliminate the need to do essentially the same thing many times. You instruct the software to do the repetitive work for you.
 
# By writing a MATLAB program (or script) you essentially also create a record of what you do. This is extremely useful when it comes to understanding previous work and to identify mistakes. This is possibly the most important advantage of writing your own programs.
 
 
 
If you did any programming in any other programming language, such as Visual Basic, C, C++, GAUSS, etc. you will recognise a lot of common patterns. Learning how to use MATLAB to do econometrics is 100% a trial and error process and hence this wiki will provide guidance but you will have to practice yourself.
 
 
 
A similar page exists for the following softwares:
 
* [[EVIEWS]]
 
 
 
== <div id="Essential"></div>The Essential MATLAB Programming Techniques ==
 
 
 
In this section we will introduce a number of basic and intermediate programming techniques. Whatever language you program in you will encounter these techniques, although the details will, of course, vary. We recommend that you ensure that you are familiar with these before you progress to [[#SpecEcmtrTopics| Special Econometric Topics ]].
 
 
 
=== Basic Programming ===
 
 
 
{| class="wikitable"
 
|-
 
! scope="col"| Basics and<br>Matrices
 
! scope="col"| Loading Data and<br>Date Formats
 
! scope="col"| Program Flow and<br>Logicals
 
! scope="col"| Functions
 
! scope="col"| Saving Dataand<br>Screen Output
 
|-
 
| [[Discussion]] <br> [http://www.youtube.com/watch?v=av5MgVpybT0&feature=youtu.be&hd=1 Example Clip]
 
| [[LoadingData|Discussion]] <br/>[http://youtu.be/jyb68zGM2ik?hd=1 ExampleClip]
 
| [[Program Flow and Logicals|Discussion]]
 
| [[Function|Discussion]] <br/> [[FctExampleCode|Example Code]] <br/> [[media:OLSexample.xls|OLSexample.xls]] <br> [http://youtu.be/FPw9DH8pfiU?hd=1 Example Clip]
 
| [[SavingData|Discussion]]
 
|}
 
  
After having gone through these basic techniques you may want to test your newly acquired skills with the following examples.  
+
This page will not really teach Econometrics, although it will provide sufficient econometric background to facilitate the implementation of the different econometric techniques. To do any serious econometrics you need to have some basic statistics knowledge. On this page [[Statistics]] you can review some of the required statistical background.
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! scope="col"| Example 1
+
! scope="col"| Programming<br> Languages
! scope="col"| Example 2
+
! scope="col"|  
 +
! scope="col"|
 +
! scope="col"| Menu-driven<br>software
 +
! scope="col"|
 +
! scope="col"| Statistics<br>Introduction
 +
! scope="col"| Maths<br>Introduction
 
|-
 
|-
| [[Example 1]]
+
| [[MATLAB|MATLAB]]
| [[Example 2|Example2a]]<br>[[Example 2b|Example2b]]
+
| [[Python|Python]]
 +
| [[R|R (RStudio)]]
 +
| [[EVIEWS|EVIEWS]]
 +
|
 +
| [[Statistics|Statistics Intro]]
 +
| [[Maths|Maths Intro]]
 
|}
 
|}
  
=== Intermediate Programming ===
+
== Should you learn programming to do Econometrics? ==
 +
First, the answer to this question is often no. If you need to apply a very standard econometric technique and don't have to do that too often, then it may well be that a menu driven software package (like EVIEWS) is exactly the right way to go.
  
{| class="wikitable"
+
However, if you want to achieve nonstandard things (and working on a PhD or even a MSc you are bound to want to do non-standard things) the picture is very different. A menu driven software package may do some related things but often not exactly what you want. Even if the software package has a "button" to do what you want to do, it is often badly documented what exactly happens underneath the hood. But most importantly, many nonstandard things just cannot be done in menu driven software. This is were MATLAB (or other software packages like GAUSS or OX) comes to the rescue. At the core it has nothing to do with econometrics. It is a matrix algebra maths programme in which you can do with data (stored in matrices) whatever you want. When we say whatever, then this is to be understood almost literally. And that is the point.
|-
 
! scope="col"| Statistical<br>Functions
 
! scope="col"| Arrays and<br>Structures
 
! scope="col"| Debugging
 
! scope="col"| Graphing Data
 
! scope="col"| Function Handlers<br> Anonymous Functions
 
|-
 
| [[StatFunct|Discussion]]
 
| [[ArrayStructures|Discussion]]
 
| coming soon
 
| coming soon
 
| [[Anonym|Discussion]]
 
|}
 
  
=== Advanced Programming ===
+
Therefore, there are powerful reasons why you may want to learn to use a proper programming language to solve your econometric problem:
  
Sorry, but this cannot be taught! It will come with experience. Find someone who has experience in MATLAB programming and let him or her look over your code.
+
# You can easily repeat the same analysis with many more dataset.
 +
# For some analysis there are some very repetitive things you got to do. In some cases, writing a program will eliminate the need to do essentially the same thing many times. You instruct the software to do the repetitive work for you.
 +
# By writing a MATLAB program (or script) you essentially also create a record of what you do. This is extremely useful when it comes to understanding previous work and to identify mistakes. This is possibly the most important advantage of writing your own programs.
 +
# By having to instruct your computer what to actually do, you properly learn the underlying Econometrics. In other words, programming can be an awesome econometric learning tool.
  
== Nonlinear Optimisation ==
+
If you did any programming in any other programming language, such as Visual Basic, C, C++, GAUSS, etc. you will recognise a lot of common patterns. Learning how to use MATLAB to do econometrics is 100% a trial and error process and hence this wiki will provide guidance but you will have to practice yourself.
 
 
The optimal parameters in a linear econometric model (assuming certain assumptions) can be found analytically. We call them the Ordinary Least Squares (OLS) estimates and they are easily calculated with a certain formula (see the [[FctExampleCode#OLSestm|OLSest.m]] function). When econometric models do not have such an analytical solution, an alternative parameter estimation strategy is required. In essence it is a clever "trial and error" strategy. This is often called nonlinear optimisation.
 
 
 
Nonlinear optimisation is a very important, but also a very tricky area of econometric computing. It certainly helps to understand some of the underlying theory and therefore we have below separate sections on the theory and implementation.
 
 
{| class="wikitable"
 
|-
 
! scope="col"| Theory
 
! scope="col"| Implementation
 
! scope="col"| Constrained <br>Optimisation
 
|-
 
| [[NonlinOptTheory| Discussion]]
 
| [[NonlinOptImp| Discussion]]
 
| [[ConNonlinOptImp| Discussion]]
 
|}
 
 
 
== <div id="SpecEcmtrTopics"></div> Special Econometric Topics ==
 
 
 
Topics in this Section will assume that you have mastered all the techniques covered in the [[#Essential| Essential Programming Section ]]
 
 
 
{| class="wikitable"
 
|-
 
! scope="col"| Robust standard<br>errors
 
! scope="col"| Univariate<br>Time Series
 
! scope="col"| Unit Root and<br>Stationarity Testing
 
|-
 
| [[RobInf|Discussion]]<br>[[ExampleCodeOLShac|Example Code]]
 
| [[UniTS|Discussion]]<br>[[media:FXrateUSEU.xls|FXrateUSEU.xls]]<br>[[media:USGDP.xls|USGDP.xls]]
 
| coming soon
 
|}
 
 
 
{| class="wikitable"
 
|-
 
! scope="col"| Maximum<br>Likelihood
 
! scope="col"| Generalized<br>Methods of Moments
 
! scope="col"| Instrumental<br>Variables
 
|-
 
| [[MaxLik|Discussion]]<br>[[MaxLikCode|Example Code]]
 
| coming soon
 
| coming soon
 
|}
 
 
 
{| class="wikitable"
 
|-
 
! scope="col"| Monte-Carlo/<br>Simulation Techniques
 
! scope="col"| Binary Response<br>Models
 
! scope="col"| Handling High<br>Frequency Data
 
|-
 
| coming soon
 
| coming soon
 
| coming soon
 
 
 
|}
 
  
 
== Authors, Maintenance and Contributions ==
 
== Authors, Maintenance and Contributions ==
Line 129: Line 44:
 
This wiki was created by [mailto:ralf.becker@manchester.ac.uk Ralf Becker] and [mailto:arthur.sinko@manchester.ac.uk Arthur Sinko] with the financial support of a University of Manchester Investing in Success grant. If you have any suggestions please contact us by email. Contributions to this wiki are encouraged. Please contact us for details.
 
This wiki was created by [mailto:ralf.becker@manchester.ac.uk Ralf Becker] and [mailto:arthur.sinko@manchester.ac.uk Arthur Sinko] with the financial support of a University of Manchester Investing in Success grant. If you have any suggestions please contact us by email. Contributions to this wiki are encouraged. Please contact us for details.
  
== Other useful MATLAB resources ==
 
=== Freely available toolboxes ===
 
 
The following toolboxes are freely available and contain extremely useful procedures
 
 
* Spatial Econometrics by James P. LeSage [http://www.spatial-econometrics.com/]. This toolbox contains a wide variety of useful econometrics functions. It also contains an excellent documentation. In addition to quite general econometric functions you will, as the name suggests, find a huge list of functions relevant if you are working with spatial data.
 
* <div id="MFEtoolbox"></div>Oxford MFE toolbox by Kevin Sheppard [https://bitbucket.org/kevinsheppard/mfe_toolbox]. This toolbox contains many useful functions for uni- and multivariate volatility models.
 
 
You need to copy these toolboxes into your MATLAB toolbox folder and add the respective path to the MATLAB list of folders it searches for functions. (In the main menu select FILE and then SET PATH where you can add the folders you added.)
 
 
=== Literature and other learning resources ===
 
* [https://bitbucket.org/kevinsheppard/mfe_toolbox : Kevin Sheppard's MATLAB introduction]. Use the download link in the box on the right that starts with "Owner: Kevin Sheppard".
 
* [http://www.hec.unil.ch/matlabcodes/econometrics.html : Eric Jondeau and Michael Rockinger's webpage with MATLAB codes]
 
* Martin V., Hurn S. and Harris D. (2012) Econometric Modelling with Time Series: Specification, Estimation and Testing (Themes in Modern Econometrics) [http://www.amazon.co.uk/Econometric-Modelling-Time-Specification-Econometrics/dp/0521196604/ref=sr_1_1?s=books&ie=UTF8&qid=1345214275&sr=1-1]
 
* Higham, D.J. and Higham, N.J. (2005) MATLAB Guide, Society for Industrial and Applied Mathematics [http://www.amazon.co.uk/MATLAB-Guide-Desmond-J-Higham/dp/0898715784/ref=sr_1_1?s=books&ie=UTF8&qid=1347377409&sr=1-1]
 
  
 
== Help for using WikiMedia ==
 
== Help for using WikiMedia ==
 
* [http://www.mediawiki.org/wiki/Manual:MediaWiki - FAQ]
 
* [http://www.mediawiki.org/wiki/Manual:MediaWiki - FAQ]
 
* [http://www.mediawiki.org/wiki/Manual:MediaWiki - Configuration Settings]
 
* [http://www.mediawiki.org/wiki/Manual:MediaWiki - Configuration Settings]
 +
* Change navigation here [[MediaWiki:CustomNavBlocks]]

Latest revision as of 08:19, 10 July 2015


Econometric Computing Learning Resource (ECLR)

This is the home of the ECLR. It is the purpose of this resource to facilitate the application of Econometric techniques. There exist numerous software packages that can be used to solve Econometric problems. Some of them are menu driven (e.g. EVIEWS) and are great to tackle standard econometric problems. Others require more programming but therefore also allow the user to tackle non-standard problems. This resource provides support material for the use of EVIEWS, R and MATLAB. Python material is currently being developped.

This page will not really teach Econometrics, although it will provide sufficient econometric background to facilitate the implementation of the different econometric techniques. To do any serious econometrics you need to have some basic statistics knowledge. On this page Statistics you can review some of the required statistical background.

Programming
Languages
Menu-driven
software
Statistics
Introduction
Maths
Introduction
MATLAB Python R (RStudio) EVIEWS Statistics Intro Maths Intro

Should you learn programming to do Econometrics?

First, the answer to this question is often no. If you need to apply a very standard econometric technique and don't have to do that too often, then it may well be that a menu driven software package (like EVIEWS) is exactly the right way to go.

However, if you want to achieve nonstandard things (and working on a PhD or even a MSc you are bound to want to do non-standard things) the picture is very different. A menu driven software package may do some related things but often not exactly what you want. Even if the software package has a "button" to do what you want to do, it is often badly documented what exactly happens underneath the hood. But most importantly, many nonstandard things just cannot be done in menu driven software. This is were MATLAB (or other software packages like GAUSS or OX) comes to the rescue. At the core it has nothing to do with econometrics. It is a matrix algebra maths programme in which you can do with data (stored in matrices) whatever you want. When we say whatever, then this is to be understood almost literally. And that is the point.

Therefore, there are powerful reasons why you may want to learn to use a proper programming language to solve your econometric problem:

  1. You can easily repeat the same analysis with many more dataset.
  2. For some analysis there are some very repetitive things you got to do. In some cases, writing a program will eliminate the need to do essentially the same thing many times. You instruct the software to do the repetitive work for you.
  3. By writing a MATLAB program (or script) you essentially also create a record of what you do. This is extremely useful when it comes to understanding previous work and to identify mistakes. This is possibly the most important advantage of writing your own programs.
  4. By having to instruct your computer what to actually do, you properly learn the underlying Econometrics. In other words, programming can be an awesome econometric learning tool.

If you did any programming in any other programming language, such as Visual Basic, C, C++, GAUSS, etc. you will recognise a lot of common patterns. Learning how to use MATLAB to do econometrics is 100% a trial and error process and hence this wiki will provide guidance but you will have to practice yourself.

Authors, Maintenance and Contributions

This wiki was created by Ralf Becker and Arthur Sinko with the financial support of a University of Manchester Investing in Success grant. If you have any suggestions please contact us by email. Contributions to this wiki are encouraged. Please contact us for details.


Help for using WikiMedia