Loop to calculate multiple P values
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
I have a csv file with heartrate data throughout a day. Currently i have a function which will run a ttest on 2 groups of 60 datapoints which is split about a set point in the day (noon in this case). I want to create some kind of loop which will keep moving the split point in the dataset on and calculate a new p-value each time. I basically want to be able to plot and track the p-values throughout the day to determine when it falls below a certain threshold. Any ideas about how i could go bout doing this?
data = readtable('2021-02-07.csv');
noonindex = find(data.noonTime==1);
A = data.HeartRate(noonindex-60:noonindex);
B = data.HeartRate(noonindex+1:noonindex+61);
[h, p, ci] = ttest2(A,B)
8 comentarios
Scott MacKenzie
el 23 de Abr. de 2021
Editada: Scott MacKenzie
el 23 de Abr. de 2021
OK, it seems there's an entry ever 2 minutes. Why don't you just iterate down the table and insert the code shown in the original question, except using i as the split point:
n = height(data);
for i=n+60:n-61
A = data.HeartRate(i-60:i);
B = data.HeartRate(i+1:i+61);
[h, p, ci] = ttest2(A,B)
end
If you want to start at i=1 and end at i=n, then there's a bit more work to do:
n = height(data);
for i=1:n-1
lowerIdx = max(1, i-60);
upperIdx = min(n, i+60)
A = data.HeartRate(lowerIdx:i);
B = data.HeartRate(i+1:upperIdx);
[h, p, ci] = ttest2(A,B)
% display results, or whatever you want to do at each iteration
end
Respuestas (0)
Ver también
Categorías
Más información sobre Data Preprocessing 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!