MANEJO DE DATOS CON MATLAB
Ambiente en MATLAB
Workspace: muestra las variables, se guarda con extensión .mat
Listado de archivos (current folder): muestra los archivos con los que se están trabajando
Editor: muestra los valores de la variables
Ventana de comandos (command window): muestra las instrucciones ejecutadas y resultados
MANEJO DE DATOS CON MATLAB
Importar datos de Excel
1.- Arrastrar el archivo a la ventana de comandos
2.- Seleccionar el tipo de variables: vector, matriz
etc.
MANEJO DE DATOS CON MATLAB
Archivos m
Son un listado de instrucciones (script) que se
puede ejecutar mediante el botón “RUN” que se
encuentra en el menú variable.
Se recomienda crear una carpeta con todos los
archivos del proyecto.
MANEJO DE DATOS CON MATLAB
Escribir una función
function [med,des,a]=estadistica(x)
n=length(x);
med=sum(x)/n;
a=sum(x);
des=sqrt(sum((x-med).^2/(n-1)));
end
MANEJO DE DATOS CON MATLAB
Llamar una función
[media, desviacion,a]=estadistica([1.65 1.82 1.72
1.75 1.73 1.85 1.90 1.74 1.76 1.77])
MANEJO DE DATOS CON MATLAB
Ejercicio de una función financiera
Calcular la tasa de interés simple y compuesta
MANEJO DE DATOS CON MATLAB
Análisis estadístico: Medidas de localización
Mean ()
Descripción Calcula la media aritmética de determinados valores.
Sintaxis mean (a) - Si a es un vector, calcula la media de los valores. - Si a es una matriz, calcula la media de cada columna.
mean (a, dim) - Devuelve los valores medios de la dimensión especificada de la matriz a. - La dimensión predefinida es 1.
nanmean() Descripción Calcula la media ignorando aquellos datos perdidos.
MANEJO DE DATOS CON MATLAB
Análisis estadístico: Medidas de localización
geomean (a)
harmmean (a)
max(a); min(a) - Si a es un vector, retorna el valor máximo/mínimo. - Si a es una matriz, retorna máximo/mínimo de cada columna.
nanmax() ; nanmin ()
Descripción Devuelve los valores extremos de una determinada muestra ignorando aquellos datos perdidos.
median ()
MANEJO DE DATOS CON MATLAB
Análisis estadístico: Medidas de dispersión
std (a) - Si a es un vector, retorna la desviación
estándar de los valores. - Si a es una matriz,
retorna la desviación estándar de los valores por
columnas.
var (a)
range (a) - Si a es un vector, calcula el rango del
mismo. - Si a es una matriz, calcula el rango de
cada columna.
MANEJO DE DATOS CON MATLAB
Análisis estadístico: Medidas de dispersión
iqr (a) - Si a es un vector, calcula el rango
intercuartil del mismo. - Si a es una matriz, calcula
el rango intercuartil de cada columna.
prctile (a, p) - “p”, corresponde al percentil que se
busca, puede ser un vector o escalar - “a”, es la
muestra que se analiza, puede ser vector o matriz.
MANEJO DE DATOS CON MATLAB
Análisis estadístico: Medidas de dispersión
quantile (a, p, dim) - “p”, corresponde al quantil
que se busca, puede ser un vector o escalar y se
encuentra entre el rango [0 1] . - “a”, es la muestra
que se analiza, puede ser vector o matriz. - Su
comportamiento hasta este punto es igual a la
función prctile(). - Sin embargo el parámetro dim es
muy útil ya que nos permite buscar quantiles en
otras dimensione. dim=1, por columnas, dim=2, por
filas.
prctile( x , 50) = quantile (x, .50) = mediana
MANEJO DE DATOS CON MATLAB
Análisis estadístico: Medidas de distribución
skewness (a) - Si a es un vector, calcula la
oblicuidad de los valores. - Si a es una matriz,
calcula la oblicuidad de cada columna.
kurtosis (a) - Cuando a es un vector, calcula la
curtosis de los elementos del mismo. - Cuando a es
una matriz, calcula la curtosis para cada columna.
MANEJO DE DATOS CON MATLAB
Análisis estadístico
tabulate (a) - El parámetro a representa la
muestra, y solo puede ser un vector.
cov (a) - Cuando a es un vector, devuelve un valor
con la varianza del mismo. - Cuando a es una
matriz, cada columna es una observación y cada
columna una variable.
MANEJO DE DATOS CON MATLAB
Análisis estadístico
corr(a) - a debe ser una matriz, y devuelve un matriz de correlacion entre columnas.
corr(a,b) - Genera una matriz de correlación entre las dos matrices, las dimensiones de a deben ser iguales a las de b.
[R,P]= corrcoef (a) - Devuelve además una matriz con los valores p usados en las pruebas de hipótesis.
MANEJO DE DATOS CON MATLAB
Análisis estadístico
crosstab (col1 ,col2) - Se genera una matriz donde
el elemento (i,j) corresponde a la cuenta de todas
las observaciones donde col1=i y col2 =j.
grpstats (a, group) - Genera la media de cada
columna de a por grupo, el vector group define
como se agruparan los datos.
MANEJO DE DATOS CON MATLAB
Análisis estadístico
b = [1 2 3; 7 5 6; 4 5 6; 8 9 1]
Del archivo denominado regresión realice un script titulado: e.
El cual que llame las funciones necesarias para obtener: media, media geométrica, mínimo, máximo, desviación estándar, varianza, asimetría, curtosis, mediana, cuartil 3, percentil 30 y rango de cada variable. Asimismo presente una matriz de correlaciones entre las variables, una tabla cruzada entre la antigüedad y el precio y calcule la media del precio por tamaño.
MANEJO DE DATOS CON MATLAB
Graficar una variable
qqplot(X) muestra una grafica de quantil-quantil para una muestra de datos de X en relación a una distribución teórica normal. Si la distribución de X es normal, la grafica será lineal.
qqplot(X, Y) muestra una grafica de quantil-quantilpara dos muestras de datos si las muestra vienen de la misma distribución, la gráfica será lineal. Para una matriz X y Y, qqplot muestra líneas separadas para cada pareja de columnas, además la gráfica contiene la muestra de datos mostrando los mismos por medio de signos (+).
MANEJO DE DATOS CON MATLAB
Graficar una variable
gscatter(x, y, g)
Crea un diagrama de la dispersión de x y y, en el
cual X y Y son los vectores con el mismo tamaño y g
es un grupo de variables definidas por un vector,
una matriz o un conjunto de celdas variables. G
también puede ser un conjunto de variables (tales
como {G1 G2 G3} agrupando los valores en X por
cada combinación de grupo de variables.
MANEJO DE DATOS CON MATLAB
Graficar una variable
gplotmatrix(x,y,g)
Esta función crea una matriz de gráficos de dispersión.
Cada conjunto de ejes en la figura del resultado
contiene un diagrama de dispersión de una columna de
x contra una de y. Todos los gráficos están agrupados
por la variable g. X y Y son matrices con el mismo
número de filas. Si x tiene p columnas y q filas la figura
contiene una matriz p * q de diagramas de dispersión.
G es una variable para agrupar que puede ser vector,
una matriz o un conjunto de celdas variables. G debe
tener la misma cantidad de filas que X y Y
MANEJO DE DATOS CON MATLAB
Graficar una variable
a = normspec([0 0.5],0,1)
p = chi2cdf (x,v) - Calcula el valor de la integral
para la distribución Chi-cuadrado con los
respectivos parámetros, donde x,v pueden ser un
vector o una matriz. v son los grados de libertad y
junto con x deben ser positivo.
MANEJO DE DATOS CON MATLAB
Graficar una variable
text(0, 0.2, 'hola')
xlabel('x');
ylabel('y')
title('Figura 1')
bar(a, 'g')
grid on
HISTOGRAMA
hg=findobj(gca,'Type','patch');
set(hg,'FaceColor',‘m','EdgeColor','k')
MANEJO DE DATOS CON MATLAB
Graficar una variable
plot(x,y,'-mo','linewidth',2,'markersize',12, 'markeredgecolor','g','markerfacecolor','y')
Los dos primeros parámetros de plot son las coordenadas de los puntos (xi, yi) contenidos vectores x e y. El tercer parámetro es el especificador de línea que puede contener tres datos '-mo' entre comillas simples:
Estilo de línea (- significa sólido, por defecto)
Color de línea (m significa magenta)
Marcador (o significa círculo)
MANEJO DE DATOS CON MATLAB
Graficar una variable
linewidth, especifica la anchura de línea su valor
por defecto es 0.5
markersize, especifica el tamaño del símbolo que
marca los puntos
markeredgecolor, especifica el color de borde del
símbolo que marca los puntos
markerfacecolor, especifica el color de relleno del
símbolo que marca los puntos
MANEJO DE DATOS CON MATLAB
Graficar una variable
plot(x,y), una línea azul sólida concecta los puntos
(xi, yi)
plot(x,y,'r'), una línea roja sólida conecta los
puntos (xi, yi)
plot(x, y,':g'), una línea de puntos de color verde
conecta los puntos (xi, yi)
plot(x,y,'--ro','linewidth',2,'markersize',8)
MANEJO DE DATOS CON MATLAB
Graficar una variable
axis([xmin,xmax,ymin,ymax]), establece nuevos
límites a los ejes X e Y
axis equal, establece la misma escala para ambos
ejes
axis square, región cuadrada
axis tight, ajusta los límites de los ejes al rango
de los datos
MANEJO DE DATOS CON MATLAB
Graficar una variable
h=figure
saveas(h, ‘nombre.ext’)
TAREA 6:
Complemente el script e, generando por lo menos
un gráfico de cada variable, un grafico q-q, uno de
dispersión y la media del precio por tamaño.
MANEJO DE DATOS CON MATLAB
Funciones financieras
P: cantidad
I: tasa de interés
n: periodos
Tasa de interés simple
>> ((P)+(P)*(I))
>> ((1000)+ (1000*0.2))
ans =
1200
MANEJO DE DATOS CON MATLAB
Funciones financieras
Tasa de interés compuesta
>> (P)*(1+i)^n
>> ((1000)*((1+0.2)^2))
ans =
1440
MANEJO DE DATOS CON MATLAB
Funciones financieras
Calcular la TIR de una inversión de 10000 con unas fechas determinadas
CF = [-10000 ; 2500 ; 2000 ; 3000 ; 4000];%Flujo de Caja
DF = {'12-Jan-2007'
'14-Feb-2008'
'03-Mar-2008'
'14-Jun-2008'
'01-Dec-2008'}; %Fechas de cobro del flujo de caja
R = xirr(CF, DF) %xirr(flujo,fechas)
Devuelve
R=
0.1006
MANEJO DE DATOS CON MATLAB
Funciones financieras
Calcular la tasa nominal a la que equivale una tasa
de interés efectiva anual de 9.38%
>> nomrr(0.0938,12) % nomrr(tasa, numero de
periodos)
0.0900
MANEJO DE DATOS CON MATLAB
Funciones financieras
Cual es el interés efectivo de una tasa de interés del 18% anual si se capitaliza:
a. Anualmente b. Semestralmente c. Mensualmente d. Diariamente (suponga año de 365 días)
a. >> effrr(0.18,1) % effrr(tasa, numero de periodos) ans = 0.1800
b. >> effrr(0.18,2) ans = 0.1881
c. >> effrr(0.18,12) ans = 0.1956
d. >> effrr(0.18,365) ans = 0.1972
MANEJO DE DATOS CON MATLAB
Funciones financieras: anualidades
Una persona deposita $100.000 en una cuenta que
paga el 5% semestral. Si esta persona quisiera
retirar cantidades iguales al final de cada semestre
durante 5 años ¿de que tamaño seria cada retiro?
>> payper(0.05,10,100000,0,0) % payper(Tasa,
NumPeriods, ValorPresente, ValorFuturo, Días)
ans = 12950.46
MANEJO DE DATOS CON MATLAB
Funciones financieras:
Si en una cuenta de ahorros que paga el 15% anual se depositan $ 1000 anuales durante cinco años, ¿Qué cantidad se acumularía al final del año 10, si el primer depósito se hizo al final del año 1?.
>> fvfix(0.15,5,1000,0,0)%fvfix(interés,tiempo,dinero,pago_extra(opc),
%anticipado=1/vencido=0(opc))
ans =
6742.38
Al final del quinto año se acumula $6742.38, entonces como se quiere saber cuánto tenemos al final del año 10 se multiplica la cantidad acumulada por los intereses de los siguientes 5 años
>> 6742.38*((1+0.15)^5) %P(1+int)^n
MANEJO DE DATOS CON MATLAB
Funciones financieras:
MATLAB maneja dos funciones, una con fechas periódicas (pvvar) y otra con fechas manejadas por el usuario (pvfix). Veamos el siguiente ejemplo:
%Calcule el valor actual del siguiente flujo de caja considerando una tasa de %descuento de 15%
% Años 0 1 2 3 4
%FC 0 500 700 700 900
En MATLAB tenemos:
A= pvvar ([0, 500,700,700,900],0.15); % Colocamos los valores futuros y el %porcentaje
Devuelve:
A= 1938.92
MANEJO DE DATOS CON MATLAB
Funciones financieras:
Annurate, sirve para calcular la tasa de interes
periodico pagado en un prestamo o anualidad, su
sintaxis es
r=annurate(Numperiods,
Valorpresente,valorfuturo(opc),anticipado=1,vencido
=0(por defecto=0))
MANEJO DE DATOS CON MATLAB
Funciones financieras:
%se toma un prestamo de 8000 por 5 años y se hacen
pagos mensuales de 225 al final de cada mes
%para calcular la tasa de interes tenemos...
>>tasa_mensual=annurate(5*12,225,8000,0,0)
Devuelve
tasa_mensual= 0.02
MANEJO DE DATOS CON MATLAB
Funciones financieras:
Amortize, sirve para generar una tabla de
amortización, devuelve el principal y los pagos del
prestamo, el saldo del valor original del monto
prestado, los intereses pagados y el abono a capital
periódico, su sintaxis es:
[Principal, tasa, Valor_presente,
Pago]=amortize(tasa, Numperiods, Valorpresente,
valorfuturo(opc),tipo: anticipado=1,vencido=0(por
defecto=0))
MANEJO DE DATOS CON MATLAB
Funciones financieras:
%Calcule una tabla de amortización para un prestamoconvencional de 30 años a una tasa fija con pagos mensuales constantes. Asuma que la tasa fija es del 12% anual periodica y el valor inicial del prestamo es de 2000000
%para calcular la amortización tenemos...
>>tasa_m=0.12/12;
>>nper=30*12;
>>valorpresente= 2000000;
[Principal, Interes, Balance, Pago]=amortize(tasa_m,nper,valorpresente);
MANEJO DE DATOS CON MATLAB
Funciones financieras:
Esto nos arroja un array de datos, para una mejor visualización, se plantea el siguiente gráfico para ver el actual saldo del préstamo, el abono a capital y el pago de interes sobre el tiempo de amortización. Se nota que excede los 2700000 mucho mas que la cantidad prestada
plot (Balance,’b’), hold(‘on’)
plot(cumsum(Principal),’--k’)
plot(cumsum(Interes),’r’)
xlabel(‘Pago’)
ylabel(‘Pesos’)
grid(‘on’)
title(‘Saldo, Abono a Capital e Interes’)
legend(‘Saldo’,’Abono a Capital’,interes acumulado’,’TL’)
MANEJO DE DATOS CON MATLAB
Interfaz gráfica
GUIDE
Genera un archivo m como función y un fig, los
cuales se encuentran vinculados.
Inspector de propiedades
“View Callbacks”
MANEJO DE DATOS CON MATLAB
Guide, leer un valor
valor = get(hObject, 'String');
valorok=str2double(valor);
handles.edit1 = valorok;
guidata(hObject,handles);
MANEJO DE DATOS CON MATLAB
Guide, acciones al presionar un botón
dato3=handles.edit1;
dato1= evalin('base', 'educ(2)');
dato2= evalin('base', 'educ(1)');
Mostrar información en texto estatico
set(handles.text1,'String',dato1);
set(handles.text2,'String',dato2);
set(handles.text3,'String',dato3);
MANEJO DE DATOS CON MATLAB
Regresión
X = [ones(size(x1)) x1 x2]
b = regress(y,X)
scatter3(x1,x2,y,'filled')
hold on
x1fit = min(x1):max(x1)
x2fit = min(x2):max(x2)
[X1FIT,X2FIT] = meshgrid(x1fit,x2fit)
YFIT = b(1) + b(2)*X1FIT + b(3)*X2FIT
mesh(X1FIT,X2FIT,YFIT)
xlabel(‘x1')
ylabel(‘x2')
zlabel(‘y')
view(50,10)
Top Related