Blog de Nakpanzer

15Oct/09

Probabilidad, variable conjunta

Hace unos días tuve que hacer un programa que calcule covarianzas y coeficientes de de relación de funciones de probabilidad continuas, de variable conjunta, también calcula la esperanza de las funciones de probabilidad marginales. Si alguien me entiende le servirá xD

El programa está hecho para matlab pero debería funcionar en Octave, sin modificación alguna.

syms('temp','h','x','y','x1','x2','y1','y2','f','g');
 
clc;
 
fprintf(1, 'Introduzca la función en términos de "x" y "y": ');
h = input(''); %h(x,y)
 
fprintf(1, 'Introduzca los límites en x\n');
fprintf(1, 'Límite inferior: ');
x1 = input('');
fprintf(1, 'Límite superior: ');
x2 = input('');
 
fprintf(1, 'Introduzca los límites en y\n');
fprintf(1, 'Límite inferior: ');
y1 = input('');
fprintf(1, 'Límite superior: ');
y2 = input('');
 
f = int(h,y,y1,y2); %f(x)
fprintf(1, 'f(x) = ');
disp(f);
 
g = int(h,x,x1,x2); %g(y)
fprintf(1, 'g(y) = ');
disp(g);
 
%independencia
if f*g == h
    fprintf(1, 'Las variables son independientes\n');
else
    fprintf(1, 'Las variables no son independientes\n');
end
 
%E(x)
ex = int(int(x*h,x,x1,x2),y,y1,y2);
fprintf(1, 'E(x) = ');
disp(ex);
 
%E(x^2)
ex2 = int(int(x^2*h,x,x1,x2),y,y1,y2);
% fprintf(1, 'E(x^2) = ');
% disp(ex2);
 
%E(y)
ey = int(int(y*h,y,y1,y2),x,x1,x2);
fprintf(1, 'E(y) = ');
disp(ey);
 
%E(y^2)
ey2 = int(int(y^2*h,y,y1,y2),x,x1,x2);
% fprintf(1, 'E(y^2) = ');
% disp(ey2);
 
%E(xy)
exy = int(int(x*y*h,x,x1,x2),y,y1,y2);
% fprintf(1, 'E(xy) = ');
% disp(exy);
 
%Covarianza
covar = exy - ex*ey;
fprintf(1, 'Cov(x,y) = ');
disp(covar);
 
%Varianzas
var_x = ex2 - ex^2;
fprintf(1, 'Var(x) = ');
disp(var_x);
var_y = ey2 - ey^2;
fprintf(1, 'Var(y) = ');
disp(var_y);
 
%Coeficiente de relación
coe = covar/sqrt(var_x*var_y);
fprintf(1, 'Coeficiente de relación = ');
disp(coe);