My system seems to crash from time to time. I still don't know what causes it.
If I leave it untouched for a few hours, sometimes, it crashes.
To resume, I have to force a reboot by unplugging the power cable (not even pressing the power button for N seconds seems to work).
Then, it seems to work just fine (after displaying some error messages about lost or orphaned inodes at boot). Until, one day, it happens again. When? I never know. It seems to follow some strange and unpredictable pattern.
It would be worth looking through your journal. There is usually some amount of logging even in the event of a hardware issue. See journalctl.
As others suggest, does sound related to sleep / suspend. If that is the case, you could have a problem like I did where my motherboard BIOS incorrectly reports usb capabilities which results in an immediate resume from sleep. That abrupt change causes the amdgpu driver to crash, and the system hangs soon after. My workaround is to disable features on the offending usb host controller.
Journalctl has a bunch of filter options that you should take advantage of when troubleshooting. For example, journalctl -b -1 will show you only the messages from the last boot (not the current). I used this article for a quick couple of need to know commands. Enjoy! :D