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