私はタイムスタンプ付きのイベントデータのコレクションを持っており、これらのイベントが発生した平均時間(算術平均)と標準偏差(時間単位)を知りたいと思います。タイムスタンプはUTCタイムゾーンで表されますが、イベントは異なるタイムゾーンで発生した可能性のあるユーザーのアクティビティの結果です。 UTC + 12、と私はどちらがわかりません。時刻の平均と標準偏差を計算するPostgreSQL
これはまっすぐに進むようですが、24時間の周期的な性質のため、明らかではありません。 (例えば、23と0時間は、数学的に実際に接近している、ではない。)
はここに例を示します
これらの時間を考える:3, 4, 3, 0, 21, 23, 4
は、平均値は8.3と標準偏差(人口)8.8になりそうです。しかし、これらのイベントがUTC + 12で発生した場合、「実際の」時間は15, 16, 15, 12, 9, 11, 16
となり、平均値は13.4、標準dev(pop)2.6となります。
正しい平均(UTCでは13.4)とstddev(pop)(2.6)を計算する最良の方法は何ですか?
例データ(events
表):(
Mean | Stddev
-----------------+-----------------
29828.5714285714 | 31602.4282198023
:
SELECT CAST(avg(extract(epoch FROM timestamp::TIME)) AS dec(18, 10)),
CAST(stddev_pop(extract(epoch FROM timestamp::TIME)) AS dec(18, 10))
FROM events
現在の結果:
id | timestamp
---+--------------------
1 | 2016-05-20 03:00:00
2 | 2016-05-20 04:00:00
3 | 2016-05-20 03:00:00
4 | 2016-05-20 00:00:00
5 | 2016-05-20 21:00:00
6 | 2016-05-20 23:00:00
7 | 2016-05-20 04:00:00
私が今使っているPostgreSQLのクエリは以下のとおりです。これは数秒で、これは平均で8.3、標準dev 8.8です。
期待される結果は平均〜13.4、標準偏差〜2.6です。
dbスキーマのサンプルデータと予想される結果を表示してください。私は例を参照してくださいどのようにdbに保存されているかわからない。 –
私は理解していない、期待される結果は13.4、標準dev 2.6を意味するか、それとも1.4、標準dev 2.6を意味するのでしょうか? – kaisquared
固定@kaisquared – jstr