Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y...

Post on 30-Oct-2019

2 views 0 download

Transcript of Taller MATLAB 2 - part1 · Para cada una de las 1000 muestras calcule la regresion OLS entre X e Y...

Taller MATLABSesión 2

Enrique Ide Carvallo

¿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)

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”

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

‘workspace’:

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

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:

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

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.

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

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:

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!

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.

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

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

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

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

Plot(var)

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.

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

scatter(X,Y)

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

-> Basic Fitting

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!

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.

GráficosGráficos

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’

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,….)

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

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”

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);

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

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

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)

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

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

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’.

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?

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?¿