Сравнить более 2 пропорций Matlab
Имея 4 группы (A,B,C,D), каждая из которых содержит различное количество мужчин и женщин
male_A = 46
male_B = 241
male_C = 202
male_D = 113
female_A = 43
female_B = 134
female_C = 100
female_D = 53
Как я могу определить группы, в которых статистически различается соотношение мужчин и женщин? Предложение с использованием MATLAB будет оценено...
ВОЗМОЖНОЕ РЕШЕНИЕ (ПОЖАЛУЙСТА, ПРОВЕРЬТЕ)
% 1st row: male
% 2nd row: female
cont = [46 241 202 113;
43 134 100 53]
mychi(cont)
%this function should calculate the Chi2
function mychi(cont)
cont = [cont, sum(cont,2)];
cont = [cont; sum(cont,1)];
counter = 1;
for i = 1 : size(cont,1)-1
for j = 1 : size(cont,2)-1
Observed(counter) = cont(i,j);
Expected(counter) = cont(i,end)*cont(end,j)/cont(end:end);
O_E_2(counter) = (abs(Observed(counter)-Expected(counter)).^2)/Expected(counter);
counter = counter + 1;
end
end
DOF = (size(cont,1)-2)*(size(cont,2)-2)
CHI = sum(O_E_2)
end
Возвращенный CHI следует сравнить с показателем для p<0,05, который можно найти здесь
В моем случае
DOF =
3
CHI =
8.0746
CHI> 0,352, поэтому в группах смещенное количество мужчин и женщин...
2 ответа
Не уверен, какое сравнение вы ищете, но отношения могут быть получены
p = 0.05;
ratio_A = male_A ./ (male_A + female_A);
ratio_B = male_B ./ (male_B + female_B);
ratio_C = male_C ./ (male_C + female_C);
ratio_D = male_D ./ (male_D + female_D);
% Как только у вас есть коэффициенты, вы можете выполнить анализ, как указано на% http://au.mathworks.com/help/stats/hypothesis-testing.html
Надеюсь это поможет
Я предлагаю расположить ваши данные в матрице и использовать правильную индексацию в соответствии с вашими предпочтениями. Вот вам пример:
male_A = 46;
male_B = 241;
male_C = 202;
male_D = 113;
female_A = 43;
female_B = 134;
female_C = 100;
female_D = 53;
matrix = [male_A female_A;
male_B female_B;
male_C female_C;
male_D female_D];
groups = ['A', 'B', 'C', 'D'];
total = (matrix(:,1)+matrix(:,2));
male_percentage = matrix(:,1)./total*100
female_percentage = matrix(:,2)./total*100
threshold = 65; %// Example threshold 65%
male_above_threshold = groups(male_percentage>threshold)
female_above_threshold = groups(female_percentage>threshold)
maximum_male_ratio = groups(male_percentage==max(male_percentage))
maximum_female_ratio = groups(female_percentage==max(female_percentage))
В вашем примере вы получите:
male_percentage =
51.6854
64.2667
66.8874
68.0723
female_percentage =
48.3146
35.7333
33.1126
31.9277
male_above_threshold =
CD
female_above_threshold =
Empty string: 1-by-0
maximum_male_ratio =
D
maximum_female_ratio =
A
Выявление статистически разных групп является еще одной проблемой. Вы должны предоставить больше информации, чтобы сделать это.