taller matlab 2 - part1 · para cada una de las 1000 muestras calcule la regresion ols entre x e y...

35
Taller MATLAB Sesión 2 Enrique Ide Carvallo

Upload: others

Post on 30-Oct-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Taller MATLABSesión 2

Enrique Ide Carvallo

Page 2: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

¿Qué vamos a ver hoy?¿Qué vamos a ver hoy? Carga de Datos Gráficos Gráficos Funciones, variables locales y globales Ejercicios de Simulación Ejercicios de Simulación Symbolic Toolbox (solo si alcanza el tiempo)

Page 3: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Carga de DatosCarga de Datos MATLAB es muuuy amigable para cargar datos

(comparado por ejemplo con GAUSS)(comparado por ejemplo con GAUSS)

Varias maneras, veamos 2:, “Copy-Paste” “Importador Automático”

Page 4: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Carga de DatosCarga de Datos Copy-Paste Primero creamos una variable cualquiera en el Primero, creamos una variable cualquiera, en el

‘workspace’:

Page 5: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Carga de DatosCarga de Datos Copy-Paste Luego la abrimos y se nos abre algo así como un excel Luego la abrimos, y se nos abre algo así como un excel.

Y ahí copiamos o introducimos los datos

Page 6: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Carga de DatosCarga de Datos Importador Automático Matlab también trae un ‘wizard’ que permite importar Matlab también trae un wizard que permite importar

automaticamente los datos desde ciertos archivos reconocidos (.txt, .xls, .mat, etc.)S l b d l k Se le abre de nuevo en el workspace:

Page 7: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Carga de DatosCarga de Datos Importador Automático Ahí nos pide que le señalemos el archivo y creará un Ahí nos pide que le señalemos el archivo, y creará un

preview. Si estamos de acuerdo, apretamos “Next” y “Finish” y

li tlisto

Page 8: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Carga de DatosCarga de Datos Ejercicio:

Cargando Datos: en la carpeta (archivos-> datos1). Encontrarán un excel con datos. Cárguelos a MATLAB. Los de la hoja1 llamemos “hoja1” y los de la hoja2, idem.

Page 9: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Carga de DatosCarga de Datos Nota Hace diferencia como los guarden! No es lo mismo Hace diferencia como los guarden! No es lo mismo

trabajar con matrices que vectores (aunque claramente uno puede pasar indistintamente de uno a otro). Algunas veces un método es mas simple que otroveces un método es mas simple que otro.

La idea es sin embargo, ahorrar tiempo. Piense y decidan g , p ycomo les conviene guardar sus datos

Page 10: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Algo mas de DatosAlgo mas de Datos Guardando Datos Las variables del Workplace se guardan fácilmente en Las variables del Workplace se guardan fácilmente en

formato .mat:

Page 11: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Algo mas de DatosAlgo mas de Datos Para volver abrirlos (o de hecho cargar datos en

formato .mat también), podemos hacerformato .mat también), podemos hacer

Load nombre.mat

Siempre y cuando estemos trabajando en la carpeta d d l d b d d !en donde los datos estaban guardados!

Page 12: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Algo de GráficosAlgo de Gráficos Básicamente veremos (y algo por encima, sin todas

las opciones) histogramas, gráficos de series delas opciones) histogramas, gráficos de series de tiempo y scatters.

Antes que nada, carguemos algunos datos:

En la carpeta “datos tfp” encontrara un excel con los datos de tfp, crec. del tfp y tamaño de gobierno para una serie de paises entre el 60 y el 2000. Cargue los datos deserie de paises entre el 60 y el 2000. Cargue los datos de ‘g_TFP’ solo de Chile.

Page 13: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

GráficosGráficos Histogramas Grafica distribuciones empíricas Grafica distribuciones empíricas Sintaxis básica

(1) hist(var) o hist(var,l) (2) n=hist(var) o n=hist(var,l)

(1) Grafica ‘var’ es la variable que queremos graficar y ‘l’ (1) Grafica. var es la variable que queremos graficar y l es en la cantidad de ‘lotes’ iguales en que queremos separar los valores de la variable. Si no especificamos ‘l’ el default es 10el default es 10

