diff --git a/Clean_data_H5.csv b/Clean_data_H5.csv new file mode 100644 index 0000000..681d998 --- /dev/null +++ b/Clean_data_H5.csv @@ -0,0 +1,550 @@ +"","Participant","time_formated","avg_x","avg_y","avg_z","abs_acceleration" +"1","Hangshi Jin",19:00:00,0.94929702970297,-9.27613861386139,-0.465858514851485,9.60990099009901 +"2","Hangshi Jin",19:00:01,0.434050505050505,-10.8777887878788,-1.98201111111111,15.7171515151515 +"3","Hangshi Jin",19:00:02,-0.350274,-8.034969,-1.457862,11.79485 +"4","Hangshi Jin",19:00:03,-1.408624,-11.3402541,-1.710936,15.016 +"5","Hangshi Jin",19:00:04,-1.207212,-7.6797016,-1.272703,12.0047 +"6","Hangshi Jin",19:00:05,-1.548945,-11.07423,-2.1862411,16.0646 +"7","Hangshi Jin",19:00:06,-1.447873,-9.752377,-1.307736,13.1692 +"8","Hangshi Jin",19:00:07,-1.70064356435644,-9.23726851485148,-1.3394099009901,13.8474653465347 +"9","Hangshi Jin",19:00:08,-1.514902,-11.57677,-1.220916,16.1631 +"10","Hangshi Jin",19:00:09,-1.294153,-7.676244,-1.0235646,12.77587 +"11","Hangshi Jin",19:00:10,-1.50183894736842,-11.9694189473684,-1.12590526315789,17.0572631578947 +"12","Hangshi Jin",19:00:11,-1.372212,-7.7329796,-0.908646,13.90316 +"13","Hangshi Jin",19:00:12,-1.63073,-11.574735,-1.502807,16.6516 +"14","Hangshi Jin",19:00:13,-1.061805,-7.80748351,-1.44817,13.45003 +"15","Hangshi Jin",19:00:14,-1.4346851,-11.22119599,-1.622306,16.8226 +"16","Hangshi Jin",19:00:15,-0.955380198019802,-9.41952475247525,-1.11000495049505,14.7033663366337 +"17","Hangshi Jin",19:00:16,-0.257057,-8.57259,-3.07946,13.5775 +"18","Hangshi Jin",19:00:17,-0.450583,-10.4087,-1.629114,11.2329 +"19","Hangshi Jin",19:00:18,-1.7474505,-8.945309,-1.750749,16.46786 +"20","Hangshi Jin",19:00:19,-1.358031,-8.293803,-1.543218,15.2215 +"21","Hangshi Jin",19:00:20,-1.464981,-11.578654,-2.141993,18.0842 +"22","Hangshi Jin",19:00:21,-1.1936779,-7.843342,-1.478896,14.35671 +"23","Hangshi Jin",19:00:22,-1.43799,-11.503867,-1.7427756,17.62045 +"24","Hangshi Jin",19:00:23,-1.09657,-8.4675,-0.87592,14.1114 +"25","Hangshi Jin",19:00:24,-0.121357,-9.3062,-3.640745,11.2721 +"26","Hangshi Jin",19:00:25,-0.176575,-9.7023,0.0667571,9.9875 +"27","Hangshi Jin",19:00:26,-1.029952,-9.036356,-1.7637,13.4242 +"28","Hangshi Jin",19:00:27,-1.177562,-9.37057,-2.115754,14.8 +"29","Hangshi Jin",19:00:28,-1.3851156,-10.335612,-1.295937,15.8447 +"30","Hangshi Jin",19:00:29,-1.217117,-9.590072,-1.070283,15.3293 +"31","Hangshi Jin",19:00:30,-1.44259306930693,-9.71577623762376,-0.915811881188119,15.7511188118812 +"32","Hangshi Jin",19:00:31,-1.484707,-10.94576,-1.329708,17.7804 +"33","Hangshi Jin",19:00:32,-1.34179,-8.038477,-1.512422,14.50524 +"34","Hangshi Jin",19:00:33,-1.342387,-10.77364,-1.76305,15.677 +"35","Hangshi Jin",19:00:34,-1.140988,-8.858871,-1.508736,14.7308 +"36","Hangshi Jin",19:00:35,-1.291657,-8.2633469,-1.55996,13.4944 +"37","Hangshi Jin",19:00:36,-1.217731,-11.7436,-2.464306,17.3057 +"38","Hangshi Jin",19:00:37,-1.182533,-8.022041,-0.9341,12.60739 +"39","Hangshi Jin",19:00:38,-1.004606,-11.91994,-1.8362137,17.2477 +"40","Hangshi Jin",19:00:39,-1.160772,-7.98343,-1.266756,14.1423 +"41","Hangshi Jin",19:00:40,-1.411795,-10.60417,-1.554366,16.6477 +"42","Hangshi Jin",19:00:41,-0.864471,-9.844541,-0.99523,18.3664 +"43","Hangshi Jin",19:00:42,-1.190874,-8.388207,-1.28025,16.0611 +"44","Hangshi Jin",19:00:43,-1.1389223,-11.44747,-1.42082,17.0196 +"45","Hangshi Jin",19:00:44,-1.048478,-8.267818,-1.5767672,13.00617 +"46","Hangshi Jin",19:00:45,-0.714228415841584,-11.3887396039604,-1.9177900990099,16.6382079207921 +"47","Hangshi Jin",19:00:46,-1.361578,-9.242758,-1.861895,16.7401 +"48","Hangshi Jin",19:00:47,-1.06943,-8.198077,-1.43645,13.1763 +"49","Hangshi Jin",19:00:48,-1.152712,-11.8432266,-1.908474,15.91535 +"50","Hangshi Jin",19:00:49,-1.185471,-8.2924423,-1.587508,14.0888 +"51","Hangshi Jin",19:00:50,-0.741669,-11.892541,-2.22086,16.32518 +"52","Hangshi Jin",19:00:51,-1.358751,-8.218409,-2.121174,14.3178 +"53","Hangshi Jin",19:00:52,-0.978476,-8.690725,-2.038094,13.1607 +"54","Hangshi Jin",19:00:53,-1.0000823,-12.2328762,-1.534282,18.8376 +"55","Hangshi Jin",19:00:54,-1.13128351,-8.588876,-1.787369,14.269 +"56","Hangshi Jin",19:00:55,-1.188969,-8.808137,-1.947129,14.2642 +"57","Hangshi Jin",19:00:56,-1.08464,-9.63225,-2.424278,14.7426 +"58","Hangshi Jin",19:00:57,-1.513362,-10.710156,-3.00958,17.0552 +"59","Hangshi Jin",19:00:58,-1.2590596,-9.486918,-2.81473,15.47745 +"60","Hangshi Jin",19:00:59,-1.418529,-10.61606,-2.5311198,15.3529 +"61","Hangshi Jin",19:01:00,-3.3518,-1.7686,-0.38,9.528 +"62","Kaijie Fang",19:00:00,1.54133762376238,-8.77287128712871,1.27193168316832,10.4081188118812 +"63","Kaijie Fang",19:00:01,0.1117481,-9.7692,1.10619,9.855 +"64","Kaijie Fang",19:00:02,0.0231618811881188,-10.3185742574257,0.537085148514851,11.4529801980198 +"65","Kaijie Fang",19:00:03,0.523440594059406,-8.9650697029703,0.384091089108911,15.4277524752475 +"66","Kaijie Fang",19:00:04,0.3041247,-7.29114,1.05891,13.35111 +"67","Kaijie Fang",19:00:05,0.469492079207921,-10.2442475247525,1.51542574257426,16.0005643564356 +"68","Kaijie Fang",19:00:06,0.0192079207920793,-7.83236633663366,0.798782178217822,14.800495049505 +"69","Kaijie Fang",19:00:07,-0.136139,-10.73867,1.50779,17.66643 +"70","Kaijie Fang",19:00:08,0.168060396039604,-6.81366336633663,0.824276237623762,12.943198019802 +"71","Kaijie Fang",19:00:09,-0.85371099009901,-10.9271207920792,1.04476831683168,16.3710792079208 +"72","Kaijie Fang",19:00:10,0.0518552083333333,-6.9750625,1.28676875,12.6555625 +"73","Kaijie Fang",19:00:11,0.313739603960396,-11.1309742574257,1.18657425742574,16.5915049504951 +"74","Kaijie Fang",19:00:12,-0.276836,-7.16522,1.0383541,12.73269 +"75","Kaijie Fang",19:00:13,0.489292079207921,-10.9814752475248,1.5208297029703,16.3084257425743 +"76","Kaijie Fang",19:00:14,0.863040594059406,-7.31990297029703,0.765559108910891,12.4838415841584 +"77","Kaijie Fang",19:00:15,-0.1325177,-10.91176,1.467906,16.04673 +"78","Kaijie Fang",19:00:16,0.412257425742574,-7.33232673267327,0.786269306930693,11.9501287128713 +"79","Kaijie Fang",19:00:17,-0.178005445544554,-10.9894782178218,1.32092475247525,16.2098217821782 +"80","Kaijie Fang",19:00:18,0.3013486,-7.367589,0.4770805,13.0779 +"81","Kaijie Fang",19:00:19,0.135000792079208,-11.0569564356436,1.7512000990099,16.7733663366337 +"82","Kaijie Fang",19:00:20,-0.260789108910891,-6.83940594059406,1.18775217821782,11.7523663366337 +"83","Kaijie Fang",19:00:21,0.019683,-11.58941,0.7208637,17.07774 +"84","Kaijie Fang",19:00:22,-0.118444356435644,-6.99223762376238,1.11116,12.3272871287129 +"85","Kaijie Fang",19:00:23,0.439544653465347,-11.2356712871287,1.25013168316832,17.2274554455446 +"86","Kaijie Fang",19:00:24,-0.0746559,-7.51704,0.53769,13.33647 +"87","Kaijie Fang",19:00:25,0.0619980198019802,-7.48534653465347,0.441437623762376,13.790801980198 +"88","Kaijie Fang",19:00:26,0.143509900990099,-10.9799900990099,1.41726732673267,17.1189603960396 +"89","Kaijie Fang",19:00:27,-0.06834,-7.047923,1.1441882,12.34917 +"90","Kaijie Fang",19:00:28,0.375336633663366,-11.3081584158416,1.04867227722772,17.2108910891089 +"91","Kaijie Fang",19:00:29,0.361848217821782,-7.10958415841584,1.09727821782178,12.4337128712871 +"92","Kaijie Fang",19:00:30,0.153303,-11.65388,0.5288648,17.11183 +"93","Kaijie Fang",19:00:31,0.349815841584158,-6.76294257425743,1.50113762376238,12.8586138613861 +"94","Kaijie Fang",19:00:32,0.653728811881188,-11.280603960396,1.26482178217822,17.150396039604 +"95","Kaijie Fang",19:00:33,0.593099,-7.23158,0.783428,13.0041 +"96","Kaijie Fang",19:00:34,0.921246534653465,-8.64953465346535,1.21825346534653,14.8132673267327 +"97","Kaijie Fang",19:00:35,0.450625742574257,-9.71500792079208,0.903806930693069,16.5955445544554 +"98","Kaijie Fang",19:00:36,1.842959,-6.37516,0.477417,13.55445 +"99","Kaijie Fang",19:00:37,0.657647623762376,-11.4459584158416,1.41750495049505,16.6834455445545 +"100","Kaijie Fang",19:00:38,0.910771287128713,-6.70036633663366,1.22805247524752,12.910396039604 +"101","Kaijie Fang",19:00:39,-0.264681,-11.581299,0.612994,18.27282 +"102","Kaijie Fang",19:00:40,1.42146534653465,-6.61026732673267,1.41092079207921,12.8392871287129 +"103","Kaijie Fang",19:00:41,-0.163369108910891,-8.93853663366337,0.956237623762376,15.6187128712871 +"104","Kaijie Fang",19:00:42,-0.128333,-10.161808,0.86344,15.76863 +"105","Kaijie Fang",19:00:43,0.533586732673267,-7.48746534653465,1.08202574257426,12.4039603960396 +"106","Kaijie Fang",19:00:44,0.382310891089109,-11.3904198019802,1.37886207920792,18.1255841584158 +"107","Kaijie Fang",19:00:45,0.180995,-7.4305387,0.86357,13.96501 +"108","Kaijie Fang",19:00:46,0.283560396039604,-7.48648514851485,0.7813,13.5415247524752 +"109","Kaijie Fang",19:00:47,-0.209538613861386,-11.7798702970297,0.966338613861386,17.2876336633663 +"110","Kaijie Fang",19:00:48,0.431319,-7.38043,0.810847,12.67236 +"111","Kaijie Fang",19:00:49,0.729268316831683,-7.72673267326733,0.392932673267327,12.3795346534653 +"112","Kaijie Fang",19:00:50,0.0636580198019802,-11.9665247524752,1.33403267326733,17.1435643564356 +"113","Kaijie Fang",19:00:51,0.479216,-7.50162,1.136112,12.6509 +"114","Kaijie Fang",19:00:52,0.215726831683168,-7.74346514851485,0.333036633663366,12.4077326732673 +"115","Kaijie Fang",19:00:53,0.310539801980198,-11.3301584158416,1.45507227722772,16.763900990099 +"116","Kaijie Fang",19:00:54,1.118781,-7.205761,1.106811,12.90546 +"117","Kaijie Fang",19:00:55,0.231233366336634,-10.2737623762376,-0.0601633663366336,11.0424752475248 +"118","Kaijie Fang",19:00:56,0.40188,-8.99126,0.7372684,10.3231 +"119","Kaijie Fang",19:00:57,0.760291089108911,-9.14289306930693,0.589346534653465,13.6479900990099 +"120","Kaijie Fang",19:00:58,-1.01792574257426,-11.7290207920792,0.124359405940594,15.6229801980198 +"121","Kaijie Fang",19:00:59,-1.3078094,-8.663491,0.5134602,11.37102 +"122","Kaijie Fang",19:01:00,1.2225,2.8375,1.115475,3.355 +"123","Paolo Rivas",19:00:00,-6.71105158730159,-3.5242551984127,2.60841964285714,10.7689126984127 +"124","Paolo Rivas",19:00:01,0.277406374501992,-9.36852988047809,-0.623373705179283,11.1056573705179 +"125","Paolo Rivas",19:00:02,3.28834523809524,-9.34015396825397,-1.17283928571429,10.7596031746032 +"126","Paolo Rivas",19:00:03,3.63716857142857,-8.53555936507937,-0.613822222222222,13.541626984127 +"127","Paolo Rivas",19:00:04,3.5965119047619,-10.8484134920635,-0.92233253968254,19.9771031746032 +"128","Paolo Rivas",19:00:05,1.87736756972112,-11.4997609561753,-3.08942948207171,19.5702788844622 +"129","Paolo Rivas",19:00:06,2.6633380952381,-10.0822301587302,-1.7383503968254,18.0188134920635 +"130","Paolo Rivas",19:00:07,1.89193253968254,-9.91129007936508,-0.331657817460317,19.6088492063492 +"131","Paolo Rivas",19:00:08,2.1114369047619,-9.09715416666667,-1.07774801587302,20.0176984126984 +"132","Paolo Rivas",19:00:09,1.01452658730159,-6.7067130952381,-1.29289055555556,14.7705158730159 +"133","Paolo Rivas",19:00:10,1.61401458333333,-10.6986147083333,-0.11220875,19.8003083333333 +"134","Paolo Rivas",19:00:11,1.89952738095238,-10.480001984127,-0.940694444444444,21.1912698412698 +"135","Paolo Rivas",19:00:12,1.13554444444444,-9.93099682539683,-0.800001190476191,19.7428174603175 +"136","Paolo Rivas",19:00:13,0.657465873015873,-10.5991384920635,-0.564868253968254,19.7449206349206 +"137","Paolo Rivas",19:00:14,1.91289944444444,-10.2876916666667,-1.41510079365079,19.2815476190476 +"138","Paolo Rivas",19:00:15,2.09677024603175,-9.97859218253968,-1.16109761904762,20.7750992063492 +"139","Paolo Rivas",19:00:16,0.658974900398406,-10.1497456175299,-1.21916613545817,18.7423306772908 +"140","Paolo Rivas",19:00:17,1.74702777777778,-10.3089404761905,-0.650777380952381,21.2788492063492 +"141","Paolo Rivas",19:00:18,1.82270595238095,-9.47448293650794,-0.571372222222222,21.3715634920635 +"142","Paolo Rivas",19:00:19,1.46690317460317,-9.43214007936508,0.348395476190476,22.3637738095238 +"143","Paolo Rivas",19:00:20,0.0346936507936508,-8.13686111111111,-0.790129761904762,12.3000793650794 +"144","Paolo Rivas",19:00:21,0.454460714285714,-10.4243492063492,-1.1681046031746,13.3598412698413 +"145","Paolo Rivas",19:00:22,0.876919047619048,-10.9847579365079,-2.64793492063492,16.4822698412698 +"146","Paolo Rivas",19:00:23,1.34157529880478,-9.62552533864542,-1.06140956175299,13.5148207171315 +"147","Paolo Rivas",19:00:24,1.56681305555556,-10.094421031746,-1.49748055555556,14.5409920634921 +"148","Paolo Rivas",19:00:25,1.84472115079365,-10.6501611111111,-1.6846123015873,20.3827619047619 +"149","Paolo Rivas",19:00:26,1.65038412698413,-10.7796484920635,-1.4546626984127,19.5382936507937 +"150","Paolo Rivas",19:00:27,1.23834007936508,-9.72853849206349,0.608849206349206,20.6212301587302 +"151","Paolo Rivas",19:00:28,2.2096121031746,-7.90295119047619,-1.3231619047619,18.6583015873016 +"152","Paolo Rivas",19:00:29,1.21483895238095,-9.38081388888889,-1.58598174603175,19.8839682539683 +"153","Paolo Rivas",19:00:30,1.76879027888446,-10.4343426294821,0.738365737051793,21.2340637450199 +"154","Paolo Rivas",19:00:31,1.67383103174603,-11.3244952380952,-1.66614777777778,22.6878571428571 +"155","Paolo Rivas",19:00:32,1.9876071031746,-10.9573976190476,-0.922608095238095,21.370876984127 +"156","Paolo Rivas",19:00:33,1.45726523809524,-10.7430448412698,-1.66336349206349,21.4704365079365 +"157","Paolo Rivas",19:00:34,3.23231785714286,-8.68474841269841,0.741119841269841,18.5282936507936 +"158","Paolo Rivas",19:00:35,1.70108373015873,-8.45333333333333,-2.77312698412698,11.6769047619048 +"159","Paolo Rivas",19:00:36,2.3883373015873,-9.64558619444444,-1.96577698412698,19.3379722222222 +"160","Paolo Rivas",19:00:37,1.93955219123506,-10.3864573705179,-0.221531075697211,20.872764940239 +"161","Paolo Rivas",19:00:38,0.908500793650794,-9.94489837301587,-0.32126626984127,19.0361507936508 +"162","Paolo Rivas",19:00:39,1.49177432539683,-11.0920853571429,-1.38363412698413,22.5272222222222 +"163","Paolo Rivas",19:00:40,2.43039349206349,-10.611771031746,-0.330355555555556,23.334246031746 +"164","Paolo Rivas",19:00:41,2.38170595238095,-9.84858345238095,-1.30216988095238,20.941623015873 +"165","Paolo Rivas",19:00:42,1.65583619047619,-10.6807313492063,-0.549119047619048,21.3242857142857 +"166","Paolo Rivas",19:00:43,1.40797857142857,-9.62614761904762,-1.09135912698413,19.9473531746032 +"167","Paolo Rivas",19:00:44,2.25431832669323,-11.755479247012,-0.724944621513944,15.1064143426295 +"168","Paolo Rivas",19:00:45,2.0524623015873,-8.52243253968254,0.0227488095238095,16.0957341269841 +"169","Paolo Rivas",19:00:46,1.79112611111111,-9.18832214285714,-0.644431746031746,13.9025 +"170","Paolo Rivas",19:00:47,2.28260353174603,-9.84912023809524,-0.800829365079365,20.3626587301587 +"171","Paolo Rivas",19:00:48,2.69563611111111,-9.80275833333333,-0.87695,21.0007698412698 +"172","Paolo Rivas",19:00:49,1.81839206349206,-10.8052936507937,-1.12711111111111,22.4967063492063 +"173","Paolo Rivas",19:00:50,1.40104563492063,-10.2677934126984,-1.5555119047619,20.625873015873 +"174","Paolo Rivas",19:00:51,2.43699721115538,-9.79560478087649,-1.70890996015936,21.39203187251 +"175","Paolo Rivas",19:00:52,1.14328916666667,-9.85940595238095,-1.07268849206349,19.0822658730159 +"176","Paolo Rivas",19:00:53,1.6187173015873,-10.0456420634921,-0.017531746031746,20.353373015873 +"177","Paolo Rivas",19:00:54,2.50894845238095,-9.80906408730159,-0.175954365079365,21.1793888888889 +"178","Paolo Rivas",19:00:55,1.94864880952381,-9.65952984126984,-0.59501626984127,20.2261587301587 +"179","Paolo Rivas",19:00:56,2.34249404761905,-9.55055515873016,-1.33391011904762,20.244996031746 +"180","Paolo Rivas",19:00:57,1.61990079365079,-8.59497182539683,-1.18909761904762,19.7532777777778 +"181","Paolo Rivas",19:00:58,1.41671434262948,-9.28070637450199,-2.17138880478088,17.0328685258964 +"182","Paolo Rivas",19:00:59,1.23544007936508,-11.0176984126984,-0.882784920634921,13.1799206349206 +"183","Paolo Rivas",19:01:00,6.04870588235294,-8.89176470588235,0.851529411764706,11.0241176470588 +"184","Qiyu Wu",19:00:00,-0.0896368316831683,4.58807326732673,7.08488118811881,10.4056435643564 +"185","Qiyu Wu",19:00:01,-2.232553,9.22811,-2.014974,9.9255 +"186","Qiyu Wu",19:00:02,-0.701866336633663,9.66227722772277,-1.31108326732673,9.86613861386139 +"187","Qiyu Wu",19:00:03,-1.0776783,10.81492,-0.0281517,12.1278 +"188","Qiyu Wu",19:00:04,-1.04031584158416,7.86910495049505,-0.0477821782178218,11.5269306930693 +"189","Qiyu Wu",19:00:05,-1.98731683168317,10.9786069306931,-0.335991089108911,12.7697821782178 +"190","Qiyu Wu",19:00:06,-1.058336,8.309015,-0.2531175,10.23875 +"191","Qiyu Wu",19:00:07,-1.93845445544554,11.078297029703,-1.00882277227723,12.7968316831683 +"192","Qiyu Wu",19:00:08,-1.041849,8.00251501,-0.1866907,9.5635 +"193","Qiyu Wu",19:00:09,-1.93529702970297,11.2127386138614,-0.178394950495049,12.8631782178218 +"194","Qiyu Wu",19:00:10,-1.24857708333333,8.594409375,0.4993325,10.4704895833333 +"195","Qiyu Wu",19:00:11,-1.49593693069307,9.88674485148515,0.0258188118811881,11.3438217821782 +"196","Qiyu Wu",19:00:12,-1.523654,10.129138,-0.254402,11.96948 +"197","Qiyu Wu",19:00:13,-1.27265346534653,8.1168,0.0474,10.1413762376238 +"198","Qiyu Wu",19:00:14,-2.093752,11.211606,0.06780402,12.90665 +"199","Qiyu Wu",19:00:15,-1.49025643564356,9.1426702970297,0.117541584158416,10.8415445544554 +"200","Qiyu Wu",19:00:16,-1.60834762376238,8.47767227722772,0.368257425742574,10.3357326732673 +"201","Qiyu Wu",19:00:17,-1.767202,11.691906,-0.099172,13.05065 +"202","Qiyu Wu",19:00:18,-1.58894851485149,8.40547930693069,-0.419391089108911,10.1961782178218 +"203","Qiyu Wu",19:00:19,-1.4515,9.078398,-0.021504,10.47201 +"204","Qiyu Wu",19:00:20,-2.60886237623762,10.9137792079208,-0.0540351485148515,12.6928415841584 +"205","Qiyu Wu",19:00:21,-1.44864465346535,9.07467326732673,0.0570029702970297,10.7247623762376 +"206","Qiyu Wu",19:00:22,-1.561671,8.8357595,-0.2053542,10.73443 +"207","Qiyu Wu",19:00:23,-1.79281524752475,9.35936584158416,0.174218811881188,11.4909801980198 +"208","Qiyu Wu",19:00:24,-1.924012,10.490418,0.19488401,12.18385 +"209","Qiyu Wu",19:00:25,-2.23012772277228,10.2498653465347,-0.145559405940594,12.2090297029703 +"210","Qiyu Wu",19:00:26,-1.889376,10.01361,0.0819473,11.66019 +"211","Qiyu Wu",19:00:27,-1.91517326732673,8.76620099009901,-0.0585188118811881,10.5358118811881 +"212","Qiyu Wu",19:00:28,-1.57875306930693,8.9634099009901,-0.115934653465347,10.5040693069307 +"213","Qiyu Wu",19:00:29,-1.4941986,8.939722,0.1749831,10.64977 +"214","Qiyu Wu",19:00:30,-2.37010297029703,10.1079623762376,0.0694227722772277,12.0582178217822 +"215","Qiyu Wu",19:00:31,-2.311664,10.6236,0.298991,12.6824 +"216","Qiyu Wu",19:00:32,-2.20099306930693,9.71142089108911,0.0681886336633663,11.6799702970297 +"217","Qiyu Wu",19:00:33,-2.10765346534653,8.86995732673267,-0.480406930693069,10.552603960396 +"218","Qiyu Wu",19:00:34,-2.14416,8.587125,-0.405651,10.6786 +"219","Qiyu Wu",19:00:35,-2.47356732673267,10.276401980198,-0.638565346534653,11.7707722772277 +"220","Qiyu Wu",19:00:36,-2.6367871,10.18371,-0.788928,11.94866 +"221","Qiyu Wu",19:00:37,-1.91838217821782,8.09896168316832,-0.432130693069307,10.5021782178218 +"222","Qiyu Wu",19:00:38,-2.42090881188119,9.49812673267327,0.0179476237623762,11.447099009901 +"223","Qiyu Wu",19:00:39,-2.924125,10.33837,0.021087,12.2103 +"224","Qiyu Wu",19:00:40,-2.48244554455446,9.49417722772277,0.39625801980198,11.1963366336634 +"225","Qiyu Wu",19:00:41,-2.376257,8.35794,-0.65929,10.99338 +"226","Qiyu Wu",19:00:42,-2.3409396039604,9.50006237623762,0.331788108910891,12.5292079207921 +"227","Qiyu Wu",19:00:43,-3.12265,10.399846,0.811207,13.39084 +"228","Qiyu Wu",19:00:44,-2.40137821782178,8.6633198019802,1.22707920792079,9.80920792079208 +"229","Qiyu Wu",19:00:45,-0.0187034653465346,9.17851485148515,3.82237623762376,10.0742574257426 +"230","Qiyu Wu",19:00:46,-0.7360846,9.2561,3.3823,9.9016 +"231","Qiyu Wu",19:00:47,-2.5644198019802,9.66508910891089,0.404391485148515,11.001 +"232","Qiyu Wu",19:00:48,-2.145823,8.204386,-0.4139136,10.48553 +"233","Qiyu Wu",19:00:49,-2.91108712871287,9.6207504950495,-0.550929702970297,11.6033762376238 +"234","Qiyu Wu",19:00:50,-2.05970297029703,9.58565346534654,0.0370038613861386,11.6691089108911 +"235","Qiyu Wu",19:00:51,-2.761719,10.492268,-0.171396,12.25515 +"236","Qiyu Wu",19:00:52,-2.41335643564356,9.8217,0.362441089108911,11.8007920792079 +"237","Qiyu Wu",19:00:53,-2.662272,8.805194,0.01595701,11.16324 +"238","Qiyu Wu",19:00:54,-2.64198118811881,8.61194653465347,-0.282674950495049,10.6903762376238 +"239","Qiyu Wu",19:00:55,-2.68595643564356,8.75722316831683,0.513238613861386,11.274603960396 +"240","Qiyu Wu",19:00:56,-2.645499,11.02415,0.261114,13.18315 +"241","Qiyu Wu",19:00:57,-2.63329504950495,10.1657702970297,0.26546702970297,11.8667128712871 +"242","Qiyu Wu",19:00:58,-2.429293,8.861897,0.2559417,11.12868 +"243","Qiyu Wu",19:00:59,-2.34744455445545,8.48020099009901,-0.319478217821782,10.1189801980198 +"244","Qiyu Wu",19:01:00,-0.361666666666667,-0.519,-0.289333333333333,0.720666666666667 +"245","Ruoyi Wang",19:00:00,-0.06286499,7.1019,7.9468,10.6951 +"246","Ruoyi Wang",19:00:01,-0.194224444444444,8.40881818181818,5.98463636363636,11.3782828282828 +"247","Ruoyi Wang",19:00:02,0.0130161616161616,7.12013535353535,7.05186565656566,10.5955252525253 +"248","Ruoyi Wang",19:00:03,-0.134757575757576,7.13521515151515,5.75123232323232,9.65972727272727 +"249","Ruoyi Wang",19:00:04,-0.1461172,6.43651,4.673474,8.6841 +"250","Ruoyi Wang",19:00:05,-0.188159909090909,8.40019191919192,5.81023232323232,12.6230909090909 +"251","Ruoyi Wang",19:00:06,-0.2733952,8.323627,5.302132,11.5741 +"252","Ruoyi Wang",19:00:07,-0.459687575757576,6.91387131313131,5.36891717171717,10.3130707070707 +"253","Ruoyi Wang",19:00:08,-0.0387029292929293,7.74229292929293,5.67087080808081,10.5431717171717 +"254","Ruoyi Wang",19:00:09,-0.203623,10.6107,6.803761,12.9813 +"255","Ruoyi Wang",19:00:10,-0.29091170212766,6.06554255319149,3.48432978723404,8.56010638297872 +"256","Ruoyi Wang",19:00:11,-0.492914,8.059777,5.801483,11.31863 +"257","Ruoyi Wang",19:00:12,-0.351478787878788,8.42229393939394,7.00361919191919,13.6435353535354 +"258","Ruoyi Wang",19:00:13,-0.1266945,7.18176,4.86787,10.7176 +"259","Ruoyi Wang",19:00:14,-0.138173737373737,6.73504444444444,4.64679494949495,9.23740404040404 +"260","Ruoyi Wang",19:00:15,-0.395746464646465,8.45105,5.21884747474747,10.7807070707071 +"261","Ruoyi Wang",19:00:16,-0.243789,8.855472,4.96305,10.98777 +"262","Ruoyi Wang",19:00:17,-0.61859797979798,8.40906868686869,5.88778686868687,11.7705050505051 +"263","Ruoyi Wang",19:00:18,-0.456079898989899,7.8339101010101,5.64861616161616,11.0174343434343 +"264","Ruoyi Wang",19:00:19,-0.264337,7.470005,5.600013,10.07094 +"265","Ruoyi Wang",19:00:20,-0.0834535353535354,7.32563333333333,5.95121212121212,10.5408484848485 +"266","Ruoyi Wang",19:00:21,0.0838151515151515,5.90168686868687,6.61882121212121,11.0206666666667 +"267","Ruoyi Wang",19:00:22,-0.3273561,7.88892,5.063061,10.65803 +"268","Ruoyi Wang",19:00:23,-0.337653535353535,7.50899494949495,6.20273131313131,11.2641818181818 +"269","Ruoyi Wang",19:00:24,-0.223237,8.2389,5.711878,11.17599 +"270","Ruoyi Wang",19:00:25,-0.985217676767677,9.0079797979798,7.76662626262626,13.1961515151515 +"271","Ruoyi Wang",19:00:26,-1.15331464646465,6.92795151515152,6.16297171717172,11.2446363636364 +"272","Ruoyi Wang",19:00:27,-0.8911593,7.30802,7.958464,11.68 +"273","Ruoyi Wang",19:00:28,-0.468843434343434,6.36656262626263,7.34852525252525,11.6768686868687 +"274","Ruoyi Wang",19:00:29,-0.102711717171717,6.13756565656566,5.81917575757576,10.7106060606061 +"275","Ruoyi Wang",19:00:30,-0.0198872,6.111346,5.417633,9.7488 +"276","Ruoyi Wang",19:00:31,-1.00340848484848,7.64813212121212,7.05468686868687,11.3968282828283 +"277","Ruoyi Wang",19:00:32,-0.424864646464646,8.01690505050505,8.46934696969697,12.9447575757576 +"278","Ruoyi Wang",19:00:33,-1.455962,4.739841,3.95942,8.7446 +"279","Ruoyi Wang",19:00:34,-1.10957373737374,7.20834949494949,10.0078383838384,14.0138282828283 +"280","Ruoyi Wang",19:00:35,-0.542752525252525,7.64788484848485,4.43599494949495,11.5108484848485 +"281","Ruoyi Wang",19:00:36,-0.414656,6.137292,5.4508,10.89009 +"282","Ruoyi Wang",19:00:37,-1.04546565656566,9.14214141414141,7.79050505050505,14.149595959596 +"283","Ruoyi Wang",19:00:38,-1.142459,6.8194129,3.390477,10.03328 +"284","Ruoyi Wang",19:00:39,-1.57097171717172,8.10000909090909,5.39155858585859,13.4636060606061 +"285","Ruoyi Wang",19:00:40,-0.925423232323232,7.79479696969697,9.20383939393939,13.938797979798 +"286","Ruoyi Wang",19:00:41,-0.720903,5.252143,3.633052,9.04697 +"287","Ruoyi Wang",19:00:42,-0.243221212121212,9.46803838383838,5.612,12.5878787878788 +"288","Ruoyi Wang",19:00:43,0.254883535353535,5.76858585858586,8.06060606060606,10.039898989899 +"289","Ruoyi Wang",19:00:44,-0.2207266,6.0608,8.2011,10.3369 +"290","Ruoyi Wang",19:00:45,-0.0242039292929293,5.52677676767677,6.36084242424242,10.0302121212121 +"291","Ruoyi Wang",19:00:46,-0.199497575757576,7.70668686868687,7.48411919191919,12.7766666666667 +"292","Ruoyi Wang",19:00:47,-0.840748,7.0335,5.55625,11.4263 +"293","Ruoyi Wang",19:00:48,-0.283979797979798,7.1150303030303,5.64483838383838,9.7609696969697 +"294","Ruoyi Wang",19:00:49,-1.204042,7.6339,6.62288,13.28603 +"295","Ruoyi Wang",19:00:50,-0.898569696969697,7.7669595959596,6.83371717171717,11.9839292929293 +"296","Ruoyi Wang",19:00:51,-0.766483838383838,7.31986828282828,4.30833434343434,10.6127575757576 +"297","Ruoyi Wang",19:00:52,-0.1676593,9.663087,6.117103,12.46055 +"298","Ruoyi Wang",19:00:53,-0.517536363636364,5.55063636363636,4.41489090909091,10.2929292929293 +"299","Ruoyi Wang",19:00:54,0.869988888888889,9.96791919191919,7.69724242424242,14.7829292929293 +"300","Ruoyi Wang",19:00:55,-0.409645,6.66067,3.642988,10.61841 +"301","Ruoyi Wang",19:00:56,-0.306787878787879,7.14722727272727,6.97846666666667,13.2148181818182 +"302","Ruoyi Wang",19:00:57,-0.777421212121212,8.12221616161616,8.81425151515151,14.6792121212121 +"303","Ruoyi Wang",19:00:58,0.4912025,3.674174,4.908131,10.6405 +"304","Ruoyi Wang",19:00:59,0.455297373737374,9.40042626262626,4.90268585858586,11.8877373737374 +"305","Ruoyi Wang",19:01:00,-1.657,10.348,5.626,11.96 +"306","Vidya Madhaban",19:00:00,-3.16273111111111,-1.03456691919192,13.0653235606061,20.0558282828283 +"307","Vidya Madhaban",19:00:01,-2.24741512690355,3.38478172588832,9.1278269035533,21.2810406091371 +"308","Vidya Madhaban",19:00:02,-1.63822461363636,6.24809797979798,7.38151623737374,16.2051666666667 +"309","Vidya Madhaban",19:00:03,-1.01460340151515,5.93493712121212,7.70555631313131,14.5939393939394 +"310","Vidya Madhaban",19:00:04,-0.0743911616161616,5.83655631313131,7.9147598989899,14.1778282828283 +"311","Vidya Madhaban",19:00:05,-0.666272626262626,5.8134578030303,6.53898166666667,13.1282828282828 +"312","Vidya Madhaban",19:00:06,0.422984166666667,5.83888383838384,7.12074671717172,14.1143686868687 +"313","Vidya Madhaban",19:00:07,1.54958964646465,5.89401111111111,7.27618333333333,13.670404040404 +"314","Vidya Madhaban",19:00:08,1.3533444949495,6.0505303030303,6.37211641414141,12.1895202020202 +"315","Vidya Madhaban",19:00:09,1.71843467929293,6.06103861111111,7.74563560606061,14.0939646464646 +"316","Vidya Madhaban",19:00:10,1.06769857142857,5.92526984126984,8.41216878306878,16.3043650793651 +"317","Vidya Madhaban",19:00:11,-0.45859345959596,5.518825,9.25027641414141,16.6069696969697 +"318","Vidya Madhaban",19:00:12,0.596544931818182,6.09250707070707,9.47806186868687,16.0295707070707 +"319","Vidya Madhaban",19:00:13,0.0713658838383838,6.57534949494949,9.13054146464646,16.0033080808081 +"320","Vidya Madhaban",19:00:14,0.909501868686869,5.61846035353535,8.54833666666667,16.1647474747475 +"321","Vidya Madhaban",19:00:15,0.617700833333333,5.36960252525253,8.32381170454545,15.2488131313131 +"322","Vidya Madhaban",19:00:16,2.20386388888889,4.13398409090909,7.93141464646465,14.5535858585859 +"323","Vidya Madhaban",19:00:17,1.24144863636364,5.05094343434343,6.57848569444444,12.4621464646465 +"324","Vidya Madhaban",19:00:18,0.453403797468354,3.87223848101266,8.38986169620253,15.6939240506329 +"325","Vidya Madhaban",19:00:19,-1.33260176767677,5.67826085858586,8.14848863636364,15.4062373737374 +"326","Vidya Madhaban",19:00:20,-0.637821363636364,6.04702563131313,7.95763744949495,15.7005808080808 +"327","Vidya Madhaban",19:00:21,-1.1781096969697,7.12816237373737,7.63991944444444,14.7837121212121 +"328","Vidya Madhaban",19:00:22,-1.40111262626263,6.8202476010101,7.6218351010101,14.7044949494949 +"329","Vidya Madhaban",19:00:23,-1.57456363636364,6.73349949494949,7.2879244949495,14.8598232323232 +"330","Vidya Madhaban",19:00:24,-2.13276414141414,6.89970580808081,8.06725656565657,14.9244696969697 +"331","Vidya Madhaban",19:00:25,-2.57016818181818,6.16424747474747,8.12500176767677,15.927095959596 +"332","Vidya Madhaban",19:00:26,-2.27824636363636,5.86990883838384,8.34702196969697,15.5800757575758 +"333","Vidya Madhaban",19:00:27,-1.98928108585859,5.05107272727273,8.05040707070707,15.2763636363636 +"334","Vidya Madhaban",19:00:28,-2.04618823232323,4.61119949494949,7.41258611111111,14.4411363636364 +"335","Vidya Madhaban",19:00:29,-1.60098181818182,4.59064065656566,6.93425934343434,13.4238888888889 +"336","Vidya Madhaban",19:00:30,-0.973587474747475,5.35641060606061,7.07135151515152,13.2271464646465 +"337","Vidya Madhaban",19:00:31,-1.28331569949495,6.13703636363636,7.6937446969697,13.9679292929293 +"338","Vidya Madhaban",19:00:32,-0.695472474747475,6.6360095959596,6.91320872474747,13.3997727272727 +"339","Vidya Madhaban",19:00:33,-1.3600454040404,6.14221909090909,8.11930227272727,15.3890151515152 +"340","Vidya Madhaban",19:00:34,-2.26595181818182,6.14171868686869,8.7605478030303,16.5058080808081 +"341","Vidya Madhaban",19:00:35,-1.47031580808081,5.54535151515152,9.90330791666667,17.2191666666667 +"342","Vidya Madhaban",19:00:36,-2.94484121212121,7.06176085858586,6.88768964646465,14.8326262626263 +"343","Vidya Madhaban",19:00:37,-2.75443434343434,7.00687121212121,5.58505808080808,14.0328282828283 +"344","Vidya Madhaban",19:00:38,-2.72946909090909,6.21534767676768,5.82781090909091,13.5414646464646 +"345","Vidya Madhaban",19:00:39,-2.57522727272727,6.13402272727273,4.45419772727273,12.5481313131313 +"346","Vidya Madhaban",19:00:40,-2.52686515151515,6.14385454545455,5.45753055555556,12.9438383838384 +"347","Vidya Madhaban",19:00:41,-2.59633108860759,7.29482086075949,6.24331637974684,13.7280759493671 +"348","Vidya Madhaban",19:00:42,-1.80599924242424,7.968775,6.60213494949495,14.4681565656566 +"349","Vidya Madhaban",19:00:43,-2.41191742424242,7.73344772727273,6.74246529040404,14.4434848484848 +"350","Vidya Madhaban",19:00:44,-2.43792358585859,7.75125126262626,7.31406919191919,14.5269444444444 +"351","Vidya Madhaban",19:00:45,-2.01010631313131,7.70640404040404,6.08855404040404,14.9572474747475 +"352","Vidya Madhaban",19:00:46,-2.34153055555556,6.81526585858586,5.65366186868687,14.8725757575758 +"353","Vidya Madhaban",19:00:47,-2.6196946969697,5.35178914141414,5.30620212121212,14.2409090909091 +"354","Vidya Madhaban",19:00:48,-2.46648782828283,6.05372419191919,5.61486217171717,13.9831565656566 +"355","Vidya Madhaban",19:00:49,-1.7215870959596,6.33973358585859,6.93969426767677,15.5329797979798 +"356","Vidya Madhaban",19:00:50,-2.44792348484848,6.2187952020202,7.40040328282828,17.6901767676768 +"357","Vidya Madhaban",19:00:51,-3.41907803030303,7.23432146464646,7.01838342171717,16.4505303030303 +"358","Vidya Madhaban",19:00:52,-2.16699356060606,7.29444015151515,6.56042575757576,16.8968939393939 +"359","Vidya Madhaban",19:00:53,-2.71206287878788,7.59292974747475,6.9063154040404,16.5405555555556 +"360","Vidya Madhaban",19:00:54,-3.21119828282828,7.65251590909091,7.28808691919192,16.3083585858586 +"361","Vidya Madhaban",19:00:55,-2.92045707070707,7.12692398989899,7.31807636363636,15.8417676767677 +"362","Vidya Madhaban",19:00:56,-3.26307828282828,5.94081717171717,5.89244558080808,15.1889393939394 +"363","Vidya Madhaban",19:00:57,-1.74371727272727,4.66961111111111,5.41526792929293,14.2440909090909 +"364","Vidya Madhaban",19:00:58,-2.33475732323232,5.58732575757576,6.46262061868687,14.7691919191919 +"365","Vidya Madhaban",19:00:59,-4.14314873737374,7.29174287878788,6.47528704545455,16.4510101010101 +"366","Vidya Madhaban",19:01:00,-0.9995875,-3.17875,-0.385675,3.5275 +"367","Wenning Xiao",19:00:00,-1.32247524752475,9.63940594059406,0.0466336633663366,9.7509900990099 +"368","Wenning Xiao",19:00:01,-1.8407,9.5066,-1.2932,14.6293 +"369","Wenning Xiao",19:00:02,-1.67237623762376,10.2381188118812,-1.12475247524752,15.519801980198 +"370","Wenning Xiao",19:00:03,-1.6243,8.8271,-1.2684,12.9004 +"371","Wenning Xiao",19:00:04,-1.00594059405941,8.89584158415842,-2.60811881188119,9.92584158415842 +"372","Wenning Xiao",19:00:05,-2.0836,10.2901,-0.8356,10.8341 +"373","Wenning Xiao",19:00:06,-1.41693069306931,9.39049504950495,-0.918118811881188,15.6025742574257 +"374","Wenning Xiao",19:00:07,-1.4323,9.3681,-0.8146,15.6545 +"375","Wenning Xiao",19:00:08,-1.84178217821782,9.03257425742574,-0.662871287128713,10.8259405940594 +"376","Wenning Xiao",19:00:09,-1.2983,7.8773,-0.6428,12.1393 +"377","Wenning Xiao",19:00:10,-2.30864583333333,10.78,-1.63677083333333,16.9819791666667 +"378","Wenning Xiao",19:00:11,-1.5519,9.9734,-1.2898,16.5653 +"379","Wenning Xiao",19:00:12,-2.18336633663366,10.9043564356436,-1.5449504950495,15.2973267326733 +"380","Wenning Xiao",19:00:13,-1.32633663366337,8.32722772277228,-1.01415841584158,14.3105940594059 +"381","Wenning Xiao",19:00:14,-1.2088,6.8627,-0.9081,13.4914 +"382","Wenning Xiao",19:00:15,-1.98277227722772,10.3142574257426,-1.7470297029703,16.8640594059406 +"383","Wenning Xiao",19:00:16,-1.8813,10.1529,-1.6097,16.3835 +"384","Wenning Xiao",19:00:17,-1.7349504950495,10.5225742574257,-1.56653465346535,15.7234653465347 +"385","Wenning Xiao",19:00:18,-1.7036,9.6739,-1.8514,15.6914 +"386","Wenning Xiao",19:00:19,-0.826633663366337,6.58772277227723,-0.778118811881188,12.7238613861386 +"387","Wenning Xiao",19:00:20,-1.8144,9.1031,-1.4288,15.7614 +"388","Wenning Xiao",19:00:21,-2.02049504950495,10.2966336633663,-2.06415841584158,15.6565346534653 +"389","Wenning Xiao",19:00:22,-1.9108,9.906,-1.7663,16.7486 +"390","Wenning Xiao",19:00:23,-1.6929702970297,10.4152475247525,-1.58831683168317,16.1786138613861 +"391","Wenning Xiao",19:00:24,-1.97861386138614,9.67336633663366,-2.1509900990099,15.169702970297 +"392","Wenning Xiao",19:00:25,-0.6503,6.0165,-0.6834,12.736 +"393","Wenning Xiao",19:00:26,-1.77009900990099,9.51821782178218,-1.65990099009901,15.7679207920792 +"394","Wenning Xiao",19:00:27,-2.0559,10.5602,-2.234,15.5041 +"395","Wenning Xiao",19:00:28,-1.56712871287129,9.54188118811881,-1.96653465346535,15.720099009901 +"396","Wenning Xiao",19:00:29,-2.0182,10.9669,-1.7186,15.7411 +"397","Wenning Xiao",19:00:30,-1.28643564356436,8.65059405940594,-1.59425742574257,14.499801980198 +"398","Wenning Xiao",19:00:31,-0.9749,6.7501,-0.8272,12.9804 +"399","Wenning Xiao",19:00:32,-1.54712871287129,9.2209900990099,-1.67435643564356,15.3463366336634 +"400","Wenning Xiao",19:00:33,-2.0136,10.3904,-2.015,16.9599 +"401","Wenning Xiao",19:00:34,-2.06534653465347,9.53514851485149,-2.18108910891089,16.260396039604 +"402","Wenning Xiao",19:00:35,-1.8231,10.5984,-1.585,15.4852 +"403","Wenning Xiao",19:00:36,-1.96881188118812,9.82118811881188,-1.9560396039604,15.1763366336634 +"404","Wenning Xiao",19:00:37,-1.3409900990099,8.60049504950495,-1.35128712871287,14.97 +"405","Wenning Xiao",19:00:38,-0.8453,6.7862,-0.9442,13.2079 +"406","Wenning Xiao",19:00:39,-1.77435643564356,9.66,-1.57257425742574,15.1547524752475 +"407","Wenning Xiao",19:00:40,-2.1056,10.3015,-1.9067,15.7159 +"408","Wenning Xiao",19:00:41,-1.56118811881188,9.45831683168317,-1.72158415841584,16.1277227722772 +"409","Wenning Xiao",19:00:42,-1.8065,10.2518,-1.595,15.842 +"410","Wenning Xiao",19:00:43,-2.02207920792079,10.1247524752475,-2.25683168316832,15.0576237623762 +"411","Wenning Xiao",19:00:44,-1.5366,8.8397,-1.7801,14.8865 +"412","Wenning Xiao",19:00:45,-1.1629702970297,8.82207920792079,-1.22277227722772,14.0222772277228 +"413","Wenning Xiao",19:00:46,-1.1862,7.274,-1.2993,12.5687 +"414","Wenning Xiao",19:00:47,-1.56138613861386,9.16168316831683,-1.57861386138614,14.6529702970297 +"415","Wenning Xiao",19:00:48,-1.9469,10.129,-2.1692,15.4598 +"416","Wenning Xiao",19:00:49,-1.58594059405941,9.81118811881188,-1.93920792079208,15.4361386138614 +"417","Wenning Xiao",19:00:50,-1.41465346534653,9.59910891089109,-1.78722772277228,15.0793069306931 +"418","Wenning Xiao",19:00:51,-1.4794,10.3504,-1.5497,15.0667 +"419","Wenning Xiao",19:00:52,-1.82138613861386,10.0440594059406,-2.13356435643564,14.720198019802 +"420","Wenning Xiao",19:00:53,-1.312,8.5987,-1.4518,14.3564 +"421","Wenning Xiao",19:00:54,-1.20613861386139,8.19881188118812,-0.775445544554455,13.4526732673267 +"422","Wenning Xiao",19:00:55,-1.471,7.8923,-1.5415,13.1588 +"423","Wenning Xiao",19:00:56,-2.22455445544554,11.3625742574257,-1.55059405940594,13.5432673267327 +"424","Wenning Xiao",19:00:57,-0.8676,9.3312,-1.7171,10.0305 +"425","Wenning Xiao",19:00:58,-1.87623762376238,10.3914851485149,-0.173168316831683,11.6090099009901 +"426","Wenning Xiao",19:00:59,-1.8141,9.7721,-1.7531,16.5451 +"427","Wenning Xiao",19:01:00,2.20666666666667,-7.33,-1.38,9.205 +"428","Xiyun Zhang",19:00:00,3.7883732,-8.50422,0.4318589,9.7566 +"429","Xiyun Zhang",19:00:01,5.04246383838384,-9.155,-2.44029494949495,15.49 +"430","Xiyun Zhang",19:00:02,3.52386,-7.241809,-0.915422,13.0178 +"431","Xiyun Zhang",19:00:03,3.413998,-8.34013,-1.000287,13.0253 +"432","Xiyun Zhang",19:00:04,-0.567983838383838,-10.7962525252525,-2.18277878787879,14.0611111111111 +"433","Xiyun Zhang",19:00:05,-1.529209,-9.10563,-1.1785374,13.04902 +"434","Xiyun Zhang",19:00:06,-1.33306262626263,-8.77668282828283,-1.25963434343434,12.6942424242424 +"435","Xiyun Zhang",19:00:07,-1.123122,-10.78925,-1.537526,13.6208 +"436","Xiyun Zhang",19:00:08,-1.098999,-9.698699,-1.006,13.6245 +"437","Xiyun Zhang",19:00:09,-1.55900262626263,-7.8669797979798,-0.771640404040404,11.365505050505 +"438","Xiyun Zhang",19:00:10,-1.21598,-11.3110484210526,-1.57635157894737,14.2095789473684 +"439","Xiyun Zhang",19:00:11,-1.352444,-9.29203,-0.938568,12.9729 +"440","Xiyun Zhang",19:00:12,-1.27969,-8.386867,-1.106492,12.6865 +"441","Xiyun Zhang",19:00:13,-1.1380202020202,-10.9121919191919,-1.41968888888889,13.9896565656566 +"442","Xiyun Zhang",19:00:14,-1.286862,-9.565863,-1.279638,13.00453 +"443","Xiyun Zhang",19:00:15,-1.1562185,-8.88475,-1.456762,12.4283 +"444","Xiyun Zhang",19:00:16,-1.32435555555556,-10.9605171717172,-1.54791848484848,13.9491919191919 +"445","Xiyun Zhang",19:00:17,-1.2246,-7.47222,-1.006476,11.6878 +"446","Xiyun Zhang",19:00:18,-1.2260797979798,-11.7242222222222,-1.85857373737374,14.4367878787879 +"447","Xiyun Zhang",19:00:19,-1.36229,-7.590701,-0.87872,10.66811 +"448","Xiyun Zhang",19:00:20,-1.17101,-10.60494,-1.785265,14.4767 +"449","Xiyun Zhang",19:00:21,-1.57149090909091,-9.75436565656566,-1.10807676767677,13.5917171717172 +"450","Xiyun Zhang",19:00:22,-1.16072,-8.845256,-1.16614,12.3528 +"451","Xiyun Zhang",19:00:23,-0.898753,-10.17819,-1.054129,12.26157 +"452","Xiyun Zhang",19:00:24,-1.08447070707071,-10.4249090909091,-1.95196565656566,12.1631313131313 +"453","Xiyun Zhang",19:00:25,-1.560894,-7.6222523,-0.46888,12.0695 +"454","Xiyun Zhang",19:00:26,-1.31244646464646,-11.2653545454545,-2.11111111111111,14.0351818181818 +"455","Xiyun Zhang",19:00:27,-0.9954072,-8.07681,-1.089474,11.4781 +"456","Xiyun Zhang",19:00:28,-1.00747,-10.770593,-0.9892604,13.49711 +"457","Xiyun Zhang",19:00:29,-1.01613333333333,-9.29760606060606,-1.60482727272727,12.8047575757576 +"458","Xiyun Zhang",19:00:30,-1.153345,-9.4676,-1.5705974,12.9276 +"459","Xiyun Zhang",19:00:31,-0.9457123,-9.8905,-1.9371941,13.0189 +"460","Xiyun Zhang",19:00:32,-1.30177171717172,-7.88614242424242,-1.07863636363636,11.6052525252525 +"461","Xiyun Zhang",19:00:33,-0.896915,-11.90428,-1.634564,14.8601 +"462","Xiyun Zhang",19:00:34,-1.10629919191919,-8.38724444444444,-1.45348282828283,11.6146464646465 +"463","Xiyun Zhang",19:00:35,-1.365884,-9.07946,-1.136998,12.206 +"464","Xiyun Zhang",19:00:36,-0.825089,-11.074498,-2.0986,14.0647 +"465","Xiyun Zhang",19:00:37,-0.787288282828283,-8.3240202020202,-1.55488888888889,11.6292929292929 +"466","Xiyun Zhang",19:00:38,-1.236376,-9.531981,-1.473197,12.9173 +"467","Xiyun Zhang",19:00:39,-0.711319,-10.95141,-1.8961942,14.222 +"468","Xiyun Zhang",19:00:40,-0.92759696969697,-7.79486868686869,-0.89938101010101,11.7270707070707 +"469","Xiyun Zhang",19:00:41,-1.287816,-10.650667,-1.668253,14.0531 +"470","Xiyun Zhang",19:00:42,-0.764402222222222,-9.80687878787879,-2.93047474747475,13.689797979798 +"471","Xiyun Zhang",19:00:43,-0.87206251,-8.394372,-1.633501,12.3669 +"472","Xiyun Zhang",19:00:44,-0.93519,-8.59569,-1.4972414,12.0181 +"473","Xiyun Zhang",19:00:45,-0.873366666666667,-11.1714444444444,-1.95185252525253,14.6507070707071 +"474","Xiyun Zhang",19:00:46,-0.9543398,-10.107971,-2.471442,14.5045 +"475","Xiyun Zhang",19:00:47,-1.06937,-8.530846,-1.186068,11.6835 +"476","Xiyun Zhang",19:00:48,-1.09379090909091,-8.6699595959596,-1.14238181818182,11.9225252525253 +"477","Xiyun Zhang",19:00:49,-0.7501283,-11.06716,-2.978895,13.696 +"478","Xiyun Zhang",19:00:50,-0.82139,-9.633604,-1.85788,12.1961 +"479","Xiyun Zhang",19:00:51,-1.13351717171717,-8.02644545454545,-1.56125858585859,12.3987878787879 +"480","Xiyun Zhang",19:00:52,-0.868527,-8.88329,-1.455712,12.0734 +"481","Xiyun Zhang",19:00:53,-1.42377575757576,-11.2632323232323,-2.1724398989899,14.2243434343434 +"482","Xiyun Zhang",19:00:54,-0.97202,-10.013465,-2.126145,13.008 +"483","Xiyun Zhang",19:00:55,-0.830193,-8.727466,-1.98422,13.0555 +"484","Xiyun Zhang",19:00:56,-0.982321212121212,-8.91109090909091,-1.30930707070707,13.0428282828283 +"485","Xiyun Zhang",19:00:57,-0.764036,-9.18005,-2.169951,13.2456 +"486","Xiyun Zhang",19:00:58,-0.749474,-9.08357,-1.833025,12.3178 +"487","Xiyun Zhang",19:00:59,-0.863114141414141,-10.6258262626263,-2.27665656565657,13.6908080808081 +"488","Xiyun Zhang",19:01:00,-5.236,-20.18,-6.854,22.08 +"489","Yifei Zhang",19:00:00,-5.28745346534653,-6.44417821782178,-1.95370396039604,10.7581188118812 +"490","Yifei Zhang",19:00:01,0.860235,-10.85988,-3.49297102,13.63874 +"491","Yifei Zhang",19:00:02,-0.4641498,-7.2952508,-2.2326402,13.57896 +"492","Yifei Zhang",19:00:03,1.76037920792079,-10.7072475247525,-3.99195544554455,16.7489405940594 +"493","Yifei Zhang",19:00:04,0.704209,-7.276487,-3.080009,13.71125 +"494","Yifei Zhang",19:00:05,3.08335841584158,-10.9073257425743,-3.515,17.3895643564356 +"495","Yifei Zhang",19:00:06,0.166203,-6.65739,-2.757044,13.38107 +"496","Yifei Zhang",19:00:07,3.528214,-11.56602,-2.153234,15.46227 +"497","Yifei Zhang",19:00:08,1.63835346534653,-6.90202376237624,-1.55874148514851,11.4066534653465 +"498","Yifei Zhang",19:00:09,0.630269,-11.661498,-2.864837,17.08312 +"499","Yifei Zhang",19:00:10,-0.799616666666667,-6.73513229166667,-2.35602291666667,12.8690104166667 +"500","Yifei Zhang",19:00:11,0.155385841584158,-11.2476759405941,-2.76835247524752,16.2975445544554 +"501","Yifei Zhang",19:00:12,-0.084261,-9.42524,-1.2142891,15.31071 +"502","Yifei Zhang",19:00:13,-0.562852,-8.238072,-3.757551,14.28754 +"503","Yifei Zhang",19:00:14,0.74879900990099,-10.1160405940594,-4.08371386138614,16.0071584158416 +"504","Yifei Zhang",19:00:15,-0.38002,-7.005946,-1.7468,11.8146 +"505","Yifei Zhang",19:00:16,-0.705015841584158,-11.2784059405941,-4.3495702970297,15.3057524752475 +"506","Yifei Zhang",19:00:17,0.3915016,-6.225015,-3.98714,13.07268 +"507","Yifei Zhang",19:00:18,-0.866328712871287,-10.5377881188119,-4.00682128712871,16.5380198019802 +"508","Yifei Zhang",19:00:19,-0.280512,-6.544424,-3.00142,11.9224 +"509","Yifei Zhang",19:00:20,-0.484654,-11.28743,-4.3466827,16.01598 +"510","Yifei Zhang",19:00:21,-1.0968603960396,-7.24359188118812,-2.59313663366337,12.1729702970297 +"511","Yifei Zhang",19:00:22,-0.970513,-10.649442,-4.3000234,15.686 +"512","Yifei Zhang",19:00:23,-0.776934653465347,-8.31629702970297,-4.26425544554455,15.4238613861386 +"513","Yifei Zhang",19:00:24,-0.045742,-9.704822,-4.030701,14.9175 +"514","Yifei Zhang",19:00:25,-0.294885247524752,-6.94463366336634,-2.32917128712871,13.4083465346535 +"515","Yifei Zhang",19:00:26,-0.4444426,-10.55158,-6.5204378,19.0385 +"516","Yifei Zhang",19:00:27,0.951592,-5.835877,-3.4614198,14.00264 +"517","Yifei Zhang",19:00:28,-0.465005940594059,-11.3929881188119,-5.33240495049505,17.7634455445545 +"518","Yifei Zhang",19:00:29,-1.866814,-6.36704,-3.12568,14.96088 +"519","Yifei Zhang",19:00:30,0.253080198019802,-10.9975534653465,-5.45395049504951,16.7160792079208 +"520","Yifei Zhang",19:00:31,0.0899497,-6.82818,-2.171996,13.35308 +"521","Yifei Zhang",19:00:32,0.498696,-9.26592,-4.189038,15.2486 +"522","Yifei Zhang",19:00:33,-1.93846732673267,-9.70277623762376,-4.39089207920792,17.0853663366337 +"523","Yifei Zhang",19:00:34,-0.234564,-7.633747,-1.5250546,13.43849 +"524","Yifei Zhang",19:00:35,-1.56126396039604,-10.2428287128713,-1.13197811881188,17.1566138613861 +"525","Yifei Zhang",19:00:36,0.0763336,-9.1060728,-5.183817,18.21061 +"526","Yifei Zhang",19:00:37,-0.969609900990099,-7.51056435643564,-2.57926138613861,14.5156435643564 +"527","Yifei Zhang",19:00:38,-0.2333484,-11.3274077,-3.238751,17.92909 +"528","Yifei Zhang",19:00:39,-1.941378,-6.200436,-2.20229,14.19857 +"529","Yifei Zhang",19:00:40,0.3535,-11.2660297029703,-4.7150198019802,18.6207920792079 +"530","Yifei Zhang",19:00:41,-0.303196,-7.8992071,-2.5914884,13.19841 +"531","Yifei Zhang",19:00:42,-0.935660396039604,-6.91825742574257,-0.951845544554455,14.0727128712871 +"532","Yifei Zhang",19:00:43,-1.4961471,-11.94463,-1.8774285,17.00163 +"533","Yifei Zhang",19:00:44,-0.993919801980198,-6.5909198019802,-1.34604752475248,14.5929603960396 +"534","Yifei Zhang",19:00:45,-0.903499,-7.807754,-3.55046701,13.54366 +"535","Yifei Zhang",19:00:46,-1.569033,-12.365669,-2.50682,19.23975 +"536","Yifei Zhang",19:00:47,-1.43171643564356,-7.65289306930693,-1.22098118811881,13.9328712871287 +"537","Yifei Zhang",19:00:48,-0.31388,-8.648352,-1.17791,16.02132 +"538","Yifei Zhang",19:00:49,-1.85184752475248,-9.03425544554455,-3.16579108910891,15.3352376237624 +"539","Yifei Zhang",19:00:50,-1.4389662,-7.280415,-1.140979,14.68952 +"540","Yifei Zhang",19:00:51,0.149238613861386,-9.76421782178218,-2.53062574257426,16.479099009901 +"541","Yifei Zhang",19:00:52,-1.7560842,-9.67454,-3.530073,17.34506 +"542","Yifei Zhang",19:00:53,-1.591129,-6.851311,-1.893238,15.2865 +"543","Yifei Zhang",19:00:54,-1.16568445544554,-8.00173861386139,-1.70047544554455,13.320495049505 +"544","Yifei Zhang",19:00:55,-1.390209,-12.037345,-0.991186,17.75659 +"545","Yifei Zhang",19:00:56,-1.06844554455446,-8.30821683168317,-1.07310594059406,13.8331386138614 +"546","Yifei Zhang",19:00:57,-1.4023386,-8.91228,-2.050054,14.23182 +"547","Yifei Zhang",19:00:58,-1.38795584158416,-7.58660495049505,-3.33188415841584,14.269 +"548","Yifei Zhang",19:00:59,-1.24143,-9.9605,-0.51956649,10.4898 +"549","Yifei Zhang",19:01:00,0.5214,-10.38,-0.2538,10.38 diff --git a/Group assign-conclusion.docx b/Group assign-conclusion.docx new file mode 100644 index 0000000..479311d Binary files /dev/null and b/Group assign-conclusion.docx differ diff --git a/HUDK4050 HW6.Rmd b/HUDK4050 HW6.Rmd new file mode 100644 index 0000000..eb95743 --- /dev/null +++ b/HUDK4050 HW6.Rmd @@ -0,0 +1,203 @@ +--- +title: "HUDK4050 HW6" +author: "Hangshi Jin" +date: "12/11/2020" +output: html_document +--- + +Data: +x: Back and Forth +y: Up and Down +z: Left and Right +Acceleration: Acceleration during the activity + +Survey Questions: +Name: Name who participates in the activity +Gender: The person's gender: female or Male +Height: Personal Height in cm +Weight: Personal Weight in kg +Fitness: Overall fitness level on a scale of 1- 5: 1. Poor 2. Fair 3. Good 4. Very good 5. Excellent. +Favor: How much the person prefer jumping: 1 being do not like and 5 being like it very much. +Prior: If the person has prior experience of jumping rope or not: 1 being do not have much experience and 5 being have a lot of experience. +Illness: Level of illness that might effect the person during jumping rope: 0 being have no illness and 5 being strongly effect by the illness. +Happyness: Level of happiness before the person jumping rope: 1 being very sad and 5 being really happy. +time_interval: The time when the person did the activity: Morning (6 am - 12pm), Afternoon (12pm - 4pm), Evening (4 pm - 10 pm), Night (10 pm - 6 am). +last_meal: How long before jumping rope did the person have his/her last meal: 30mins-1 hour ago, 1 hour- 2 hours ago, more than 2 hours +num_jumps: Number of jumps the person accomplished in 1-minute. + + +```{r} +library(dplyr) +DF <- read.csv("Clean_data_H5.csv") +plot(DF$avg_x) +plot(DF$avg_y) +plot(DF$avg_z) +for(i in 1:nrow(DF)){ + if(DF$avg_z[i]>2.5){ + DF$avg_z[i] = DF$avg_z[i]-8 + } +} +DF$avg_y = abs(DF$avg_y) +DF = DF[,-1] +DF$Participant[DF$Participant=="Vidya Madhaban"] = "Vidya Madhavan" +DF = mutate(DF,gender = 1, height = 1, weight = 1, fitness = 1, favor = 1, prior = 1, illness = 1, happyness = 1, time_interval = 1, last_meal = 1, num_jumps = 1) +names(DF)[1] = "name" +``` +Since there were some negative values in the initial clean data, the plots seemingly to be inefficient to produce any visualization at this point. Therefore, we decided to use the absolute value of these negtive ones to plot new diagrams. + +```{r} +plot(DF$avg_x) +plot(DF$avg_y) +plot(DF$avg_z) +``` +It turns out that the plot of y variable to be much more efficient after using the absolute value. +Based on the plots, we can tell that most of our data tend to be together with some outliers. + + +```{r} +survey = read.csv("Jump Rope Research.csv") +survey1 = select(survey, name = Q1, gender = Q2, height = Q3, weight = Q4, fitness = Q5, favor = Q6, prior = Q7, illness = Q8, happyness = Q9, time_interval = Q10, last_meal = Q11, num_jumps = Q12) +survey1 = survey1[-c(1,2),] +``` + +```{r} +colname = colnames(DF) +colname = colname[-c(1:6)] +for(j in colname){ + for(i in 1:nrow(DF)){ + DF[[j]][i] = survey1[[j]][survey1$name == DF$name[i]] + } +} +colname = c(7,10:16) +for(i in colname){DF[,i] = as.factor(DF[,i])} +colname1 = c(8,9,17) +for(i in colname1){DF[,i] = as.numeric(DF[,i])} +``` + + +In the following plots, we would see how each variable in our survey related to the data we got from the app during the activity. + +1: Jump Height and Personal Height +Since y stands for the vertical position of where we put our phone, we assumed that taller people would place their phone higher than those petite ones. +We are, thereofre, interested to see whether taller people tend to jump higher or not. +```{r} +plot(DF$avg_y~DF$height) +``` +Based on what the graph, we can see that there are no clear evidence that these is any relationship between these two variables. + +2: Jump Height and Number of Jumps +Next, we would want to see any correlation between y variable and number of jumps. In other words, if a person jump higher, would he/she tend to jump fewer jumps since it might take more energy to do a higher jump. +```{r} +plot(DF$avg_y~DF$num_jumps) +``` +The plot we got shows that there is no clear relationship between number of jumps and jumping high. It might also indicate that in a short time frame, people tend to jump in a consistent way. Since we only measured in 1-minute, your body would not quickly get tired or exhausted even if you jump higher than normal. + + +3: Acceleration and Fitness Level +Thirdly, we would like to see if fitness level have some effects on acceleration: do people have a higher level of fitness would have a higher value of acceleration during the activity. +```{r} +plot(DF$abs_acceleration~DF$fitness) +``` +The barplot shows that: for those who self reported fitness level at 2 which means a fair level has a mean of acceleration slightly higher than those reported fitness level at 3 which means a good level of fitness. +According to K-mean and PCA, an lower acceleration indicates better in jumping rope, we can tell that the plot proves it. +Though the mean values give a suprising result that people who have better fitness level have lower acceleration, the group with level 3 fitness has a much higher range of acceleration comparing to the other group. +Overall, we can conclude that fitness has some influence on acceleration that people who have higher fitness level would have higher value of acceleration. +In addition, there are some outliers in the barplot which might because that most people choose a moderate answer in the survey question: 2 and 3 which caused some bias. + + +4: Acceleration and Illness Level +We assume that people have lower illness level would have higher acceleration. +```{r} +plot(DF$abs_acceleration~DF$illness) +``` +The barplot shows that people who reported has a moderate illness level at 3 has a much lower acceleration than those who reported little or some illness. The plot proves our assumption that illness level would effect acceleration. +However, we can also see that people who reported little illness 1 effect have a slightly lower mean than those who reported has some illness 2. But level 1 has a much higher range than level 2. +There are also some outliers shows. In level 1, the outliers are those have slower acceleration than most of the others, this might due to some other factors that effect their acceleration during the activity such as fitness level which we just concluded above. +In level 2, the outliers are mainly above the range, this might because of that the illness are not those would directly effect them from doing such activity. Another reason might because they have higher level of fitness that has positive relationship between acceleration. + + + +5: Acceleration and Mood +In this plot, we are interested in whether the happiness level before you jumping the rope would effect your acceleration. In other words, would people with higher happiness level tend to jump quicker? +```{r} +plot(DF$abs_acceleration~DF$happyness) +``` +It is really interested to see how our mood would effect us when doing an activity. Accordign to the plot, we can see a upward treading that higher happiness level have a lower mean value of acceleration. (Higher number indicates higher level sadness.) +Level 3 which is a moderate level of happiness has the highest range in this barplot. It might because of the fitness and illness level that cause this happens but it might also because happiness or mood is hard to define on scale, therefore, most people would choose a moderate answer for this question. + + +```{r} +DF1 = select(DF, abs_acceleration,avg_y,avg_x,avg_z) +reg = lm(abs_acceleration~., DF1) +summary(reg) +``` +x has a p-value of 2.76e-10 and y has a p-value smaller than 2e-16. Both of these two variables conclude to be significant since their p-value are smaller than 0.05. +The regression model indicates that the x variable which indicates back and forth, and y variable which indicates up and down, are the two significant variables with our response variable: acceleration. + +```{r} +DF = mutate(DF, time = rep(0:60,9)) +``` + +```{r} +library(ggplot2) +ggplot(DF, aes(time, avg_z, colour = name)) + geom_line() + xlab("time") +``` + + +```{r} +pairs(DF1) +``` +In this plot, we will mainly focused on the regression between acceleration and xyz variables to see whether there is any relationship between acceleration and the predictor variables. +From the plot, we can see that it is hardly to tell if there is any relationship between acceleration and the xyz variables that all the plots are in a cloud shape. + +```{r} +cor(DF1) +``` +The absolute value of correlation between acceleration and y is: 0.43044889 which stands for a moderate correlation. +The absolute value of correlation between acceleration and x is: 0.26456843 which shows a relatively weak correlation. +The absolute value of correlation between acceleration and z is: 0.009613775 which means that there is weak or no correlation between these two variables. + + +Checking Normality and Constant Variance based on plots +```{r} +reg1 = lm(abs_acceleration~.,DF1) +plot(reg1) +``` +The first scatterplot of Residuals vs. Fitted values shows a cluster in the center. The plot indicates a violation to the OLS assumption. The unequal scatter might indicate different variances. +The second QQ plot shows the straight line if the errors are distributed normally, but we can see that point 244, 306, and 307 are derived from the line. The qqplot suggests that the data is relatively normally distributed since most of the dots are on the line. +Similar to the first one, the Scale-location show a cluster in the center which is a violation to the assumption of equal variance. +The Residuals vs. Leverage plot tells that point 244, 306, and 307are the levearge points which have the greatest influence on our model + +Chekcing Nomality and Constant Variance statistically +```{r} +sresid <- rstudent(reg1) +hist(sresid, freq = FALSE) +lines(density(sresid), col = "blue", lwd = 3) +xfit <- seq(-4, 4, length = 100) +yfit <- dnorm(xfit, mean = mean(sresid), sd = sd(sresid)) +lines(xfit, yfit, col = "red", lwd = 3) +``` +The normality is skewed to the right slightly. +Conclusion: Not too bad and departure from normality is not too severe, and is skewed to the right so need hypothesis test. + +```{r} +library(car) +qqPlot(reg1) +``` +There are several outliers beyond the CI, need hypothesis test. + +```{r} +shapiro.test(sresid) +``` +Conclusion: Since p-value < 0.05 we reject Ho: Normality fails to hold + + +```{r} +ncvTest(reg1) +``` +p = 0.0010161 < 0.05 +Conclusion: We reject Ho: variance is not constant + + + + diff --git a/HUDK4050 HW6_Kmeans&PCA.Rmd b/HUDK4050 HW6_Kmeans&PCA.Rmd new file mode 100644 index 0000000..a929896 --- /dev/null +++ b/HUDK4050 HW6_Kmeans&PCA.Rmd @@ -0,0 +1,224 @@ +--- +title: "HUDK4050 HW6-Kmeans Clustering & Principal Component Analysis" +author: "Xiyun Zhang" +date: "12/12/2020" +output: html_document +--- + +Data: +x: Back and Forth +y: Up and Down +z: Left and Right +Acceleration: Acceleration during the activity + +Survey Questions: +Name: Name who participates in the activity +Gender: The person's gender: female or Male +Height: Personal Height in cm +Weight: Personal Weight in kg +Fitness: Overall fitness level on a scale of 1- 5: 1. Poor 2. Fair 3. Good 4. Very good 5. Excellent. +Favor: How much the person prefer jumping: 1 being do not like and 5 being like it very much. +Prior: If the person has prior experience of jumping rope or not: 1 being do not have much experience and 5 being have a lot of experience. +Illness: Level of illness that might effect the person during jumping rope: 0 being have no illness and 5 being strongly effect by the illness. +Happyness: Level of happiness before the person jumping rope: 1 being very sad and 5 being really happy. +time_interval: The time when the person did the activity: Morning (6 am - 12pm), Afternoon (12pm - 4pm), Evening (4 pm - 10 pm), Night (10 pm - 6 am). +last_meal: How long before jumping rope did the person have his/her last meal: 30mins-1 hour ago, 1 hour- 2 hours ago, more than 2 hours +num_jumps: Number of jumps the person accomplished in 1-minute. + + + +```{r} +library(dplyr) +DF <- read.csv("Clean_data_H5.csv") +plot(DF$avg_x) +plot(DF$avg_y) +plot(DF$avg_z) +for(i in 1:nrow(DF)){ + if(DF$avg_z[i]>2.5){ + DF$avg_z[i] = DF$avg_z[i]-8 + } +} +DF$avg_y = abs(DF$avg_y) +DF = DF[,-1] +DF$Participant[DF$Participant=="Vidya Madhaban"] = "Vidya Madhavan" +DF = mutate(DF,gender = 1, height = 1, weight = 1, fitness = 1, favor = 1, prior = 1, illness = 1, happyness = 1, time_interval = 1, last_meal = 1, num_jumps = 1) +names(DF)[1] = "name" +``` +Since there were some negative values in the initial clean data, the plots seemingly to be inefficient to produce any visualization at this point. Therefore, we decided to use the absolute value of these negtive ones to plot new diagrams. + + +```{r} +plot(DF$avg_x) +plot(DF$avg_y) +plot(DF$avg_z) +``` +It turns out that the plot of y variable to be much more efficient after using the absolute value. +Based on the plots, we can tell that most of our data tend to be together with some outliers. + + +```{r} +survey = read.csv("Jump Rope Research.csv") +survey1 = select(survey, name = Q1, gender = Q2, height = Q3, weight = Q4, fitness = Q5, favor = Q6, prior = Q7, illness = Q8, happyness = Q9, time_interval = Q10, last_meal = Q11, num_jumps = Q12) +survey1 = survey1[-c(1,2),] +``` +```{r} +colname = colnames(DF) +colname = colname[-c(1:6)] +for(j in colname){ + for(i in 1:nrow(DF)){ + DF[[j]][i] = survey1[[j]][survey1$name == DF$name[i]] + } +} +colname = c(7,10:16) +for(i in colname){DF[,i] = as.factor(DF[,i])} +colname1 = c(8,9,17) +for(i in colname1){DF[,i] = as.numeric(DF[,i])} +``` + +```{r} +DF = mutate(DF, time = rep(0:60,9)) +``` + +```{r} +DF1 = select(DF, abs_acceleration,avg_y,avg_x,avg_z) +pairs(DF1) +``` +In this plot, we will mainly focused on the regression between acceleration and xyz variables to see whether there is any relationship between acceleration and the predictor variables. +From the plot, we can see that it is hardly to tell if there is any relationship between acceleration and the xyz variables that all the plots are in a cloud shape. + + +```{r} +cor(DF1) +``` +The absolute value of correlation between acceleration and y is: 0.43044889 which stands for a moderate correlation. +The absolute value of correlation between acceleration and x is: 0.26456843 which shows a relatively weak correlation. +The absolute value of correlation between acceleration and z is: 0.009613775 which means that there is weak or no correlation between these two variables. + + +### K-means analysis +```{r} +#install.packages("stats") +#install.packages("dplyr") +#install.packages("ggplot2") +#install.packages("ggfortify") + +library(stats) +library(dplyr) +library(ggplot2) +library(ggfortify) +str(DF) + +DF2 <- select(DF,c(1,3:6,8:14,17)) +str(DF2) +colname = c(8:12) +for(i in colname){DF2[,i] = as.numeric(levels(DF2[,i]))[DF2[,i]]} +str(DF2) + + +DF2 <- DF2 %>% group_by(name)%>%summarise(avg_x=mean(avg_x), avg_y=mean(avg_y),avg_z=mean(avg_z),abs_acceleration=mean(abs_acceleration),height = mean(height), weight = mean(weight), fitness = mean(fitness), favor = mean(favor), prior = mean(prior), illness = mean(illness), happyness = mean(happyness), num_jumps = mean(num_jumps)) + +DF_kmeans <- scale(DF2[,-1]) + +``` + + +```{r} +#install.packages("factoextra") +library(factoextra) +fviz_nbclust(DF_kmeans, kmeans, method = "wss",k.max=8) + + geom_vline(xintercept = 4, linetype = 2)+ + labs(subtitle = "Elbow method") +``` +The Optimal Numbers of Cluster indicates that we should use k = 4 for further analysis. + + +```{r} +# Compute k-means with k = 4 +set.seed(8) +km4 <- kmeans(DF_kmeans, 4) +autoplot(km4,DF_kmeans,frame=T)+ + labs(title = "Kmeans Clustering with k = 4")+ + theme_bw() +``` + +Although the optimal numbers of clusters indicates we should have 4 clusters, the above plot doesn't give us as useful insights as we thought. It is hardly to separte our group member into two groups: novices and experts. So, we try to use 2-clusters instead. + +```{r} +# Compute k-means with k = 2 +set.seed(6) +km2 <- kmeans(DF_kmeans, 2) +autoplot(km2,DF_kmeans,frame=T) + + geom_text(aes(label=DF2$name),hjust=0, vjust=0)+ + labs(title = "Kmeans Clustering with k = 2")+ + theme_bw() + + +print(km2) +DF2 <- data.frame(DF2, km2$cluster) + +``` + +According to the k-means clustering, we are clustered into two group1: +Group 1 (Novice): Vidya Madhavan, Paolo Rivas, Ruoyi Wang +Group 2 (Experienced): Qiyu Wu, Xiyun Zhang, Kaijie Fang, Hangshi Jin, Yifei Zhang, Wenning Xiao + +We call Group 1 with smaller number of rope jumping and less prior experience Novice while Group 2 with higher number of rope jumping and more prior experience Experienced. + +Given the cluster means, we can see Group 2 (Experienced) has lower absolute means in avg_x, avg_v, avg_z and abs_acceleration, and lower means in weight, fitness, illness and happyness. However, they has higher means in height, favor and prior. + +Thus, we conclude: +1. Group 2 who show a preference for jumping rope and have prior experience can make more jumps in 1 minutes than Group 1. +2. Experienced would move up, down, left and right in a small amplitude and small acceleration. +3. Lower illness level and higher happiness level might contribute being an expert in jumping ropes. +4. It is interested to see experts have lower fitness level than novices. + + + + +### Principal Component Analysis +```{r} +pca <- prcomp(DF_kmeans, scale. = TRUE) +summary(pca) +plot(pca, type = "lines") +(loadings <- abs(pca$rotation)) +#biplot(pca) +``` + +It can be seen from the summary that PC1 and PC2 contribute to 58.19% of the variation of the data while PC1, PC2, PC3 and PC4 contribute to 83.74% of the variation of the data. + +PC1 has comparatively high loading scores for height, weight, abs_acceleration, avg_x and prior. +PC2 has comparatively high loading scores for avg_y, fitness, favor, illness, happyness and num_jumps. + +```{r} +#library(devtools) +#install_github("vqv/ggbiplot") +library(ggbiplot) +#ggbiplot(pca)+ylim(-2,2)+xlim(-2,2.5) +#ggbiplot(pca, labels=DF2$name)+ylim(-2,2)+xlim(-1.5,2.5) + +pca_group <- c(rep("Group A", 3), rep("Group B",2), "Group A", rep("Group B",3)) + +ggbiplot(pca ,ellipse=TRUE, choices = c(1,2), labels=DF2$name, groups=pca_group)+ylim(-2,2)+xlim(-1.5,2.5)+ labs(title = "PCA Analysis with PC1 and PC2")+ theme_bw() + +``` + + +Here, we can see that the variables height, weight, abs_acceleration and avg_x all contribute to PC1, with higher values in those variables moving the samples to the right on this plot. + +After specifying Group A and Group B, we find Group A form a distinct cluster to the right. Looking at the axes, we see that Group A are characterized by high values for height, weight, abs_acceleration and avg_x. Group B, on the other hand, are characterized by high values for prior, favor, and num_jumps and high absolute values for avg_y, illness, fitness and happyness. + +Thus, we conclude: +1. The survey questions does not perfectly separate the group based on novices and experts that both novices and experts have some characteristics that are in the same cluster. +2. However, it is interesting to see that Vidya and Paolo are in the same cluster whom are both categorized as novices based on the K-mean. It might because they have some similarities. +2. Kaijie, Hangshi, Paolo, and Vidya are in group A are the taller ones and have higher average weight in our group. It might because of these facts that make them have higher absolute value of acceleration during the activity. +3. Xiyun, Yifei, Wenning, Qiyu, and Ruoyi are in group B. This group have an overall higher number of jumps. Based on the graph, we might conclude that with more prior experience with jumping ropes and more favor in doing this activity might lead to a higher number of jumps. +4. Another interesting thing here is that though Ruoyi is categorized as a novice and based on the survey question, she jumped 73 times during 1-minuets, she has similar prior experience and favor with the others who are defined as experts. This means that she might be an outlier in the novices group. +5. Another thing that brings to an attention is that fitness has not been counted as a significant value in the PCA plot. + + +```{r} +ggbiplot(pca ,ellipse=TRUE, choices = c(3,4), labels=DF2$name, groups=pca_group)+ylim(-2,2)+xlim(-1.5,2.5)+ labs(title = "PCA Analysis with PC3 and PC4")+ theme_bw() +``` +We don't see much insights of Groups with PC3 and PC4 because they overlapped heavily. + + diff --git a/HUDK4050-HW6.html b/HUDK4050-HW6.html new file mode 100644 index 0000000..b8e1677 --- /dev/null +++ b/HUDK4050-HW6.html @@ -0,0 +1,557 @@ + + + + +
+ + + + + + + + + + +Data: x: Back and Forth y: Up and Down z: Left and Right Acceleration: Acceleration during the activity
+Survey Questions: Name: Name who participates in the activity Gender: The person’s gender: female or Male Height: Personal Height in cm Weight: Personal Weight in kg Fitness: Overall fitness level on a scale of 1- 5: 1. Poor 2. Fair 3. Good 4. Very good 5. Excellent. Favor: How much the person prefer jumping: 1 being do not like and 5 being like it very much. Prior: If the person has prior experience of jumping rope or not: 1 being do not have much experience and 5 being have a lot of experience. Illness: Level of illness that might effect the person during jumping rope: 0 being have no illness and 5 being strongly effect by the illness. Happyness: Level of happiness before the person jumping rope: 1 being very sad and 5 being really happy. time_interval: The time when the person did the activity: Morning (6 am - 12pm), Afternoon (12pm - 4pm), Evening (4 pm - 10 pm), Night (10 pm - 6 am). last_meal: How long before jumping rope did the person have his/her last meal: 30mins-1 hour ago, 1 hour- 2 hours ago, more than 2 hours num_jumps: Number of jumps the person accomplished in 1-minute.
+library(dplyr)
+##
+## Attaching package: 'dplyr'
+## The following objects are masked from 'package:stats':
+##
+## filter, lag
+## The following objects are masked from 'package:base':
+##
+## intersect, setdiff, setequal, union
+DF <- read.csv("Clean_data_H5.csv")
+plot(DF$avg_x)
+plot(DF$avg_y)
+plot(DF$avg_z)
+for(i in 1:nrow(DF)){
+ if(DF$avg_z[i]>2.5){
+ DF$avg_z[i] = DF$avg_z[i]-8
+ }
+}
+DF$avg_y = abs(DF$avg_y)
+DF = DF[,-1]
+DF$Participant[DF$Participant=="Vidya Madhaban"] = "Vidya Madhavan"
+DF = mutate(DF,gender = 1, height = 1, weight = 1, fitness = 1, favor = 1, prior = 1, illness = 1, happyness = 1, time_interval = 1, last_meal = 1, num_jumps = 1)
+names(DF)[1] = "name"
+Since there were some negative values in the initial clean data, the plots seemingly to be inefficient to produce any visualization at this point. Therefore, we decided to use the absolute value of these negtive ones to plot new diagrams.
+plot(DF$avg_x)
+plot(DF$avg_y)
+plot(DF$avg_z)
+ It turns out that the plot of y variable to be much more efficient after using the absolute value. Based on the plots, we can tell that most of our data tend to be together with some outliers.
survey = read.csv("Jump Rope Research.csv")
+survey1 = select(survey, name = Q1, gender = Q2, height = Q3, weight = Q4, fitness = Q5, favor = Q6, prior = Q7, illness = Q8, happyness = Q9, time_interval = Q10, last_meal = Q11, num_jumps = Q12)
+survey1 = survey1[-c(1,2),]
+colname = colnames(DF)
+colname = colname[-c(1:6)]
+for(j in colname){
+ for(i in 1:nrow(DF)){
+ DF[[j]][i] = survey1[[j]][survey1$name == DF$name[i]]
+ }
+}
+colname = c(7,10:16)
+for(i in colname){DF[,i] = as.factor(DF[,i])}
+colname1 = c(8,9,17)
+for(i in colname1){DF[,i] = as.numeric(DF[,i])}
+In the following plots, we would see how each variable in our survey related to the data we got from the app during the activity.
+1: Jump Height and Personal Height Since y stands for the vertical position of where we put our phone, we assumed that taller people would place their phone higher than those petite ones. We are, thereofre, interested to see whether taller people tend to jump higher or not.
+plot(DF$avg_y~DF$height)
+ Based on what the graph, we can see that there are no clear evidence that these is any relationship between these two variables.
2: Jump Height and Number of Jumps Next, we would want to see any correlation between y variable and number of jumps. In other words, if a person jump higher, would he/she tend to jump fewer jumps since it might take more energy to do a higher jump.
+plot(DF$avg_y~DF$num_jumps)
+ The plot we got shows that there is no clear relationship between number of jumps and jumping high. It might also indicate that in a short time frame, people tend to jump in a consistent way. Since we only measured in 1-minute, your body would not quickly get tired or exhausted even if you jump higher than normal.
3: Acceleration and Fitness Level Thirdly, we would like to see if fitness level have some effects on acceleration: do people have a higher level of fitness would have a higher value of acceleration during the activity.
+plot(DF$abs_acceleration~DF$fitness)
+ The barplot shows that: for those who self reported fitness level at 2 which means a fair level has a mean of acceleration slightly higher than those reported fitness level at 3 which means a good level of fitness. According to K-mean and PCA, an lower acceleration indicates better in jumping rope, we can tell that the plot proves it. Though the mean values give a suprising result that people who have better fitness level have lower acceleration, the group with level 3 fitness has a much higher range of acceleration comparing to the other group. Overall, we can conclude that fitness has some influence on acceleration that people who have higher fitness level would have higher value of acceleration. In addition, there are some outliers in the barplot which might because that most people choose a moderate answer in the survey question: 2 and 3 which caused some bias.
4: Acceleration and Illness Level We assume that people have lower illness level would have higher acceleration.
+plot(DF$abs_acceleration~DF$illness)
+ The barplot shows that people who reported has a moderate illness level at 3 has a much lower acceleration than those who reported little or some illness. The plot proves our assumption that illness level would effect acceleration. However, we can also see that people who reported little illness 1 effect have a slightly lower mean than those who reported has some illness 2. But level 1 has a much higher range than level 2. There are also some outliers shows. In level 1, the outliers are those have slower acceleration than most of the others, this might due to some other factors that effect their acceleration during the activity such as fitness level which we just concluded above. In level 2, the outliers are mainly above the range, this might because of that the illness are not those would directly effect them from doing such activity. Another reason might because they have higher level of fitness that has positive relationship between acceleration.
5: Acceleration and Mood In this plot, we are interested in whether the happiness level before you jumping the rope would effect your acceleration. In other words, would people with higher happiness level tend to jump quicker?
+plot(DF$abs_acceleration~DF$happyness)
+ It is really interested to see how our mood would effect us when doing an activity. Accordign to the plot, we can see a upward treading that higher happiness level have a lower mean value of acceleration. (Higher number indicates higher level sadness.) Level 3 which is a moderate level of happiness has the highest range in this barplot. It might because of the fitness and illness level that cause this happens but it might also because happiness or mood is hard to define on scale, therefore, most people would choose a moderate answer for this question.
DF1 = select(DF, abs_acceleration,avg_y,avg_x,avg_z)
+reg = lm(abs_acceleration~., DF1)
+summary(reg)
+##
+## Call:
+## lm(formula = abs_acceleration ~ ., data = DF1)
+##
+## Residuals:
+## Min 1Q Median 3Q Max
+## -8.2854 -1.9038 0.0692 1.5539 11.9512
+##
+## Coefficients:
+## Estimate Std. Error t value Pr(>|t|)
+## (Intercept) 8.86118 0.51999 17.041 < 2e-16 ***
+## avg_y 0.64433 0.05769 11.169 < 2e-16 ***
+## avg_x 0.49930 0.07763 6.432 2.76e-10 ***
+## avg_z 0.03080 0.07920 0.389 0.698
+## ---
+## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+##
+## Residual standard error: 2.634 on 545 degrees of freedom
+## Multiple R-squared: 0.2444, Adjusted R-squared: 0.2402
+## F-statistic: 58.76 on 3 and 545 DF, p-value: < 2.2e-16
+x has a p-value of 2.76e-10 and y has a p-value smaller than 2e-16. Both of these two variables conclude to be significant since their p-value are smaller than 0.05. The regression model indicates that the x variable which indicates back and forth, and y variable which indicates up and down, are the two significant variables with our response variable: acceleration.
+DF = mutate(DF, time = rep(0:60,9))
+library(ggplot2)
+ggplot(DF, aes(time, avg_z, colour = name)) + geom_line() + xlab("time")
+pairs(DF1)
+ In this plot, we will mainly focused on the regression between acceleration and xyz variables to see whether there is any relationship between acceleration and the predictor variables. From the plot, we can see that it is hardly to tell if there is any relationship between acceleration and the xyz variables that all the plots are in a cloud shape.
cor(DF1)
+## abs_acceleration avg_y avg_x avg_z
+## abs_acceleration 1.000000000 0.43044889 0.26456843 -0.009613775
+## avg_y 0.430448894 1.00000000 0.05152961 -0.119315015
+## avg_x 0.264568434 0.05152961 1.00000000 0.106860542
+## avg_z -0.009613775 -0.11931501 0.10686054 1.000000000
+The absolute value of correlation between acceleration and y is: 0.43044889 which stands for a moderate correlation. The absolute value of correlation between acceleration and x is: 0.26456843 which shows a relatively weak correlation. The absolute value of correlation between acceleration and z is: 0.009613775 which means that there is weak or no correlation between these two variables.
+Checking Normality and Constant Variance based on plots
+reg1 = lm(abs_acceleration~.,DF1)
+plot(reg1)
+ The first scatterplot of Residuals vs. Fitted values shows a cluster in the center. The plot indicates a violation to the OLS assumption. The unequal scatter might indicate different variances. The second QQ plot shows the straight line if the errors are distributed normally, but we can see that point 244, 306, and 307 are derived from the line. The qqplot suggests that the data is relatively normally distributed since most of the dots are on the line. Similar to the first one, the Scale-location show a cluster in the center which is a violation to the assumption of equal variance. The Residuals vs. Leverage plot tells that point 244, 306, and 307are the levearge points which have the greatest influence on our model
Chekcing Nomality and Constant Variance statistically
+sresid <- rstudent(reg1)
+hist(sresid, freq = FALSE)
+lines(density(sresid), col = "blue", lwd = 3)
+xfit <- seq(-4, 4, length = 100)
+yfit <- dnorm(xfit, mean = mean(sresid), sd = sd(sresid))
+lines(xfit, yfit, col = "red", lwd = 3)
+ The normality is skewed to the right slightly. Conclusion: Not too bad and departure from normality is not too severe, and is skewed to the right so need hypothesis test.
library(car)
+## Loading required package: carData
+##
+## Attaching package: 'car'
+## The following object is masked from 'package:dplyr':
+##
+## recode
+qqPlot(reg1)
+## [1] 306 307
+There are several outliers beyond the CI, need hypothesis test.
+shapiro.test(sresid)
+##
+## Shapiro-Wilk normality test
+##
+## data: sresid
+## W = 0.98464, p-value = 1.535e-05
+Conclusion: Since p-value < 0.05 we reject Ho: Normality fails to hold
+ncvTest(reg1)
+## Non-constant Variance Score Test
+## Variance formula: ~ fitted.values
+## Chisquare = 10.79804, Df = 1, p = 0.0010161
+p = 0.0010161 < 0.05 Conclusion: We reject Ho: variance is not constant
+ + + + +Data: x: Back and Forth y: Up and Down z: Left and Right Acceleration: Acceleration during the activity
+Survey Questions: Name: Name who participates in the activity Gender: The person’s gender: female or Male Height: Personal Height in cm Weight: Personal Weight in kg Fitness: Overall fitness level on a scale of 1- 5: 1. Poor 2. Fair 3. Good 4. Very good 5. Excellent. Favor: How much the person prefer jumping: 1 being do not like and 5 being like it very much. Prior: If the person has prior experience of jumping rope or not: 1 being do not have much experience and 5 being have a lot of experience. Illness: Level of illness that might effect the person during jumping rope: 0 being have no illness and 5 being strongly effect by the illness. Happyness: Level of happiness before the person jumping rope: 1 being very sad and 5 being really happy. time_interval: The time when the person did the activity: Morning (6 am - 12pm), Afternoon (12pm - 4pm), Evening (4 pm - 10 pm), Night (10 pm - 6 am). last_meal: How long before jumping rope did the person have his/her last meal: 30mins-1 hour ago, 1 hour- 2 hours ago, more than 2 hours num_jumps: Number of jumps the person accomplished in 1-minute.
+library(dplyr)
+##
+## Attaching package: 'dplyr'
+## The following objects are masked from 'package:stats':
+##
+## filter, lag
+## The following objects are masked from 'package:base':
+##
+## intersect, setdiff, setequal, union
+DF <- read.csv("Clean_data_H5.csv")
+plot(DF$avg_x)
+plot(DF$avg_y)
+plot(DF$avg_z)
+for(i in 1:nrow(DF)){
+ if(DF$avg_z[i]>2.5){
+ DF$avg_z[i] = DF$avg_z[i]-8
+ }
+}
+DF$avg_y = abs(DF$avg_y)
+DF = DF[,-1]
+DF$Participant[DF$Participant=="Vidya Madhaban"] = "Vidya Madhavan"
+DF = mutate(DF,gender = 1, height = 1, weight = 1, fitness = 1, favor = 1, prior = 1, illness = 1, happyness = 1, time_interval = 1, last_meal = 1, num_jumps = 1)
+names(DF)[1] = "name"
+Since there were some negative values in the initial clean data, the plots seemingly to be inefficient to produce any visualization at this point. Therefore, we decided to use the absolute value of these negtive ones to plot new diagrams.
+plot(DF$avg_x)
+plot(DF$avg_y)
+plot(DF$avg_z)
+ It turns out that the plot of y variable to be much more efficient after using the absolute value. Based on the plots, we can tell that most of our data tend to be together with some outliers.
survey = read.csv("Jump Rope Research.csv")
+survey1 = select(survey, name = Q1, gender = Q2, height = Q3, weight = Q4, fitness = Q5, favor = Q6, prior = Q7, illness = Q8, happyness = Q9, time_interval = Q10, last_meal = Q11, num_jumps = Q12)
+survey1 = survey1[-c(1,2),]
+colname = colnames(DF)
+colname = colname[-c(1:6)]
+for(j in colname){
+ for(i in 1:nrow(DF)){
+ DF[[j]][i] = survey1[[j]][survey1$name == DF$name[i]]
+ }
+}
+colname = c(7,10:16)
+for(i in colname){DF[,i] = as.factor(DF[,i])}
+colname1 = c(8,9,17)
+for(i in colname1){DF[,i] = as.numeric(DF[,i])}
+DF = mutate(DF, time = rep(0:60,9))
+DF1 = select(DF, abs_acceleration,avg_y,avg_x,avg_z)
+pairs(DF1)
+ In this plot, we will mainly focused on the regression between acceleration and xyz variables to see whether there is any relationship between acceleration and the predictor variables. From the plot, we can see that it is hardly to tell if there is any relationship between acceleration and the xyz variables that all the plots are in a cloud shape.
cor(DF1)
+## abs_acceleration avg_y avg_x avg_z
+## abs_acceleration 1.000000000 0.43044889 0.26456843 -0.009613775
+## avg_y 0.430448894 1.00000000 0.05152961 -0.119315015
+## avg_x 0.264568434 0.05152961 1.00000000 0.106860542
+## avg_z -0.009613775 -0.11931501 0.10686054 1.000000000
+The absolute value of correlation between acceleration and y is: 0.43044889 which stands for a moderate correlation. The absolute value of correlation between acceleration and x is: 0.26456843 which shows a relatively weak correlation. The absolute value of correlation between acceleration and z is: 0.009613775 which means that there is weak or no correlation between these two variables.
+#install.packages("stats")
+#install.packages("dplyr")
+#install.packages("ggplot2")
+#install.packages("ggfortify")
+
+library(stats)
+library(dplyr)
+library(ggplot2)
+library(ggfortify)
+str(DF)
+## 'data.frame': 549 obs. of 18 variables:
+## $ name : chr "Hangshi Jin" "Hangshi Jin" "Hangshi Jin" "Hangshi Jin" ...
+## $ time_formated : chr "19:00:00" "19:00:01" "19:00:02" "19:00:03" ...
+## $ avg_x : num 0.949 0.434 -0.35 -1.409 -1.207 ...
+## $ avg_y : num 9.28 10.88 8.03 11.34 7.68 ...
+## $ avg_z : num -0.466 -1.982 -1.458 -1.711 -1.273 ...
+## $ abs_acceleration: num 9.61 15.72 11.79 15.02 12 ...
+## $ gender : Factor w/ 2 levels "Female","Male": 2 2 2 2 2 2 2 2 2 2 ...
+## $ height : num 176 176 176 176 176 176 176 176 176 176 ...
+## $ weight : num 71 71 71 71 71 71 71 71 71 71 ...
+## $ fitness : Factor w/ 2 levels "2","3": 1 1 1 1 1 1 1 1 1 1 ...
+## $ favor : Factor w/ 4 levels "1","2","3","4": 2 2 2 2 2 2 2 2 2 2 ...
+## $ prior : Factor w/ 5 levels "1","2","3","4",..: 2 2 2 2 2 2 2 2 2 2 ...
+## $ illness : Factor w/ 3 levels "1","2","3": 2 2 2 2 2 2 2 2 2 2 ...
+## $ happyness : Factor w/ 3 levels "2","3","4": 2 2 2 2 2 2 2 2 2 2 ...
+## $ time_interval : Factor w/ 4 levels "Afternoon (12pm - 4pm)",..: 2 2 2 2 2 2 2 2 2 2 ...
+## $ last_meal : Factor w/ 3 levels "1 hour- 2 hours ago",..: 3 3 3 3 3 3 3 3 3 3 ...
+## $ num_jumps : num 170 170 170 170 170 170 170 170 170 170 ...
+## $ time : int 0 1 2 3 4 5 6 7 8 9 ...
+DF2 <- select(DF,c(1,3:6,8:14,17))
+str(DF2)
+## 'data.frame': 549 obs. of 13 variables:
+## $ name : chr "Hangshi Jin" "Hangshi Jin" "Hangshi Jin" "Hangshi Jin" ...
+## $ avg_x : num 0.949 0.434 -0.35 -1.409 -1.207 ...
+## $ avg_y : num 9.28 10.88 8.03 11.34 7.68 ...
+## $ avg_z : num -0.466 -1.982 -1.458 -1.711 -1.273 ...
+## $ abs_acceleration: num 9.61 15.72 11.79 15.02 12 ...
+## $ height : num 176 176 176 176 176 176 176 176 176 176 ...
+## $ weight : num 71 71 71 71 71 71 71 71 71 71 ...
+## $ fitness : Factor w/ 2 levels "2","3": 1 1 1 1 1 1 1 1 1 1 ...
+## $ favor : Factor w/ 4 levels "1","2","3","4": 2 2 2 2 2 2 2 2 2 2 ...
+## $ prior : Factor w/ 5 levels "1","2","3","4",..: 2 2 2 2 2 2 2 2 2 2 ...
+## $ illness : Factor w/ 3 levels "1","2","3": 2 2 2 2 2 2 2 2 2 2 ...
+## $ happyness : Factor w/ 3 levels "2","3","4": 2 2 2 2 2 2 2 2 2 2 ...
+## $ num_jumps : num 170 170 170 170 170 170 170 170 170 170 ...
+colname = c(8:12)
+for(i in colname){DF2[,i] = as.numeric(levels(DF2[,i]))[DF2[,i]]}
+str(DF2)
+## 'data.frame': 549 obs. of 13 variables:
+## $ name : chr "Hangshi Jin" "Hangshi Jin" "Hangshi Jin" "Hangshi Jin" ...
+## $ avg_x : num 0.949 0.434 -0.35 -1.409 -1.207 ...
+## $ avg_y : num 9.28 10.88 8.03 11.34 7.68 ...
+## $ avg_z : num -0.466 -1.982 -1.458 -1.711 -1.273 ...
+## $ abs_acceleration: num 9.61 15.72 11.79 15.02 12 ...
+## $ height : num 176 176 176 176 176 176 176 176 176 176 ...
+## $ weight : num 71 71 71 71 71 71 71 71 71 71 ...
+## $ fitness : num 2 2 2 2 2 2 2 2 2 2 ...
+## $ favor : num 2 2 2 2 2 2 2 2 2 2 ...
+## $ prior : num 2 2 2 2 2 2 2 2 2 2 ...
+## $ illness : num 2 2 2 2 2 2 2 2 2 2 ...
+## $ happyness : num 3 3 3 3 3 3 3 3 3 3 ...
+## $ num_jumps : num 170 170 170 170 170 170 170 170 170 170 ...
+DF2 <- DF2 %>% group_by(name)%>%summarise(avg_x=mean(avg_x), avg_y=mean(avg_y),avg_z=mean(avg_z),abs_acceleration=mean(abs_acceleration),height = mean(height), weight = mean(weight), fitness = mean(fitness), favor = mean(favor), prior = mean(prior), illness = mean(illness), happyness = mean(happyness), num_jumps = mean(num_jumps))
+## `summarise()` ungrouping output (override with `.groups` argument)
+DF_kmeans <- scale(DF2[,-1])
+#install.packages("factoextra")
+library(factoextra)
+## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
+fviz_nbclust(DF_kmeans, kmeans, method = "wss",k.max=8) +
+ geom_vline(xintercept = 4, linetype = 2)+
+ labs(subtitle = "Elbow method")
+ The Optimal Numbers of Cluster indicates that we should use k = 4 for further analysis.
# Compute k-means with k = 4
+set.seed(8)
+km4 <- kmeans(DF_kmeans, 4)
+autoplot(km4,DF_kmeans,frame=T)+
+ labs(title = "Kmeans Clustering with k = 4")+
+ theme_bw()
+## Warning: `select_()` is deprecated as of dplyr 0.7.0.
+## Please use `select()` instead.
+## This warning is displayed once every 8 hours.
+## Call `lifecycle::last_warnings()` to see where this warning was generated.
+## Warning: `group_by_()` is deprecated as of dplyr 0.7.0.
+## Please use `group_by()` instead.
+## See vignette('programming') for more help
+## This warning is displayed once every 8 hours.
+## Call `lifecycle::last_warnings()` to see where this warning was generated.
+Although the optimal numbers of clusters indicates we should have 4 clusters, the above plot doesn’t give us as useful insights as we thought. It is hardly to separte our group member into two groups: novices and experts. So, we try to use 2-clusters instead.
+# Compute k-means with k = 2
+set.seed(6)
+km2 <- kmeans(DF_kmeans, 2)
+autoplot(km2,DF_kmeans,frame=T) +
+ geom_text(aes(label=DF2$name),hjust=0, vjust=0)+
+ labs(title = "Kmeans Clustering with k = 2")+
+ theme_bw()
+print(km2)
+## K-means clustering with 2 clusters of sizes 1, 8
+##
+## Cluster means:
+## avg_x avg_y avg_z abs_acceleration height weight
+## 1 2.1196019 0.8138908 0.11850311 1.9790620 1.386280 1.8138785
+## 2 -0.2649502 -0.1017363 -0.01481289 -0.2473828 -0.173285 -0.2267348
+## fitness favor prior illness happyness num_jumps
+## 1 0.8432740 -1.5343905 -1.7071584 -0.9428090 0 -1.3502367
+## 2 -0.1054093 0.1917988 0.2133948 0.1178511 0 0.1687796
+##
+## Clustering vector:
+## [1] 2 2 1 2 2 2 2 2 2
+##
+## Within cluster sum of squares by cluster:
+## [1] 0.00000 70.13662
+## (between_SS / total_SS = 26.9 %)
+##
+## Available components:
+##
+## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
+## [6] "betweenss" "size" "iter" "ifault"
+DF2 <- data.frame(DF2, km2$cluster)
+According to the k-means clustering, we are clustered into two group1: Group 1 (Novice): Vidya Madhavan, Paolo Rivas, Ruoyi Wang Group 2 (Experienced): Qiyu Wu, Xiyun Zhang, Kaijie Fang, Hangshi Jin, Yifei Zhang, Wenning Xiao
+We call Group 1 with smaller number of rope jumping and less prior experience Novice while Group 2 with higher number of rope jumping and more prior experience Experienced.
+Given the cluster means, we can see Group 2 (Experienced) has lower absolute means in avg_x, avg_v, avg_z and abs_acceleration, and lower means in weight, fitness, illness and happyness. However, they has higher means in height, favor and prior.
+Thus, we conclude: 1. Group 2 who show a preference for jumping rope and have prior experience can make more jumps in 1 minutes than Group 1. 2. Experienced would move up, down, left and right in a small amplitude and small acceleration. 3. Lower illness level and higher happiness level might contribute being an expert in jumping ropes. 4. It is interested to see experts have lower fitness level than novices.
+pca <- prcomp(DF_kmeans, scale. = TRUE)
+summary(pca)
+## Importance of components:
+## PC1 PC2 PC3 PC4 PC5 PC6 PC7
+## Standard deviation 2.02 1.7039 1.3390 1.1283 1.03879 0.68280 0.54689
+## Proportion of Variance 0.34 0.2419 0.1494 0.1061 0.08992 0.03885 0.02492
+## Cumulative Proportion 0.34 0.5819 0.7313 0.8374 0.92736 0.96622 0.99114
+## PC8 PC9
+## Standard deviation 0.32606 2.392e-16
+## Proportion of Variance 0.00886 0.000e+00
+## Cumulative Proportion 1.00000 1.000e+00
+plot(pca, type = "lines")
+(loadings <- abs(pca$rotation))
+## PC1 PC2 PC3 PC4 PC5
+## avg_x 0.37542580 0.03628051 0.24576930 0.343665683 0.11229841
+## avg_y 0.10603774 0.42667501 0.38495551 0.169102849 0.05687983
+## avg_z 0.07691425 0.06361843 0.29949535 0.005274036 0.86003475
+## abs_acceleration 0.45629833 0.05307350 0.06374263 0.044290147 0.26399670
+## height 0.43226507 0.23396274 0.11868546 0.166704537 0.10642150
+## weight 0.47486405 0.05383270 0.09144776 0.161819915 0.11871398
+## fitness 0.01353252 0.39205328 0.17265215 0.514297501 0.22250314
+## favor 0.21339597 0.34173130 0.42711132 0.129836403 0.24925160
+## prior 0.35916099 0.29235587 0.03604691 0.311830596 0.09151626
+## illness 0.18082309 0.31905162 0.29217340 0.541309996 0.11148995
+## happyness 0.09346788 0.33068504 0.56331481 0.083549327 0.03908439
+## num_jumps 0.07202587 0.43014765 0.24284993 0.344583619 0.12415457
+## PC6 PC7 PC8 PC9
+## avg_x 0.30441505 0.571090168 0.27642151 0.33131053
+## avg_y 0.31802799 0.477264783 0.21009371 0.24138678
+## avg_z 0.05118762 0.023554434 0.18679415 0.09070236
+## abs_acceleration 0.27655285 0.232972361 0.22675340 0.39805892
+## height 0.07412206 0.009834898 0.17558808 0.17562999
+## weight 0.04367159 0.110861803 0.18078541 0.21629557
+## fitness 0.45864103 0.173044903 0.14907909 0.03322864
+## favor 0.30152618 0.002927944 0.40213853 0.53265575
+## prior 0.40000835 0.079816139 0.36134646 0.49864657
+## illness 0.24621230 0.104098452 0.02242748 0.12547806
+## happyness 0.05287082 0.294404772 0.61473616 0.15560821
+## num_jumps 0.44158194 0.494996934 0.19160715 0.11926829
+#biplot(pca)
+It can be seen from the summary that PC1 and PC2 contribute to 58.19% of the variation of the data while PC1, PC2, PC3 and PC4 contribute to 83.74% of the variation of the data.
+PC1 has comparatively high loading scores for height, weight, abs_acceleration, avg_x and prior. PC2 has comparatively high loading scores for avg_y, fitness, favor, illness, happyness and num_jumps.
+#library(devtools)
+#install_github("vqv/ggbiplot")
+library(ggbiplot)
+## Loading required package: plyr
+## ------------------------------------------------------------------------------
+## You have loaded plyr after dplyr - this is likely to cause problems.
+## If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
+## library(plyr); library(dplyr)
+## ------------------------------------------------------------------------------
+##
+## Attaching package: 'plyr'
+## The following objects are masked from 'package:dplyr':
+##
+## arrange, count, desc, failwith, id, mutate, rename, summarise,
+## summarize
+## Loading required package: scales
+## Loading required package: grid
+##
+## Attaching package: 'ggbiplot'
+## The following object is masked from 'package:ggfortify':
+##
+## ggbiplot
+#ggbiplot(pca)+ylim(-2,2)+xlim(-2,2.5)
+#ggbiplot(pca, labels=DF2$name)+ylim(-2,2)+xlim(-1.5,2.5)
+
+pca_group <- c(rep("Group A", 3), rep("Group B",2), "Group A", rep("Group B",3))
+
+ggbiplot(pca ,ellipse=TRUE, choices = c(1,2), labels=DF2$name, groups=pca_group)+ylim(-2,2)+xlim(-1.5,2.5)+ labs(title = "PCA Analysis with PC1 and PC2")+ theme_bw()
+Here, we can see that the variables height, weight, abs_acceleration and avg_x all contribute to PC1, with higher values in those variables moving the samples to the right on this plot.
+After specifying Group A and Group B, we find Group A form a distinct cluster to the right. Looking at the axes, we see that Group A are characterized by high values for height, weight, abs_acceleration and avg_x. Group B, on the other hand, are characterized by high values for prior, favor, and num_jumps and high absolute values for avg_y, illness, fitness and happyness.
+Thus, we conclude: 1. The survey questions does not perfectly separate the group based on novices and experts that both novices and experts have some characteristics that are in the same cluster. 2. However, it is interesting to see that Vidya and Paolo are in the same cluster whom are both categorized as novices based on the K-mean. It might because they have some similarities. 2. Kaijie, Hangshi, Paolo, and Vidya are in group A are the taller ones and have higher average weight in our group. It might because of these facts that make them have higher absolute value of acceleration during the activity. 3. Xiyun, Yifei, Wenning, Qiyu, and Ruoyi are in group B. This group have an overall higher number of jumps. Based on the graph, we might conclude that with more prior experience with jumping ropes and more favor in doing this activity might lead to a higher number of jumps. 4. Another interesting thing here is that though Ruoyi is categorized as a novice and based on the survey question, she jumped 73 times during 1-minuets, she has similar prior experience and favor with the others who are defined as experts. This means that she might be an outlier in the novices group. 5. Another thing that brings to an attention is that fitness has not been counted as a significant value in the PCA plot.
+ggbiplot(pca ,ellipse=TRUE, choices = c(3,4), labels=DF2$name, groups=pca_group)+ylim(-2,2)+xlim(-1.5,2.5)+ labs(title = "PCA Analysis with PC3 and PC4")+ theme_bw()
+## Warning: Removed 1 rows containing missing values (geom_text).
+## Warning: Removed 28 row(s) containing missing values (geom_path).
+ We don’t see much insights of Groups with PC3 and PC4 because they overlapped heavily.