Well, they may not know all the causes, but it has been researched and found that low iron, or low stored iron/ferritin, can definitely cause it. (Liver powder is a great antidote for low ferritin.)
Low electrolytes can cause it. For ex. people who go on low salt diets can get it. And btw if one is reducing salt due to high blood pressure, well some studies show that celery and celery seed can bring the blood pressure down significantly.