%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Génération de v.a. discrètes dépendantes
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
n = 5000; % Nombre de réalisations
% Génération des variables aléatoires discrètes dépendantes
XYgene = jointdv(0.3, 0.2, 0.2, 0.3, n);
%% Probabilités marginales de X
fprintf('P(X = 1) = %.4f\n', PX1);
PX0 = 1 - PX1; % Puisque P(X=0) + P(X=1) = 1
fprintf('P(X = 0) = %.4f\n', PX0);
%% Probabilités marginales de Y
fprintf('P(Y = 1) = %.4f\n', PY1);
PY0 = 1 - PY1; % Puisque P(Y=0) + P(Y=1) = 1
fprintf('P(Y = 0) = %.4f\n', PY0);
%% Probabilités conjointes
% Probabilité P(X=0, Y=0)
ind = find(Y == 0); % Indices où Y = 0
XsY0 = X(ind); % Valeurs de X où Y = 0
ind = find(XsY0 == 0); % Indices où X = 0
fprintf('P(X = 0, Y = 0) = %.4f\n', PX0Y0);
% Probabilité P(X=0, Y=1)
ind = find(Y == 1); % Indices où Y = 1
XsY1 = X(ind); % Valeurs de X où Y = 1
ind = find(XsY1 == 0); % Indices où X = 0
fprintf('P(X = 0, Y = 1) = %.4f\n', PX0Y1);
% Probabilité P(X=1, Y=1)
ind = find(Y == 1); % Indices où Y = 1
XsY1 = X(ind); % Valeurs de X où Y = 1
ind = find(XsY1 == 1); % Indices où X = 1
fprintf('P(X = 1, Y = 1) = %.4f\n', PX1Y1);
% Probabilité P(X=1, Y=0)
PX1Y0 = PX1 - PX1Y1; % Probabilité conjointe restante (P(X=1, Y=0))
fprintf('P(X = 1, Y = 0) = %.4f\n', PX1Y0);
%% Probabilités conditionnelles
% Probabilité P(X=0 | Y=0)
ind = find(Y == 0); % Indices où Y = 0
nbY0 = size(ind, 1); % Nombre de Y = 0
XsY0 = X(ind); % Valeurs de X où Y = 0
PX0sY0 = mean(XsY0 == 0); % Probabilité conditionnelle
fprintf('P(X = 0 | Y = 0) = %.4f\n', PX0sY0);
P(X = 0 | Y = 0) = 0.6102
% Probabilité P(X=0 | Y=1)
ind = find(Y == 1); % Indices où Y = 0
nbY1 = size(ind, 1); % Nombre de Y = 0
XsY1 = X(ind); % Valeurs de X où Y = 0
PX0sY1 = mean(XsY1 == 0); % Probabilité conditionnelle
fprintf('P(X = 0 | Y = 0) = %.4f\n', PX0sY1);
P(X = 0 | Y = 0) = 0.3946
% Probabilité P(Y=0 | X=0)
ind = find(X == 0); % Indices où X = 0
nbX0 = size(ind, 1); % Nombre de X = 0
YsX0 = Y(ind); % Valeurs de Y où X = 0
PY0sX0 = mean(YsX0 == 0); % Probabilité conditionnelle
fprintf('P(Y = 0 | X = 0) = %.4f\n', PY0sX0);
P(Y = 0 | X = 0) = 0.6071
% Probabilité P(Y=0 | X=1)
ind = find(X == 1); % Indices où X = 1
nbX1 = size(ind, 1); % Nombre de X = 1
YsX1 = Y(ind); % Valeurs de Y où X = 1
PY0sX1 = mean(YsX1 == 0); % Probabilité conditionnelle
fprintf('P(Y = 0 | X = 1) = %.4f\n', PY0sX1);
P(Y = 0 | X = 1) = 0.3915
function XY = jointdv(a, b, c, d, n)
u = rand(n, 1); % Génération de n nombres aléatoires entre 0 et 1
XY = zeros(n, 2); % Initialisation du tableau des résultats
XY(k, :) = [0 0]; % Cas (X = 0, Y = 0)
XY(k, :) = [0 1]; % Cas (X = 0, Y = 1)
XY(k, :) = [1 0]; % Cas (X = 1, Y = 0)
XY(k, :) = [1 1]; % Cas (X = 1, Y = 1)