جهنم الفاصلة العائمة: لماذا لا يمكن إعادة إنتاج أخذ العينات الطبيعية متعددة المتغيرات في R

2025-05-22
جهنم الفاصلة العائمة: لماذا لا يمكن إعادة إنتاج أخذ العينات الطبيعية متعددة المتغيرات في R

تتناول هذه المشاركة رحلة تصحيح الأخطاء التي قامت بها الكاتبة لمساعدة الزملاء في حل مشكلة تتعلق بإعادة إنتاج الكود الخاص بهم في R والذي يتضمن أخذ عينات من التوزيع الطبيعي متعدد المتغيرات. لم تكن المشكلة ناتجة عن أخطاء في R أو حزمة MASS، ولكن من خصائص حساب الفاصلة العائمة. على الرغم من استخدام `set.seed()` للتحكم في مولد الأرقام العشوائية (RNG)، فإن نفس الكود أنتج نتائج مختلفة على أجهزة مختلفة بسبب أخطاء تقريب الفاصلة العائمة في `MASS::mvrnorm()`. كشف تحليل شامل أن `MASS::mvrnorm()`، باستخدام تحليل القيم الذاتية، حساس للغاية لاضطرابات الإدخال الصغيرة، مما قد يؤدي إلى قلب علامات المتجهات الذاتية، وبالتالي تعطيل إمكانية إعادة الإنتاج. ثبت أن `mvtnorm::rmvnorm()`، باستخدام تحليل Cholesky، أكثر قوة. توصي الكاتبة باستخدام `mvtnorm::rmvnorm()` مع `method = "chol"` لتحسين إمكانية إعادة الإنتاج.