Osteoporosis postmenopausal terjadi karena kekurangan
estrogen (hormon utama pada wanita), yang membantu mengatur pengangkutan
kalsium ke dalam
tulang pada wanita. Biasanya gejala timbul pada wanita yang berusia di antara 51-75 tahun, tetapi bisa mulai muncul lebih cepat ataupun lebih lambat. Tidak semua wanita memiliki risiko yang sama untuk menderita
osteoporosis postmenopausal, wanita kulit putih dan daerah timur lebih mudah menderita penyakit ini daripada wanita kulit hitam.
Osteoporosis senilis terjadi karena kekurangan
kalsium yang berhubungan dengan
usia dan ketidakseimbangan di antara kecepatan hancurnya tulang dan pembentukan tulang yang baru. Senilis berarti bahwa keadaan ini hanya terjadi pada usia lanjut. Penyakit ini biasanya terjadi pada usia di atas 70 tahun dan 2 kali lebih sering menyerang wanita. Wanita seringkali menderita
osteoporosis senilis dan
postmenopausal.
Kurang dari 5% penderita osteoporosis juga mengalami osteoporosis sekunder, yang disebabkan oleh keadaan
medis lainnya atau oleh
obat-obatan.Penyakit ini bisa disebabkan oleh gagal ginjal kronis dan kelainan
hormonal (terutama
tiroid,
paratiroid dan
adrenal) dan obat-obatan (misalnya
kortikosteroid,
barbiturat, anti-kejang dan hormon tiroid yang berlebihan). Pemakaian alkohol yang berlebihan dan merokok bisa memperburuk keadaan ini.
Osteoporosis juvenil idiopatik merupakan jenis osteoporosis yang penyebabnya tidak diketahui. Hal ini terjadi pada anak-anak dan dewasa muda yang memiliki kadar dan fungsi hormon yang normal, kadar
vitamin yang normal dan tidak memiliki penyebab yang jelas dari rapuhnya tulang.