I upgrade when :-
- the current machine won't do something I need from it, or
- something comes out I want to try, or
- something dies and needs to be replaced.
It does depend a bit on the definition of "upgrade the machine". If that means the entire machine, it's rare, and likely to be quite a few years. If it means add more memory or storage space, it's as and when needed.
So, there's no set timetable.