I am studying a dataset of time series for different users. The dataset contains records of actions (or registrations) of the users over time. I have data of a whole week for about 80,000 users.
Objective
At the moment, I'm concerned about the count of registrations over time. My objective right now is to study the 'patterns of registrations' of different users. I'm interested in cluster them according to their registration pattern and detect 'anomalous' user in terms of their registration behavior, since it is of our interest to identify group of users and also users that are considerably apart from groups of other users.
Considerations
The registrations made by a user during a week are not regular or continuous. A user can perform registrations every day while other may exist just for one day.
Registrations during the day may vary. Actually I'm interested on identify different behaviours during the day.
My current approach
I am thinking in different approaches. I'm studying the daily variation of the registrations to identify patterns in terms of registrations per hour. My idea was to define for each user an array with the number of registrations per hour registered during the week and normalize it, since not all users are present everyday. I can define this 'distribution' for each user.
Here I encountered many problems
In the first place, if I get the overall distribution per hour considering all users and then I compare the distribution of each user against this to determine if they are anomalies I think it might not be the right approach. This is because: 1) I doubt about the 'statistical correctness' of performing this operation, although I've reading about statistical distance to compare distributions. 2) I think this will not allow me to cluster different daily behaviors (e.g., users that register more during the night than during the morning and viceversa)
I'm not sure how can I determine this 'similar behavior' between users. Maybe some of them have uniform registrations during the day while other exhibit peaks at different times.
My main doubt is how can I cluster users based on their daily activity. I think if I manage to do clustering the anomaly detection will be derived from that methodology.
I'm not sure where I should start to approach to this problem more systematically, so I appreciate any insights.
Best regards,