توفر NESTFS تنفيذًا للاختيار الأمامي بناءً على الانحدار الخطي واللوجستي الذي يعتمد التحقق من الصحة كمكون أساسي لإجراء الاختيار.
يعد الاختيار إلى الأمام نهجًا بطيئًا بطبيعته ، حيث يحتاج كل متغير إلى تركيب نموذج. في تنفيذنا ، يتم تفاقم هذه القضية بشكل أكبر بسبب حقيقة أن التحقق من صحة داخلية يحدث في كل تكرار ، بهدف توجيه الاختيار نحو المتغيرات التي لها خصائص تعميم أفضل.
يتم موازاة الرمز على الطيات الداخلية ، وذلك بفضل الحزمة الموازية . وبالتالي يعتمد وقت المستخدم على عدد النوى المتاحة ، ولكن لا توجد ميزة في استخدام المزيد من النوى من الطيات الداخلية. يجب أن يكون عدد النوى المخصصة للحسابات التسجيل قبل البدء عن طريق تعيين خيار "MC.Cores".
الميزة الرئيسية للاختيار الأمامي هي أنه يوفر نموذجًا قابلًا للتفسير على الفور ، وأن لوحة المتغيرات التي تم الحصول عليها هي إلى حد ما ، أقل ما يكرر ، لا سيما إذا كان عدد المتغيرات للاختيار من بينها ليس كبيرًا جدًا (في تجربتنا ، حتى تجربتنا حوالي 30-40 متغيرات).
ومع ذلك ، عندما يكون عدد المتغيرات أكبر بكثير من ذلك ، قد يكون الاختيار الأمامي ، إلى جانب كونه بطيئًا بشكل لا يطاق ، أكثر عرضة للتورط ، وهو في طبيعة تصميمه الجشع.
تتوفر حزمة مسبقة على كران.
قم أولاً بتحميل الحزمة وتسجيل عدد النوى لاستخدامها عن طريق تعيين خيار mc.cores
. إذا كنت محظوظًا بما يكفي للعمل على آلة كبيرة متعددة الأوساخ ، يتم تحقيق أفضل أداء من خلال تسجيل أكبر عدد من النوى مثل عدد الطيات الداخلية المستخدمة (الافتراضي هو 30).
library( nestfs )
options( mc.cores = 10 )
لتشغيل الاختيار للأمام من نموذج خط الأساس الذي يحتوي على العمر والجنس فقط ، ما يلي يكفي:
data( diabetes )
fs.res <- fs( Y ~ age + sex , diabetes , family = gaussian())
summary( fs.res )
# # vars fdr llks diffs iter
# # 1 age NA NA NA NA
# # 2 sex NA -2136.854 NA NA
# # 3 ltg 7.008928e-10 -2058.831 78.022766 1
# # 4 bmi 1.850715e-05 -2009.568 49.263387 2
# # 5 map 2.020038e-03 -1999.253 10.314799 3
# # 6 age.sex 1.508210e-02 -1992.544 6.709064 4
# # 7 hdl 4.039276e-02 -1985.208 7.336623 5
# # 8 bmi.map 7.474167e-02 -1980.913 4.294736 6
بشكل افتراضي ، يحدث التحديد على جميع المتغيرات الموجودة في البيانات. الإطار الذي ليس جزءًا من النموذج الأولي. يمكن التحكم في ذلك من خلال choose.from
. من الخيار ، والذي يقبل أسماء أو مؤشرات متغيرة.
من الممكن تعزيز اختيار sparser من خلال طلب تحسن أكبر في احتمالية السجل (الخيار min.llk.diff
): هذا ينصح به خاصة عندما يتجاوز عدد المتغيرات للاختيار من بينها 10-15 ، لأن تجربتنا هي حتى الافتراضي قد يؤدي تحديد 2 (أكثر صرامة بالفعل مما اعتمدته الحزم الأخرى) إلى بعض التورط. في أي حال ، من الممكن تعيين حجم الحد الأقصى للوحة المحددة عن طريق تقليل عدد التكرارات (Option max.iters
، بشكل افتراضي تم تعيينه على 10).
يعد الاختيار المتداخل للأمام مفيدًا لتقييم استقرار عملية الاختيار من خلال تنفيذها على كل تقسيم تدريبي من طيات التحقق المتبادل:
folds <- create.folds( 10 , nrow( diabetes ), seed = 1 )
nest.res <- nested.fs( Y ~ age + sex , diabetes , family = gaussian(), folds = folds )
summary( nest.res )
# # vars percent coef coefIQR rank rankIQR diffLogLik diffLogLikIQR
# # 1 bmi 100 24.547 (23.61, 25.48) 2 (1.00, 2.00) 61.021 (44.49, 76.85)
# # 2 ltg 100 23.729 (22.39, 24.41) 2 (1.00, 2.00) 52.868 (36.09, 69.36)
# # 3 map 100 15.147 (14.45, 15.88) 3 (3.00, 3.75) 8.366 (8.04, 9.61)
# # 4 hdl 100 -13.297 (-13.65, -12.55) 4 (4.00, 4.00) 6.728 (6.35, 7.83)
# # 5 age.sex 80 8.825 (8.72, 9.24) 5 (5.00, 6.00) 4.625 (4.45, 5.37)
# # 6 bmi.map 70 8.165 (7.55, 8.27) 6 (5.50, 7.00) 3.604 (2.66, 4.15)
# # 7 bmi.glu 20 4.460 (4.07, 4.85) 5 (5.00, 5.00) 3.535 (3.09, 3.98)
# # 8 glu.2 20 6.477 (6.47, 6.49) 6 (6.25, 6.75) 2.984 (2.56, 3.41)
# # 9 sex.map 20 6.862 (6.71, 7.01) 6 (5.25, 5.75) 2.936 (2.89, 2.98)
# # 10 age.glu 10 7.469 (7.47, 7.47) 3 (3.00, 3.00) 4.826 (4.83, 4.83)
# # 11 age.map 10 7.365 (7.36, 7.36) 6 (6.00, 6.00) 2.679 (2.68, 2.68)
# # 12 bmi.2 10 7.987 (7.99, 7.99) 6 (6.00, 6.00) 2.466 (2.47, 2.47)
يوضح الإخراج أعلاه أن bmi
و ltg
و map
و hdl
يتم اختيارهم في جميع الطيات ، ويتم توفير معظم التحسن في الملاءمة من قبل المتغيرين الأولين ، والذي يتفق مع ما تم العثور عليه عند تشغيل الاختيار للأمام على جميع البيانات.
الأهم من ذلك ، ينتج الاختيار المتداخل إلى الأمام مقياسًا متقاطعًا لأداء عملية الاختيار ، وهو تقدير غير متحيز للأداء التنبئي للألواح المحددة على البيانات المسحوبة:
nested.performance( nest.res )
# # Correlation coefficient: 0.7097
يمكن مقارنة ذلك بما يتم الحصول عليه من خلال نموذج خط الأساس على نفس مجموعة التحقق من الصحة المتقاطعة:
base.res <- nested.glm( Y ~ age + sex , diabetes , family = gaussian(), folds = folds )
nested.performance( base.res )
# # Correlation coefficient: 0.1551
M. Colombo ، HC Looker ، B. Farran et al. ، Moster Moster Molecule 1 و Beta-2-microglobulin أداءً بالإضافة إلى لوحات أكبر للتنبؤ بالانخفاض السريع في وظيفة كلوي في مرض السكري من النوع 2 ، مرض السكري (2019) (2019) (2019) 1): 156-168. https://doi.org/10.1007/S00125-018-4741-9
HC Looker ، M. Colombo ، S. Hess et al. ، المؤشرات الحيوية لتطور مرض الكلى المزمن السريع في مرض السكري من النوع 2 ، الكلى الدولية (2015) ، 88 (4): 888-896. https://doi.org/10.1038/ki.2015.199
HC Looker ، M. Colombo ، F. Agakov et al. https://doi.org/10.1007/S00125-015-3535-6