ดังนั้นฉันจึงได้อ่านหนังสือบางเล่ม (หรือบางส่วนของพวกเขา) เกี่ยวกับการสร้างแบบจำลอง (กลยุทธ์การสร้างแบบจำลองการถดถอยของเอฟแฮร์เรลล์ในกลุ่มอื่น ๆ ) เนื่องจากสถานการณ์ปัจจุบันของฉันตอนนี้คือฉันต้องทำแบบจำลองโลจิสติกส์ ฉันมีทั้งข้อมูลอย่างต่อเนื่องหมวดหมู่และไบนารี (ตัวทำนาย) ในชุดข้อมูลของฉัน โดยพื้นฐานแล้วฉันมีผู้ทำนายประมาณ 100 คนในตอนนี้ซึ่งเห็นได้ชัดว่ามากเกินไปสำหรับแบบจำลองที่ดี นอกจากนี้ตัวทำนายหลายตัวเหล่านี้มีความสัมพันธ์กันเนื่องจากพวกเขามักจะอยู่บนพื้นฐานของตัวชี้วัดเดียวกันแม้ว่าจะแตกต่างกันเล็กน้อย
อย่างไรก็ตามสิ่งที่ฉันได้อ่านโดยใช้เทคนิคการถดถอยแบบไม่รวมตัวแปรและขั้นตอนที่ชาญฉลาดเป็นสิ่งที่แย่ที่สุดที่คุณสามารถทำได้เพื่อลดจำนวนผู้ทำนาย ฉันคิดว่าเทคนิค LASSO นั้นค่อนข้างโอเค (ถ้าฉันเข้าใจถูกต้อง) แต่เห็นได้ชัดว่าคุณไม่สามารถใช้สิ่งนี้กับผู้ทำนาย 100 คนและคิดว่าจะมีประโยชน์อะไรเกิดขึ้น
ดังนั้นสิ่งที่ตัวเลือกของฉันอยู่ที่นี่? ฉันต้องนั่งคุยกับหัวหน้างานของฉันและคนฉลาดในที่ทำงานจริง ๆ หรือไม่และคิดว่าตัวพยากรณ์ที่ดีที่สุด 5 อันดับแรกควรเป็น / หรือ (เราอาจจะผิด) หรือฉันควรจะใช้วิธีใด พิจารณาแทนไหม
และใช่ฉันยังรู้ว่าหัวข้อนี้มีการกล่าวถึงอย่างมาก (ออนไลน์และในหนังสือ) แต่บางครั้งดูเหมือนว่าจะค่อนข้างล้นหลามเมื่อคุณเป็นคนใหม่ในสาขาการสร้างแบบจำลองนี้
แก้ไข:
ก่อนอื่นขนาดตัวอย่างของฉันคือ +1000 ผู้ป่วย (ซึ่งมีจำนวนมากในสาขาของฉัน) และจากจำนวนที่มีการตอบรับในเชิงบวกระหว่าง 70-170 (เช่น 170 ใช่การตอบสนองเทียบกับประมาณ 900 ไม่มีการตอบสนองในกรณีใดกรณีหนึ่ง) . โดยพื้นฐานแล้วแนวคิดคือการทำนายความเป็นพิษหลังการรักษาด้วยรังสี ฉันมีข้อมูลตอบกลับแบบไบนารีที่คาดหวัง (เช่นความเป็นพิษไม่ว่าคุณจะมี (1) หรือคุณไม่มี (0) และจากนั้นฉันก็มีการวัดหลายประเภท ตัวชี้วัดบางตัวมีความเฉพาะเจาะจงของผู้ป่วยเช่นอายุยาที่ใช้ปริมาณอวัยวะและเป้าหมายเบาหวาน ฯลฯ จากนั้นฉันก็มีตัวชี้วัดเฉพาะด้านการรักษาบางอย่างตามเขตการรักษาจำลองสำหรับเป้าหมาย จากนั้นฉันสามารถดึงตัวทำนายหลายตัวซึ่งมักมีความเกี่ยวข้องอย่างมากในสาขาของฉันเนื่องจากความเป็นพิษส่วนใหญ่มีความสัมพันธ์อย่างมากกับปริมาณรังสีที่ได้รับ (iedose) ที่ได้รับ ตัวอย่างเช่นถ้าฉันรักษาเนื้องอกปอดมีความเสี่ยงของการกดปุ่มหัวใจด้วยปริมาณบางส่วน จากนั้นฉันสามารถคำนวณปริมาณปริมาณหัวใจ x ที่ได้รับปริมาณรังสี x เช่น " ไม่เพียงแค่เลือกอย่างใดอย่างหนึ่งเพื่อเริ่มต้นด้วย (แม้ว่าจะเป็นสิ่งที่การทดลองที่ผ่านมาได้พยายามแน่นอนและสิ่งที่ฉันต้องการจะทำเช่นกัน) เพราะฉันจำเป็นต้องรู้ว่า "แน่นอน" ที่ระดับจริงมีความสัมพันธ์ระหว่างความเป็นพิษต่อหัวใจ และปริมาณปริมาณ (อีกครั้งเป็นตัวอย่างมีตัวชี้วัดที่คล้ายกันอื่น ๆ ที่ใช้กลยุทธ์เดียวกัน) ใช่นั่นเป็นลักษณะของชุดข้อมูลของฉัน ตัวชี้วัดที่แตกต่างกันและตัวชี้วัดบางตัวที่ค่อนข้างคล้ายกัน ไม่เพียงแค่เลือกอย่างใดอย่างหนึ่งเพื่อเริ่มต้นด้วย (แม้ว่าจะเป็นสิ่งที่การทดลองที่ผ่านมาได้พยายามแน่นอนและสิ่งที่ฉันต้องการจะทำเช่นกัน) เพราะฉันจำเป็นต้องรู้ว่า "แน่นอน" ที่ระดับจริงมีความสัมพันธ์ระหว่างความเป็นพิษต่อหัวใจ และปริมาณปริมาณ (อีกครั้งเป็นตัวอย่างมีตัวชี้วัดที่คล้ายกันอื่น ๆ ที่ใช้กลยุทธ์เดียวกัน) ใช่นั่นเป็นลักษณะของชุดข้อมูลของฉัน ตัวชี้วัดที่แตกต่างกันและตัวชี้วัดบางตัวที่ค่อนข้างคล้ายกัน มันดูเหมือนว่าชุดข้อมูลของฉันจะเป็นอย่างไร ตัวชี้วัดที่แตกต่างกันและตัวชี้วัดบางตัวที่ค่อนข้างคล้ายกัน มันดูเหมือนว่าชุดข้อมูลของฉันจะเป็นอย่างไร ตัวชี้วัดที่แตกต่างกันและตัวชี้วัดบางตัวที่ค่อนข้างคล้ายกัน
สิ่งที่ฉันต้องการทำคือสร้างแบบจำลองการคาดการณ์เพื่อที่ฉันจะสามารถคาดเดาได้ว่าผู้ป่วยรายใดที่มีความเสี่ยงต่อการได้รับพิษบางชนิด และเนื่องจากข้อมูลการตอบสนองเป็นแบบไบนารีแนวคิดหลักของฉันก็คือแน่นอนว่าต้องใช้ตัวแบบการถดถอยแบบโลจิสติกส์ อย่างน้อยนั่นคือสิ่งที่คนอื่น ๆ ได้ทำในสาขาของฉัน อย่างไรก็ตามเมื่ออ่านเอกสารเหล่านี้จำนวนมากซึ่งสิ่งนี้ได้ทำไปแล้วบางส่วนก็ดูเหมือนผิดปกติ (อย่างน้อยเมื่ออ่านหนังสือทำแบบจำลองประเภทนี้เช่น F. Harrel) หลายคนใช้การวิเคราะห์การถดถอยแบบ univariate เพื่อเลือกตัวทำนายและใช้พวกมันในการวิเคราะห์หลายตัวแปร (สิ่งที่แนะนำถ้าไม่เข้าใจผิด) และหลายคนก็ใช้เทคนิคขั้นตอนที่ชาญฉลาดเพื่อลดจำนวนตัวทำนาย แน่นอนมันไม่ได้เลวร้ายทั้งหมด หลายคนใช้ LASSO, PCA, การตรวจสอบข้าม, การบูตสแตรป ฯลฯ แต่สิ่งที่ฉันได้ดู
เกี่ยวกับการเลือกคุณสมบัตินี่อาจเป็นที่ฉันอยู่ในขณะนี้ ฉันจะเลือก / ค้นหาตัวทำนายที่เหมาะสมเพื่อใช้ในแบบจำลองของฉันได้อย่างไร ฉันได้ลองวิธีการที่ไม่ซ้ำใคร / เป็นขั้นตอนเหล่านี้ แต่ทุกครั้งที่ฉันคิดว่า: "ทำไมถึงทำอย่างนั้นถ้ามันผิด" แต่บางทีมันอาจเป็นวิธีที่ดีในการแสดงอย่างน้อยก็ในท้ายที่สุดว่า "แบบจำลองที่ดี" ทำในวิธีที่ถูกต้องจะเกิดขึ้นอย่างไรกับ "แบบจำลองที่ไม่ดี" ทำผิดวิธี ดังนั้นฉันอาจจะทำผิดวิธีที่ค่อนข้างตอนนี้สิ่งที่ฉันต้องการความช่วยเหลือคือการได้รับทิศทางในการทำสิ่งที่ถูกต้อง
ขออภัยสำหรับการแก้ไขและมันใช้เวลานานมาก
แก้ไข 2: เป็นเพียงตัวอย่างสั้น ๆ เกี่ยวกับลักษณะของข้อมูลของฉัน:
'data.frame': 1151 obs. of 100 variables:
$ Toxicity : Factor w/ 2 levels "0","1": 2 1 1 1 1 1 1 1 1 1 ...
$ Age : num 71.9 64 52.1 65.1 63.2 ...
$ Diabetes : Factor w/ 2 levels "n","y": 1 1 1 1 1 1 1 1 1 1 ...
$ Risk.Category : Ord.factor w/ 3 levels "LOW"<"INTERMEDIATE"<..: 1 1 1 1 2 1 1 1 1 3 ...
$ Organ.Volume.CC : num 136.1 56.7 66 136.6 72.8 ...
$ Target.Volume.CC : num 102.7 44.2 58.8 39.1 56.3 ...
$ D1perc : num 7961 7718 7865 7986 7890 ...
$ D1.5CC : num 7948 7460 7795 7983 7800 ...
$ D1CC : num 7996 7614 7833 7997 7862 ...
$ D2perc : num 7854 7570 7810 7944 7806 ...
$ D2.5CC : num 7873 7174 7729 7952 7604 ...
$ D2CC : num 7915 7313 7757 7969 7715 ...
$ D3perc : num 7737 7379 7758 7884 7671 ...
$ D3.5CC : num 7787 6765 7613 7913 7325 ...
$ D3CC : num 7827 6953 7675 7934 7480 ...
$ D4perc : num 7595 7218 7715 7798 7500 ...
$ D5perc : num 7428 7030 7638 7676 7257 ...
$ DMEAN : num 1473 1372 1580 1383 1192 ...
$ V2000CGY : num 24.8 23.7 25.9 22.3 19.3 ...
$ V2000CGY_CC : num 33.7 13.4 17.1 30.4 14 ...
$ V2500CGY : num 22.5 21.5 24 20.6 17.5 ...
$ V2500CGY_CC : num 30.7 12.2 15.9 28.2 12.7 ...
$ V3000CGY : num 20.6 19.6 22.4 19.1 15.9 ...
$ V3000CGY_CC : num 28.1 11.1 14.8 26.2 11.6 ...
$ V3500CGY : num 18.9 17.8 20.8 17.8 14.6 ...
$ V3500CGY_CC : num 25.7 10.1 13.7 24.3 10.6 ...
$ V3900CGY : num 17.5 16.5 19.6 16.7 13.6 ...
$ V3900CGY_CC : num 23.76 9.36 12.96 22.85 9.91 ...
$ V4500CGY : num 15.5 14.4 17.8 15.2 12.2 ...
$ V4500CGY_CC : num 21.12 8.18 11.76 20.82 8.88 ...
$ V5000CGY : num 13.9 12.8 16.4 14 11 ...
$ V5000CGY_CC : num 18.91 7.25 10.79 19.09 8.03 ...
$ V5500CGY : num 12.23 11.14 14.84 12.69 9.85 ...
$ V5500CGY_CC : num 16.65 6.31 9.79 17.33 7.17 ...
$ V6000CGY : num 10.56 9.4 13.19 11.34 8.68 ...
$ V6000CGY_CC : num 14.37 5.33 8.7 15.49 6.32 ...
$ V6500CGY : num 8.79 7.32 11.35 9.89 7.44 ...
$ V6500CGY_CC : num 11.96 4.15 7.49 13.51 5.42 ...
$ V7000CGY : num 6.76 5.07 9.25 8.27 5.86 ...
$ V7000CGY_CC : num 9.21 2.87 6.1 11.3 4.26 ...
$ V7500CGY : num 4.61 2.37 6.22 6.13 4 ...
$ V7500CGY_CC : num 6.27 1.34 4.11 8.38 2.91 ...
$ V8000CGY : num 0.7114 0.1521 0.0348 0.6731 0.1527 ...
$ V8000CGY_CC : num 0.9682 0.0863 0.023 0.9194 0.1112 ...
$ V8200CGY : num 0.087 0 0 0 0 ...
$ V8200CGY_CC : num 0.118 0 0 0 0 ...
$ V8500CGY : num 0 0 0 0 0 0 0 0 0 0 ...
$ V8500CGY_CC : num 0 0 0 0 0 0 0 0 0 0 ...
$ n_0.02 : num 7443 7240 7371 7467 7350 ...
$ n_0.03 : num 7196 6976 7168 7253 7112 ...
$ n_0.04 : num 6977 6747 6983 7055 6895 ...
$ n_0.05 : num 6777 6542 6811 6871 6693 ...
$ n_0.06 : num 6592 6354 6649 6696 6503 ...
$ n_0.07 : num 6419 6180 6496 6531 6325 ...
$ n_0.08 : num 6255 6016 6350 6374 6155 ...
$ n_0.09 : num 6100 5863 6211 6224 5994 ...
$ n_0.1 : num 5953 5717 6078 6080 5840 ...
$ n_0.11 : num 5813 5579 5950 5942 5692 ...
$ n_0.12 : num 5679 5447 5828 5809 5551 ...
$ n_0.13 : num 5551 5321 5709 5681 5416 ...
$ n_0.14 : num 5428 5201 5595 5558 5285 ...
$ n_0.15 : num 5310 5086 5485 5439 5160 ...
$ n_0.16 : num 5197 4975 5378 5324 5039 ...
$ n_0.17 : num 5088 4868 5275 5213 4923 ...
$ n_0.18 : num 4982 4765 5176 5106 4811 ...
$ n_0.19 : num 4881 4666 5079 5002 4702 ...
$ n_0.2 : num 4783 4571 4985 4901 4597 ...
$ n_0.21 : num 4688 4478 4894 4803 4496 ...
$ n_0.22 : num 4596 4389 4806 4708 4398 ...
$ n_0.23 : num 4507 4302 4720 4616 4303 ...
$ n_0.24 : num 4421 4219 4636 4527 4210 ...
$ n_0.25 : num 4337 4138 4555 4440 4121 ...
$ n_0.26 : num 4256 4059 4476 4355 4035 ...
$ n_0.27 : num 4178 3983 4398 4273 3951 ...
$ n_0.28 : num 4102 3909 4323 4193 3869 ...
$ n_0.29 : num 4027 3837 4250 4115 3790 ...
$ n_0.3 : num 3955 3767 4179 4039 3713 ...
$ n_0.31 : num 3885 3699 4109 3966 3639 ...
$ n_0.32 : num 3817 3633 4041 3894 3566 ...
$ n_0.33 : num 3751 3569 3975 3824 3496 ...
$ n_0.34 : num 3686 3506 3911 3755 3427 ...
$ n_0.35 : num 3623 3445 3847 3689 3361 ...
$ n_0.36 : num 3562 3386 3786 3624 3296 ...
$ n_0.37 : num 3502 3328 3725 3560 3233 ...
$ n_0.38 : num 3444 3272 3666 3498 3171 ...
$ n_0.39 : num 3387 3217 3609 3438 3111 ...
$ n_0.4 : num 3332 3163 3553 3379 3053 ...
$ n_0.41 : num 3278 3111 3498 3321 2996 ...
$ n_0.42 : num 3225 3060 3444 3265 2941 ...
$ n_0.43 : num 3173 3010 3391 3210 2887 ...
$ n_0.44 : num 3123 2961 3339 3156 2834 ...
$ n_0.45 : num 3074 2914 3289 3103 2783 ...
$ n_0.46 : num 3026 2867 3239 3052 2733 ...
$ n_0.47 : num 2979 2822 3191 3002 2684 ...
$ n_0.48 : num 2933 2778 3144 2953 2637 ...
$ n_0.49 : num 2889 2734 3097 2905 2590 ...
และถ้าฉันรันtable(data$Toxicity)
เอาต์พุตคือ:
> table(data$Toxicity)
0 1
1088 63
อีกครั้งนี่คือความเป็นพิษชนิดหนึ่ง ฉันมี 3 คนเช่นกัน