(2) Genera una variable ‘n’ con las frecuencias de los distintos lotes

Page 14: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

GráficosGráficos Histogramas Ej hist(g tfp) Ej. hist(g_tfp)

Page 15: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

GráficosGráficos Histogramas Ej n = hist(g tfp) Ej. n hist(g_tfp)

Page 16: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

GraficosGraficos Times Series Plots Sintaxis básica: Sintaxis básica:

Plot(var)

Page 17: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

GráficosGráficos Para el scatter, carguemos datos distintos:

Borre los datos que tenia. Vaya al mismo archivo y cargue los datos de ‘kg’ y ‘g_tfp’ para todos los países, en

Gel año 1995. Guárdelos en vectores separados.

Page 18: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

GráficosGráficos Scatter Relación entre dos variables Relación entre dos variables Sintaxis Básica:

scatter(X,Y)

Page 19: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

GráficosGráficos Scatter Algunas opciones entrenidas Algunas opciones entrenidasdel Scatter: Vayan a tools

-> Basic Fitting

Page 20: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

GráficosGráficos Scatter Permite graficar la línea de regresión sin tener que Permite graficar la línea de regresión sin tener que

correrla directamente!

Page 21: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

GráficosGráficos MATLAB tiene infinitos gráficos e infinitas opciones

dentro de cada gráfico. Pasaríamos toda la clasedentro de cada gráfico. Pasaríamos toda la clase viéndolo todo. El secreto es ahora simplemente entrar a jugar!

¿Cómo? Este es el Secreto… Seleccione una o varias variables de su workplace.

Haga Click derecho y apriete Plot Catalog.

Page 22: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

GráficosGráficos

Page 23: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

FuncionesFunciones Tremendamente útil!!!! Usualmente Ahorra Tiempo Usualmente Ahorra Tiempo Clave para Optimización Numérica (próx. sesión)

La idea: diseñar un programa, una función, personalizada que continuamente requeriremos

M file separado, guardado misma carpeta del ‘ t ’‘proyecto’

Page 24: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

FuncionesFunciones Sintaxis Basica

function [out1 out2 ] = nombre(in1 in2 )function [out1,out2,…] nombre(in1,in2,…)(Programa de Función)

endNote que es sin ‘ ; ‘

Debe coincidir con el nombre que se le da al m file

Después, la ‘invocamos’ así: [a,b,…] = nombres(x1,x2,….)

Page 25: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

FuncionesFunciones Ej. 1function [beta] = OLS(x y)function [beta] = OLS(x,y)beta = (x'*x)\(x'*y);disp('La matriz de estimadores OLS es: ')disp(beta)

Ej. 2

end

Ej. 2function [mean,stdev] = stat(x) n = length(x); mean = sum(x)/n;mean = sum(x)/n;stdev = sqrt(sum((x-mean).^2/n));end

Page 26: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Funciones Ejercicio:

Funciones

Función para desv. con respecto media:

Cree una función cuyas entradas sean una serie de vectores columnas x1, x2, x3, y cuyas salidas sean los mismos vectores, pero en desviaciones con respecto a sus respectivas medias.p p p

Llame a esta funcion, “dev_mean”

Page 27: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

FuncionesFunciones Quack! Problema: Ejercicio tricky: los inputs y los outputs deben quedar Ejercicio tricky: los inputs y los outputs deben quedar

fijos!!!!! Como lo haría yo: pasaría todo a una matriz!

function [x_desv] = desv_mean(x)x_prom = mean(x);n = size(x,1);x desv=x ones(n 1)*x prom;x_desv=x-ones(n,1)*x_prom;end

=========================================================clear;clc;a = randn(100);[a desv] = desv mean(a);[a_desv] = desv_mean(a);

Page 28: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Funciones: Variables Locales y GlobalesFunciones: Variables Locales y Globales ¿Cuál es la diferencia? Usualmente cada función de matlab crea su propio set de Usualmente cada función de matlab crea su propio set de

