من ضجيج مستقل إلى أصول مترابطة
يعطي مولد الأعداد العشوائية سحوبات مستقلة. والأصول مترابطة فمحاكاة محفظة تحتاج سحوبات بمصفوفة التغاير الصحيحة Σ. يجد تحليل شوليسكي مصفوفة مثلثية سفلية L بحيث LLᵀ=Σ؛ ثم إن كان z متجه طبيعيات معيارية مستقلة فإن Lz تغايره بالضبط L I Lᵀ=Σ. وفي NumPy تأتي السحوبات صفوفًا فتحسب z @ L.T لمصفوفة z بشكل (n, d). وتقوم scipy.linalg.cholesky(cov, lower=True) بالتحليل وترفع خطأ إن لم تكن المصفوفة موجبة التحديد وهذا مفيد: إنه إنذار بأن في مصفوفة تغايرك مشكلة. ابذر المولد بـ np.random.default_rng(seed) فتصبح التجربة قابلة للتكرار.
بالمحاكي يمكنك حساب أرقام المخاطر. عائد المحفظة المحاكى لكل سحب هو draws @ w والقيمة المعرّضة للخطر ليوم عند المستوى α هي سالب الكمّية α لتلك العائدات (np.quantile). وللسحوب الطبيعية يجب أن تتفق مع صيغة التباين–التغاير -(wᵀμ+z_α√(wᵀΣw)) وهذا يحدث مع اثني عشر أصلًا: 2.07% بالمحاكاة و2.08% بالصيغة مقابل 2.33% بالتاريخ لأن للعائدات الحقيقية ذيولًا أسمك من أي نموذج طبيعي. وقد تفشل مصفوفات التغاير المقدَّرة أيضًا: إذا ضبطت ارتباط أصلين على 1.2 المستحيل صارت أصغر قيمة ذاتية سالبة (نحو -6×10⁻⁵) ورفض شوليسكي المصفوفة. ويستعمل الإصلاح المعتاد scipy.linalg.eigh: ارفع كل قيمة ذاتية دون أرضية صغيرة إلى الأرضية وأعد بناء المصفوفة وتناظرها. والنتيجة موجبة التحديد وتختلف عن الأصل بنحو 3×10⁻⁵ فقط.
- شوليسكي يحوّل الضجيج إلى ارتباط: لـ
z @ L.Tالتغايرcovحينcov = L @ L.T. - يجب أن تتفق المحاكاة والصيغة للسحوب الطبيعية: والفجوة مع التاريخ هي كلفة الذيول السميكة.
- فشل التحليل معلومة: أصلح مصفوفة غير موجبة التحديد برفع قيمها الذاتية الصغيرة أو السالبة.
المختبر: ما الذي يُقيَّم
- عامل شوليسكي10 نقطة
- سحوب مترابطة20 نقطة
- القيمة المعرّضة للخطر بمونت كارلو25 نقطة
- القيمة المعرّضة للخطر المعلمية15 نقطة
- إصلاح مصفوفة تغاير15 نقطة
- دراسة الأصول الاثني عشر15 نقطة