שלום,
אני מקוה שהשאלה הבאה מתאימה לפורום.
אני מנסה להריץ ניתוח COX ב R, על נתוני מחקר שאוסף מידע על קשישים אחת לשנה. לשם כך אני מעוניין להשתמש ב discrete time cox. לצורך כך אני משתמש בפונקציית coxph מחבילת survival.
יש לי נתונים על כ-2300 קשישים, עם ממוצע של כ7 שנות מעקב (כלומר יש כ15000 תצפיות. אני לא מכווץ את התצפיות מכיוון שאני משתמש במודל בו יש משתנים שהם time varying).
כשאני מריץ את coxph במתודת efron זה לוקח שתי שניות להריץ. אך מכיוון שציר הזמן שלי לא רציף (שכן תיעוד הנתונים מבוצע אחת לשנה לפי תכנית קבועה) מה שגם מוביל מן הסתם להרבה "אירועים" חופפים (tied) להבנתי הניתוח צריך להתאים לdiscrete time, מה שאומר שאני צריך להשתמש בcoxph במתודת exact. שימוש במתודה הזו לוקח המון המון זמן. למעשה חיכיתי מספר שעות ללא תגובה, ואז ראיתי שאלה בstackexchange שדיברה על מעל 24 שעות עבור 200 אנשים וקצת התייאשתי.
אני עובד עם מחשב asus CORE i5 עם 4GB RAM, 64bit מערכת ווינדוס 10.
אני משתמש בR גירסה 3.23 בממשק RSTUDIO בגירסה שמתאימה ל 64bit.
כשאני בודק כמה זיכרון זמין עבור R בעזרת memory.limit() אני מקבל 3961, כך שלהבנתי כמעט הכל זמין. אך בפועל בזמן שR מריץ את הקוד, אז לפי הTASK MANAGER של ווינדוס R ממשיך להשתמש בכמות פחות או יותר קבועה של זכרון (כ-170 MB).
השאלה שלי כיצד ניתן לגרום לR להריץ את הפונקציה מהר יותר? האם יש דרך לגרום לו להשתמש במשאבים הקיימים בצורה טובה יותר? חשבתי לנסות להריץ את זה על AWS עם מחשב וירטואלי עם יותר זכרון או מעבדים, אבל השאלה האם זה יעזור לי? הרי גם ככה נראה שR מנצל רק חלק קטן מהRAM.
אני משתמש בפונקציה הסטנדרטית של coxph, כך שהפקודה נראית כך:
coxph(Surv(time1, time2, event) ~ antihyp_all_rx.x + age_at_visit.y + msex + educ, data=finaldata, method = "exact")
כל משוב יתקבל בברכה
עמיחי