اذهب إلى المحتوى

السؤال

نشر

السلام عليكم

الكود الاول 


X = data_train[['cyto_score', 'tbi_status', 'graft_type', 'vent_hist']]
y = data_train['efs_time']

X = sm.add_constant(X)

model_ols = sm.OLS(y, X).fit()

وبين الكود ده 

model_ols = ols(formula='efs_time ~ C(cyto_score) + C(tbi_status) + C(graft_type) + (vent_hist)' , data=data_train).fit()

 

Recommended Posts

  • 0
نشر

في الكود الاول يتم التعامل مع المتغيرات كما هي (سواء كانت رقمية أو فئوية ( Categorical ))  واذا كانت بعض هذه المتغيرات  فئوية فيجب تحويلها  مسبقًا باستخدام pd.get_dummies أو LabelEncoder، لكي يتعامل معها النموذج بشكل صحيح .

 

اما في الكود الثاني يتم استخدام الصياغة المعتمدة على formula وهي الطريقه الافضل 

C(variable_name) تعني  أن المتغيرات cyto_score, tbi_status, و graft_type فئوية (Categorical)، مما يعني أن المكتبة ستحولها تلقائيًا دون الحاجة الي تحويلها مسبقا .

المتغير vent_hist لم يتم وضعه داخل C(), مما يعني أنه متغير عددي ولن يتم تحويله.

الفرق بين الكودين :

الكود الأول لا يتعامل مع المتغيرات الفئوية بشكل تلقائي، و يتطلب تحويلها يدويًا .

الكود الثاني يقوم بذلك تلقائيًا باستخدام C().

في الكود الأول، يجب إضافت الحد الثابت يدويًا باستخدام sm.add_constant(X).

في الكود الثاني، يتم تضمينه تلقائيًا.

 

 الكود الثاني أكثر كفاءة عندما تحتوي البيانات على متغيرات فئوية، لأنه يحولها تلقائيًا دون الحاجة إلى معالجة إضافية.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...