I haven't had my period since April 26th. I have been experiencing spotting for the past three weeks. What could be the cause of this?

Bleeding. I suspect you have not ovulated and the bleeding is what is called break through bleeding due to constant stimulation of the uterine lining by estrogen. You should see your doctor for a check up.