- use strcmp, strcmpi to compare strings, not ismember.
- use dot-indexing with tables instead of { }
- You can use indexing directly in input arguments rather than storing indexed results as variables (although that's fine too unless your tables are very big).
Writing more efficient Matlab code to test Null hypothesis (T and P values)
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Askic V
el 21 de Jul. de 2022
Respondida: Askic V
el 21 de Jul. de 2022
Hello Matlab experts,
I have data given in a table shown in the attached picture. What I need to do is to extract math score for female and male students and to test the Null hypothesis that there is no significant difference in the scores.
This is my Matlab code that works and provides expected results. I wonder if this can be writte more efficient or shorter.
% Read the table from the csv file
table = readtable('scores.csv');
% Determine indicies for 'female'
idf = find(ismember(table{:,1}, 'female'))
% Determine indicies for 'male'
idm = find(ismember(table{:,1}, 'male'))
% Extract math scores
math_scores = table{:,6};
% Separate femal scores from male scores
female_scores = math_scores(idf);
male_scores = math_scores(idm);
% Perform testing
[h,p,CI,STATS] = ttest2(male_scores, female_scores)
fprintf('T values = %g\n', STATS.tstat)
fprintf('P values = %g\n', p)
0 comentarios
Respuesta aceptada
Adam Danz
el 21 de Jul. de 2022
Editada: Adam Danz
el 21 de Jul. de 2022
Assuming your table has variable names shown in your image,
% Read the table from the csv file
table = readtable('scores.csv');
isMale = strcmpi(table.gender, 'male');
[h,p,CI,STATS] = ttest2(table.mathScore(isMale), table.mathScore(~isMale));
if gender is not binary,
isMale = strcmpi(table.gender, 'male');
isFemale = strcmpi(table.gender, 'female');
[h,p,CI,STATS] = ttest2(table.mathScore(isMale), table.mathScore(isFemale));
Lesson learned:
0 comentarios
Más respuestas (1)
Ver también
Categorías
Más información sobre Hypothesis Tests en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!