Presentation on theme: "2015-9-11Nonparametric Econometrics1 Intro to Matlab for Data Analysis and Statistical Modeling."— Presentation transcript:
2015-9-11Nonparametric Econometrics1 Intro to Matlab for Data Analysis and Statistical Modeling
2015-9-11Nonparametric Econometrics2 Useful links http://statlab.stat.yale.edu/help/FAQ/matlab_FAQ.jsp The help links on this page include: Mathworks ’ Getting Started (the official online documentation of Matlab) Kermit Sigmon ’ s MATLAB Primer (a very good beginner manual); University of Utah ’ s MATLAB Tutorial Some others. MATLAB ’ s online help manual
2015-9-11Nonparametric Econometrics3 What is MATLAB? MATLAB is a matrix-based tool for numerical computations. It ’ s very powerful and easy to use. Both programming language and interactive environment Very fast native functions; somehow slow when processing loops Lots of available toolboxes
2015-9-11Nonparametric Econometrics4 Launching Matlab Click “ MATLAB xx ” from the start menu (on Unix systems: type “ matlab ” to enter interactive mode)
2015-9-11Nonparametric Econometrics5 The Interface Main Window: Input/Output Workspace: consists of the variables you create during a MATLAB session; Current Directory browser: shows you where you are. Command History: double click them to evaluate them; Editor/Debugger: pops up when you create an M-file (click on “ New ” button to launch it.)
2015-9-11Nonparametric Econometrics6 Entering Matrices Matrices can be Entered manually A = [1 2 3 ; 4 5 6 ; 7 8 9] Generated by built-in functions (e.g., eye(3), ones(2,1), zeros(3,3) Loaded from a file (e.g.,data)
2015-9-11Nonparametric Econometrics7 Matrix operations: + addition - subtraction * multiplication ^ power ‘ transpose \ left division, / division x = A \ b is the solution of A * x = b x = b / A is the solution of x * A = b To make ‘ * ’, ‘ ^ ’, ‘ \ ’ and ‘ / ’ apply element- by-element, we precede the operators by ‘. ’
2015-9-11Nonparametric Econometrics8 Subscripts: Subscripts: the element in row i and column j of A is denoted by A(i, j). i,j can also be vectors of indices or logical arrays: A=4*[1 2 3 4 5 6 7 8 9]’ b=A>18; c=(5 6 7 8 9)’ A(b) gives same result as A(5;6;7;8;9) because b=(0 0 0 0 1 1 1 1 1)’
2015-9-11Nonparametric Econometrics9 The Colon Operator ‘ : ’ The colon ‘ : ’ is one of MATLAB ’ s most important operators. It has many formats: [0:0.2:3] is a row vector containing numbers from 0 to 3, in increments of 0.2 e.g., A=[0:0.2:3] or A=0:0.2:3 Subscript expressions involving colons refer to portions of a matrix: A(1:3, 2) is the first to the third elements of the second column of A.
2015-9-11Nonparametric Econometrics10 Working with Matrices: Four functions that generate basic matrices: Zeros: all zeros. A = zeros(1,3) Ones: all ones. A = ones(2,4) Rand: elements are U[0,1] random variables A = rand(3,5) Randn: elements are standard-normal random variables A = randn(2,5) Be careful: Matlab always sets the same seed. Get ‘ more random ’ numbers by typing rand('state', sum(100*clock)) Sometimes you want the seed to be fixed in your code, you can set rand(‘state’,r) where r is the rth simulation
2015-9-11Nonparametric Econometrics11 A=eye(3) gives a 3-by-3 identity matrix sparse(m,n): same as zeros(m,n), use if most elements are zeros. e.g., A=eye(3); B=sparse(A) Concatenation: join small (compatible) matrices to make bigger ones: B = [A A-2; A*2 A/4] Deleting rows and columns: B(:,2) = [ ]
2015-9-11Nonparametric Econometrics12 Putting it together Many operations can take Matrix inputs. Example: A = [1 2 3 ; 4 5 6 ; 7 8 9] B=A>5 Use indices and element-by-element operations to avoid slow and unwieldy loops: beta=0.925; auxil=1:200; betavec(auxil)=beta.^auxil; betavec=betavec ’
2015-9-11Nonparametric Econometrics13 Suppressing Output: If you simply type a statement and press Enter, MATLAB automatically displays the results on screen. If you end the line with a semicolon ‘ ; ’, MATLAB performs the computation but does not display any result. Example: C = randn(5,1) versus C = randn(5,1);
2015-9-11Nonparametric Econometrics14 Functions: MATLAB provides a large number of standard elementary mathematical functions, including abs, sqrt, exp, sin. For a list of the elementary mathematical functions, type: help elfun (e.g.,sin, cos, exp, log, log10,log2,abs,real) For a list of more advanced specificic mathematical functions and elematary matrix functions, type help specfun (e.g., factorial,erf) help elmat (e.g., zeros,ones,eye For a list of data analysis functions, type help datafun (e.g., max,min, mean,median, std, var, sort, hist, corrcoeff skewness, kurtosis,cumsum)
2015-9-11Nonparametric Econometrics15 Flow Control: MATLAB has following flow controls: If statement For loops While loops Continue statement Break statement
2015-9-11Nonparametric Econometrics16 if … elseif … else … end If A > B ‘greater’ elseif A < B ‘less’ elseif A = = B ‘equal’ else error(‘Unexpected situation’) end
2015-9-11Nonparametric Econometrics17 for … end for i = 1:m for j = 1:n H(i,j) = 1/(i+j); end
2015-9-11Nonparametric Econometrics19 Programming with MATLAB: Files that contain code in the MATLAB language are called M-files. You can create M-files using the matlab editor, then use them as you would any other MATLAB functions or commands. There are two types of M-files: Scripts and Functions.
2015-9-11Nonparametric Econometrics20 Scripts Scripts: a bunch of code grouped together; doesn ’ t accept argument or return output. Example open m-file editor type disp(‘Hello, China!’) save as test.m in c:\temp add c:\temp to path directory (File/Set Path) Execute by typing “ test ”
2015-9-11Nonparametric Econometrics21 Functions: Functions are M-files that can accept input arguments and return output arguments. The name of the M-file and of the function should be the same. For example, save this as area.m in c:\temp: function ar = area(radius) ar=pi*radius^2;
2015-9-11Nonparametric Econometrics22 Function functions Once you have defined a function, you can use functions that have functions as arguments – function functions! E. g. search for minima, zero values. Example: first we define the function x 2 -3: function x=example(input) x=input.^2-3; Now, we can easily find minima and zeros: fminbnd(@example,-2,2), fzero(@example,2)
2015-9-11Nonparametric Econometrics23 Learn from others There are lots of Matlab functions already out there: Google them! http://www.mathworks.com/matlabcentral/ James LeSage ’ s econometrics toolbox: http://www.spatial-econometrics.com/ http://www.spatial-econometrics.com/ Don ’ t forget to “ set paths ” so that Matlab can find your new.m-files.