variables cuando se invoca. Estas son conocidas como variables ‘locales’ ya que se eliminan cuando la función se cierrase cierra.

Sin embargo, es posible hacer variables ‘globales’ que g , p g qserán común a todas las funciones

Page 29: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Funciones: Variables Locales y GlobalesFunciones: Variables Locales y Globales Por ejemplo, Supongamos que tenemos 2 firmas con las siguientes Supongamos que tenemos 2 firmas con las siguientes

funciones de profit:

La firma 1 tiene K1 = 26 83 y la firma 2 K2=69 44 La firma 1 tiene K1 = 26.83 y la firma 2 K2=69.44.

El costo de capital es r= 3 e igual para ambas firmas.p g p

Page 30: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Funciones: Variables Locales y GlobalesFunciones: Variables Locales y Globales Funciones de profit serían:function [y] = profit1(K) V i blfunction [y] profit1(K)A=100;alpha=0.3;r=3;

(A*K^( l h ) *K)

Variables Locales a profit 1

y=-(A*K^(alpha)-r*K);end

function [y] = profit2(K) VariablesA=50;alpha=0.5;r=3;y=-(A*K^(alpha)-r*K);

Variables Locales a profit2

y (A K (alpha) r K);end

[prof1] = profit1(26 83)[prof1] profit1(26.83)[prof2] = profit2(69.45)

Page 31: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Funciones: Variables Locales y GlobalesFunciones: Variables Locales y Globales Sin embargo hay otra posibilidad:

global rglobal rr=0.3;[prof1] = profit1(26.83)[prof2] = profit2(69.45)

function [y] = profit1(K)global rA=100;

Variable global

alpha=0.3;y=-(A*K^(alpha)-r*K);end

f i [ ] fi 2(K)

Variables Locales a profit 1

function [y] = profit2(K)global rA=50;alpha=0.5;

(A*K^( l h ) *K)y=-(A*K^(alpha)-r*K);end

Page 32: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Simulación EconométricaSimulación Econométrica ¿Qué queremos decir por Simulación?

A veces queremos testear “en la practica” las propiedades de cierto estimador o test bajo ciertas condiciones.

Claramente no podemos ir a los datos derechamente a testearlo ya que no sabemos la verdadera naturaleza del experimento!

La idea es entonces “crear” artificialmente “un experimento”, p ,que cumpla con las condiciones que solicitamos y testear ahí el comportamiento de los estimadores o test

Page 33: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Simulación Econométrica - EjemploSimulación Econométrica Ejemplo Distribución Empírica del test t

Genere 1000 muestras aleatorias de tamaño 100 de una variable aleatoria Y = 5 + u. Donde los errores de una normal(0,0.25). Y de otra variable X proveniente de una U[0,1]

Para cada una de las 1000 muestras calcule la regresionOLS entre X e Y y el estadístico t para el coeficiente que

ñ l X G d d d l t dí ti tacompaña al X. Guarde cada uno de los estadísticos t que obtuvo en un vector columna de 1000x1 llamado ‘tes’.

Page 34: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Simulación Econométrica - EjemploSimulación Econométrica Ejemplo Grafique un histograma para obtener la distribución empírica

de sus estadísticos ¿Parece una distribución t?

Copie lo siguiente: [f,xi] = ksdensity(tes) plot(xi,f) plot(xi,f)

De manera de tener una visualización alternativa de la distribución empírica. Mas aun, haga: t = tpdf(xi,99) –> para obtener la distribución teórica

Finalmente grafique: l t( i t i f) plot(xi,t,ri,f)

Se parece la distribución empírica a la teórica?

Page 35: Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y y el estadístico t para el coeficiente que acompañlXG d d dl tdíti tña al X

Simulación Econométrica - EjemploSimulación Econométrica Ejemplo Ahora, repita lo anterior pero haciendo que X ya no

provenga de una U[0,1]. Sino que:provenga de una U[0,1]. Sino que:

X[t] = X[t-1]+e[t] con e[t] ~N(0,1)[ ] [ ] [ ] [ ] ( , )

¿Qué obtiene?¿