สาเหตุของโรคนอนกรนเกิดจากหลายปัจจัยด้วยกัน คือ
1.อายุมากขึ้น เนื้อเยื่อต่างๆ จะขาดความตึงตัว ทำให้ลิ้นไก่และลิ้นตกไปบังทางเดินหายใจได้ง่าย
2.ลักษณะโครงสร้างของกะโหลกศีรษะและกระดูกใบหน้าผิดปกติ เช่น คางเล็ก คอยาว หน้าแบน ล้วนทำให้ทางเดินหายใจช่วงบนแคบลงเกิดการอุดตัน และทำให้เกิดการหยุดหายใจได้
3.กรรมพันธุ์ ผู้ที่มีประวัติครอบครัวเป็นโรคนี้จะมีโอกาสเสี่ยงต่อการ เกิดโรคมากกว่าคนปกติ 1.5 เท่า
4.อ้วน พบว่าประมาณ 2 ใน 3 ของผู้ป่วยมักมีน้ำหนักมากกว่าร้อยละ 20 ของน้ำหนักมาตรฐาน และมีโอกาสเกิดการหยุดหายใจขณะหลับมากกว่าคนทั่วไป เนื่องจากไขมันจะกระจายอยู่รอบๆ ทางเดินหายใจช่วงบนมากขึ้น ไขมันที่พอกบริเวณคอจะทำให้เวลาที่ผู้ป่วยนอนลง จะเกิดน้ำหนักกดทับทำให้ช่องคอแคบลงได้ ผนวกกับหน้าท้องที่มีไขมันเกาะอยู่มาก ทำให้กระบังลมทำงานได้ไม่เต็มที่ ความจุของปอดลดลง แต่เมื่อลดน้ำหนักได้ 5-10 กิโลกรัมจะทำให้ผู้ป่วยอาการดีขึ้นได้
5.แน่นจมูก ถ้ามีภาวะใดก็ตามที่ทำให้แน่นจมูก เช่น มีผนังกั้นจมูกคด เยื่อบุจมูกอักเสบ ไซนัสอักเสบ หรือเนื้องอกในจมูก ย่อมจะทำให้การหายใจลำบากขึ้น
6.การดื่มสุรา หรือการใช้ยาบางชนิด จะทำให้กล้ามเนื้ออ่อนแรง รวมทั้งกล้ามเนื้อที่คอยพยุงช่องทางเดินหายใจให้เปิด หมดแรง เกิดภาวะทางเดินหายใจอุดตันได้ง่ายขึ้น
7.การสูบบุหรี่ ทำให้ประสิทธิภาพของระบบทางเดินหายใจแย่ลง ทำให้คอหอยอักเสบจากการระคายเคือง มีการหนาบวมของเนื้อเยื่อ ทำให้ทางเดินหายใจแคบลง เกิดการอุดตันได้ง่าย และยังส่งผลเสียต่อหลอดเลือดที่ไปเลี้ยงหัวใจ
8.โรคต่อมไร้ท่อต่างๆ มีผลทำให้เกิดทางเดินหายใจอุดตันได้มากกว่าคนทั่วไป