私は睡眠中に加速度計データを記録するアンドロイドアプリケーションを構築します。これにより、睡眠の傾向を分析し、必要に応じて、浅い睡眠中に希望する時間近くにユーザーを起床します。
アラームと同様に、データを収集して保存するコンポーネントをすでに構築しています。睡眠データを本当に意味のある明確な方法で表示して保存するという獣に取り組む必要があります。これは、分析にも役立つことが望ましい方法です。
数枚の写真が2000語を言います:(担当者が少ないため、リンクは1つしか投稿できません)
これは、30秒間隔で収集された、フィルタリングされていないデータ、つまり移動の合計です。
そして、移動平均平滑化の私自身の明示によって平滑化された同じデータ
編集)両方のチャートにキャリブレーションが反映されます-最小の「ノイズ」フィルターと最大カットオフフィルター、およびアラームトリガーレベル(白い線)があります
残念ながら、これらはどちらも最適なソリューションではありません。1つ目は平均的なユーザーにとって少しわかりにくいもので、2つ目は理解しやすいもので、実際に起こっていることの多くを隠しています。特に、平均化により動きのスパイクの詳細が削除されます。これらは意味があると思います。
では、なぜこれらのチャートはそれほど重要なのでしょうか?これらの時系列は、ユーザーへのフィードバックとして一晩中表示され、後で確認/分析するために保存されます。スムージングは、理想的にはメモリコスト(RAMとストレージの両方)を削減し、これらのリソース不足の携帯電話/デバイスでのレンダリングを高速化します。
明らかにデータを平滑化するより良い方法があります。線形回帰を使用して動きの「シャープ」な変化を見つけ出し、移動平均平滑化を修正するなど、漠然としたアイデアがあります。より最適に解決できるものに真っ先に飛び込む前に、私は本当にいくつかのガイダンスと入力が本当に必要です。
ありがとう!