########################################################################################################## #######################################Script for statistical analysis#################################### ########################################################################################################## ########################################################################################################## #Preparation of dataset #Import dataset files via menu under "Environment" - "From Text (Base)" ########################################################################################################## #Attach demographical data into R's Workspace memory attach(Demographical_data) #Attach data into R's Workspace memory attach(Data_for_R) ########################################################################################################## #Demographical data mean(Age) sd(Age) mean(Height) sd(Height) mean(Weight) sd(Weight) ########################################################################################################## #Shapiro Wilk for each device and walking speed #Garmin Vivosmart HR shapiro.test(Diff_GV_1) shapiro.test(Diff_GV_2) shapiro.test(Diff_GV_3) shapiro.test(Diff_GV_4) shapiro.test(Diff_GV_5) shapiro.test(Diff_GV_6) #StepWatch 3 shapiro.test(Diff_SW_1) shapiro.test(Diff_SW_2) shapiro.test(Diff_SW_3) shapiro.test(Diff_SW_4) shapiro.test(Diff_SW_5) shapiro.test(Diff_SW_6) ########################################################################################################## #Median and IQR - Differences in steps #GV | Manual | 1.6 km/t median(Diff_GV_1) IQR(Diff_GV_1) #GV | Manual | 2.4 km/t median(Diff_GV_2) IQR(Diff_GV_2) #GV | Manual | 3.2 km/t median(Diff_GV_3) IQR(Diff_GV_3) #GV | Manual | 4.0 km/t median(Diff_GV_4) IQR(Diff_GV_4) #GV | Manual | 4.8 km/t median(Diff_GV_5) IQR(Diff_GV_5) #GV | Manual | 5.6 km/t median(Diff_GV_6) IQR(Diff_GV_6) #SW | Manual | 1.6 km/t median(Diff_SW_1) IQR(Diff_SW_1) #SW | Manual | 2.4 km/t median(Diff_SW_2) IQR(Diff_SW_2) #SW | Manual | 3.2 km/t median(Diff_SW_3) IQR(Diff_SW_3) #SW | Manual | 4.0 km/t median(Diff_SW_4) IQR(Diff_SW_4) #SW | Manual | 4.8 km/t median(Diff_SW_5) IQR(Diff_SW_5) #SW | Manual | 5.6 km/t median(Diff_SW_6) IQR(Diff_SW_6) ########################################################################################################## #Median and IQR for all devices #Manuel step count median(Manual_1) IQR(Manual_1) median(Manual_2) IQR(Manual_2) median(Manual_3) IQR(Manual_3) median(Manual_4) IQR(Manual_4) median(Manual_5) IQR(Manual_5) median(Manual_6) IQR(Manual_6) #Garmin Vivosmart HR median(GV_1) IQR(GV_1) median(GV_2) IQR(GV_2) median(GV_3) IQR(GV_3) median(GV_4) IQR(GV_4) median(GV_5) IQR(GV_5) median(GV_6) IQR(GV_6) #StepWatch 3 median(SW_1) IQR(SW_1) median(SW_2) IQR(SW_2) median(SW_3) IQR(SW_3) median(SW_4) IQR(SW_4) median(SW_5) IQR(SW_5) median(SW_6) IQR(SW_6) ########################################################################################################## #Mean Absolute Percentage Error #Vivosmart hastighed 1,6 km/t APE1=(abs(GV_1 - Manual_1))/Manual_1*100 mean(APE1) sd(APE1) #Vivosmart hastighed 2,4 km/t APE2=(abs(GV_2 - Manual_2))/Manual_2*100 mean(APE2) sd(APE2) #Vivosmart hastighed 3,2 km/t APE3=(abs(GV_3 - Manual_3))/Manual_3*100 mean(APE3) sd(APE3) #Vivosmart hastighed 4,0 km/t APE4=(abs(GV_4 - Manual_4))/Manual_4*100 mean(APE4) sd(APE4) #Vivosmart hastighed 4,8 km/t APE5=(abs(GV_5 - Manual_5))/Manual_5*100 mean(APE5) sd(APE5) #Vivosmart hastighed 5,6 km/t APE6=(abs(GV_6 - Manual_6))/Manual_6*100 mean(APE6) sd(APE6) #StwpWatch3 hastighed 1,6 km/t APE7=(abs(SW_1 - Manual_1))/Manual_1*100 mean(APE7) sd(APE7) #StepWatch3 hastighed 2,4 km/t APE8=(abs(SW_2 - Manual_2))/Manual_2*100 mean(APE8) sd(APE8) #StepWatch3 hastighed 3,2 km/t APE9=(abs(SW_3 - Manual_3))/Manual_3*100 mean(APE9) sd(APE9) #StepWatch3 hastighed 4,0 km/t APE10=(abs(SW_4 - Manual_4))/Manual_4*100 mean(APE10) sd(APE10) #StepWatch3 hastighed 4,8 km/t APE11=(abs(SW_5 - Manual_5))/Manual_5*100 mean(APE11) sd(APE11) #StepWatch3 hastighed 5,6 km/t APE12=(abs(SW_6 - Manual_6))/Manual_6*100 mean(APE12) sd(APE12) ########################################################################################################## #Bland Altman style plots par(mfrow=c(3,2)) #Garmin Vivosmart HR 1.6 km/h plot(Manual_1,Diff_GV_1, xlim=c(280, 385), ylim=c(-300, 200), cex=1.5, pch=1, col=1, las=1, xlab = "Manual Step count", ylab = "Difference", main = "1.6 km/h", axes = F) axis(side=1, at=seq(280, 385, by=5)) axis(side=2, at=seq(-300, 200, by=20), las=1) box() aq1=quantile(Diff_GV_1, c(.025)) aq2=quantile(Diff_GV_1, c(.5)) aq3=quantile(Diff_GV_1, c(.975)) a_min=min(Manual_1) a_max=max(Manual_1) segments(a_min, aq1, a_max, aq1, lty=2, lwd=2) segments(a_min, aq2, a_max, aq2, lty=1, lwd=2) segments(a_min, aq3, a_max, aq3, lty=2, lwd=2) #Garmin Vivosmart HR 2.4 km/h plot(Manual_2,Diff_GV_2, xlim=c(360, 475), ylim=c(-80, 10), cex=1.5, pch=2, col=2, las=1, xlab = "Manual Step count", ylab = "Difference", main = "2.4 km/h", axes = F) axis(side=1, at=seq(360, 475, by=5)) axis(side=2, at=seq(-80, 10, by=5), las=1) box() bq1=quantile(Diff_GV_2, c(.025)) bq2=quantile(Diff_GV_2, c(.5)) bq3=quantile(Diff_GV_2, c(.975)) b_min=min(Manual_2) b_max=max(Manual_2) segments(b_min, bq1, b_max, bq1, col=2, lty=2, lwd=2) segments(b_min, bq2, b_max, bq2, col=2, lty=1, lwd=2) segments(b_min, bq3, b_max, bq3, col=2, lty=2, lwd=2) #Garmin Vivosmart HR 3.2 km/h plot(Manual_3,Diff_GV_3, xlim=c(420, 535), ylim=c(-40, 10), cex=1.5, pch=3, col=3, las=1, xlab = "Manual Step count", ylab = "Difference", main = "3.2 km/h", axes = F) axis(side=1, at=seq(420, 535, by=5)) axis(side=2, at=seq(-40, 10, by=5), las=1) box() cq1=quantile(Diff_GV_3, c(.025)) cq2=quantile(Diff_GV_3, c(.5)) cq3=quantile(Diff_GV_3, c(.975)) c_min=min(Manual_3) c_max=max(Manual_3) segments(c_min, cq1, c_max, cq1, col=3, lty=2, lwd=2) segments(c_min, cq2, c_max, cq2, col=3, lty=1, lwd=2) segments(c_min, cq3, c_max, cq3, col=3, lty=2, lwd=2) #Garmin Vivosmart HR 4.0 km/h plot(Manual_4,Diff_GV_4, xlim=c(460, 590), ylim=c(-10, 15), cex=1.5, pch=4, col=4, las=1, xlab = "Manual Step count", ylab = "Difference", main = "4.0 km/h", axes = F) axis(side=1, at=seq(460, 590, by=5)) axis(side=2, at=seq(-10, 15, by=2), las=1) box() dq1=quantile(Diff_GV_4, c(.025)) dq2=quantile(Diff_GV_4, c(.5)) dq3=quantile(Diff_GV_4, c(.975)) d_min=min(Manual_4) d_max=max(Manual_4) segments(d_min, dq1, d_max, dq1, col=4, lty=2, lwd=2) segments(d_min, dq2, d_max, dq2, col=4, lty=1, lwd=2) segments(d_min, dq3, d_max, dq3, col=4, lty=2, lwd=2) #Garmin Vivosmart HR 4.8 km/h plot(Manual_5,Diff_GV_5, xlim=c(490, 625), ylim=c(-20, 15), cex=1.5, pch=0, col="darkorange1", las=1, xlab = "Manual Step count", ylab = "Difference", main = "4.8 km/h", axes = F) axis(side=1, at=seq(490, 625, by=5)) axis(side=2, at=seq(-20, 15, by=5), las=1) box() eq1=quantile(Diff_GV_5, c(.025)) eq2=quantile(Diff_GV_5, c(.5)) eq3=quantile(Diff_GV_5, c(.975)) e_min=min(Manual_5) e_max=max(Manual_5) segments(e_min, eq1, e_max, eq1, col="darkorange1", lty=2, lwd=2) segments(e_min, eq2, e_max, eq2, col="darkorange1", lty=1, lwd=2) segments(e_min, eq3, e_max, eq3, col="darkorange1", lty=2, lwd=2) #Garmin Vivosmart HR 5.6 km/h plot(Manual_6,Diff_GV_6, xlim=c(515, 665), ylim=c(-300, 30), cex=1.5, pch=6, col=6, las=1, xlab = "Manual Step count", ylab = "Difference", main = "5.6 km/h", axes = F) axis(side=1, at=seq(515, 665, by=5)) axis(side=2, at=seq(-300, 30, by=30), las=1) box() fq1=quantile(Diff_GV_6, c(.025)) fq2=quantile(Diff_GV_6, c(.5)) fq3=quantile(Diff_GV_6, c(.975)) f_min=min(Manual_6) f_max=max(Manual_6) segments(f_min, fq1, f_max, fq1, col=6, lty=2, lwd=2) segments(f_min, fq2, f_max, fq2, col=6, lty=1, lwd=2) segments(f_min, fq3, f_max, fq3, col=6, lty=2, lwd=2) ######################################################################################################### #StepWatch3 1.6 km/h plot(Manual_1,Diff_SW_1, xlim=c(280, 385), ylim=c(-5, 85), cex=1.5, pch=1, col=1, las=1, xlab = "Manual Step count", ylab = "Difference", main = "1.6 km/h", axes = F) axis(side=1, at=seq(280, 385, by=5)) axis(side=2, at=seq(-5, 85, by=5), las=1) box() aq1=quantile(Diff_SW_1, c(.025)) aq2=quantile(Diff_SW_1, c(.5)) aq3=quantile(Diff_SW_1, c(.975)) a_min=min(Manual_1) a_max=max(Manual_1) segments(a_min, aq1, a_max, aq1, lty=2, lwd=2) segments(a_min, aq2, a_max, aq2, lty=1, lwd=2) segments(a_min, aq3, a_max, aq3, lty=2, lwd=2) #StepWatch3 2.4 km/h plot(Manual_2,Diff_SW_2, xlim=c(360, 475), ylim=c(-5, 20), cex=1.5, pch=2, col=2, las=1, xlab = "Manual Step count", ylab = "Difference", main = "2.4 km/h", axes = F) axis(side=1, at=seq(360, 475, by=5)) axis(side=2, at=seq(-5, 20, by=1), las=1) box() bq1=quantile(Diff_SW_2, c(.025)) bq2=quantile(Diff_SW_2, c(.5)) bq3=quantile(Diff_SW_2, c(.975)) b_min=min(Manual_2) b_max=max(Manual_2) segments(b_min, bq1, b_max, bq1, col=2, lty=2, lwd=2) segments(b_min, bq2, b_max, bq2, col=2, lty=1, lwd=2) segments(b_min, bq3, b_max, bq3, col=2, lty=2, lwd=2) #StepWatch3 3.2 km/h plot(Manual_3,Diff_SW_3, xlim=c(420, 535), ylim=c(-5, 5), cex=1.5, pch=3, col=3, las=1, xlab = "Manual Step count", ylab = "Difference", main = "3.2 km/h", axes = F) axis(side=1, at=seq(420, 535, by=5)) axis(side=2, at=seq(-5, 5, by=1), las=1) box() cq1=quantile(Diff_SW_3, c(.025)) cq2=quantile(Diff_SW_3, c(.5)) cq3=quantile(Diff_SW_3, c(.975)) c_min=min(Manual_3) c_max=max(Manual_3) segments(c_min, cq1, c_max, cq1, col=3, lty=2, lwd=2) segments(c_min, cq2, c_max, cq2, col=3, lty=1, lwd=2) segments(c_min, cq3, c_max, cq3, col=3, lty=2, lwd=2) #StepWatch3 4.0 km/h plot(Manual_4,Diff_SW_4, xlim=c(460, 590), ylim=c(-5, 5), cex=1.5, pch=4, col=4, las=1, xlab = "Manual Step count", ylab = "Difference", main = "4.0 km/h", axes = F) axis(side=1, at=seq(460, 590, by=5)) axis(side=2, at=seq(-5, 5, by=1), las=1) box() dq1=quantile(Diff_SW_4, c(.025)) dq2=quantile(Diff_SW_4, c(.5)) dq3=quantile(Diff_SW_4, c(.975)) d_min=min(Manual_4) d_max=max(Manual_4) segments(d_min, dq1, d_max, dq1, col=4, lty=2, lwd=2) segments(d_min, dq2, d_max, dq2, col=4, lty=1, lwd=2) segments(d_min, dq3, d_max, dq3, col=4, lty=2, lwd=2) #StepWatch3 4.8 km/h plot(Manual_5,Diff_SW_5, xlim=c(490, 625), ylim=c(-5, 5), cex=1.5, pch=0, col="darkorange1", las=1, xlab = "Manual Step count", ylab = "Difference", main = "4.8 km/h", axes = F) axis(side=1, at=seq(490, 625, by=5)) axis(side=2, at=seq(-5, 5, by=1), las=1) box() eq1=quantile(Diff_SW_5, c(.025)) eq2=quantile(Diff_SW_5, c(.5)) eq3=quantile(Diff_SW_5, c(.975)) e_min=min(Manual_5) e_max=max(Manual_5) segments(e_min, eq1, e_max, eq1, col="darkorange1", lty=2, lwd=2) segments(e_min, eq2, e_max, eq2, col="darkorange1", lty=1, lwd=2) segments(e_min, eq3, e_max, eq3, col="darkorange1", lty=2, lwd=2) #StepWatch3 5.6 km/h plot(Manual_6,Diff_SW_6, xlim=c(515, 665), ylim=c(-5, 5), cex=1.5, pch=6, col=6, las=1, xlab = "Manual Step count", ylab = "Difference", main = "5.6 km/h", axes = F) axis(side=1, at=seq(515, 665, by=5)) axis(side=2, at=seq(-5, 5, by=1), las=1) box() fq1=quantile(Diff_SW_6, c(.025)) fq2=quantile(Diff_SW_6, c(.5)) fq3=quantile(Diff_SW_6, c(.975)) f_min=min(Manual_6) f_max=max(Manual_6) segments(f_min, fq1, f_max, fq1, col=6, lty=2, lwd=2) segments(f_min, fq2, f_max, fq2, col=6, lty=1, lwd=2) segments(f_min, fq3, f_max, fq3, col=6, lty=2, lwd=2) ########################################################################################################## ########################################################################################################## #End of script