[Update] การติดตั้ง MLR และ Binary Logistic Regression โดยใช้ Python (Research-Oriented Modeling & Interpretation) | งานวิจัยที่ใช้ binary logistic regression – Sathyasaith

งานวิจัยที่ใช้ binary logistic regression: นี่คือโพสต์ที่เกี่ยวข้องกับหัวข้อนี้

ภาพถ่ายโดย Eilis Garvey บน Unsplash

Table of Contents

โครงร่างบทความ

  • ความเป็นมาของข้อมูล
  • จุดมุ่งหมายของการสร้างแบบจำลอง
  • กำลังโหลดข้อมูล
  • การวิเคราะห์เชิงสำรวจขั้นพื้นฐาน
  • การติดตั้ง / การประมาณค่าแบบจำลองการถดถอยเชิงเส้นหลายเส้น
  • การตีความสรุปโมเดล MLR
  • การฟิตติ้ง / การประมาณค่าแบบจำลองการถดถอยโลจิสติกไบนารี
  • การตีความสรุปแบบจำลองการถดถอยโลจิสติก
  • อ้างอิง

ชุดข้อมูลประกอบด้วยพารามิเตอร์หลายตัวซึ่งถือว่าสำคัญในระหว่างการสมัครโปรแกรมปริญญาโท พารามิเตอร์ที่รวมอยู่มีดังนี้:

  • I1: คะแนน GRE (จาก 340 คะแนน)
  • I2: คะแนน TOEFL (จาก 120)
  • I3: คะแนนมหาวิทยาลัย (จาก 5 คะแนน)
  • I4: คำชี้แจงจุดมุ่งหมาย (จาก 5)
  • I5: Letter of Recommendation Strength (จาก 5)
  • I6: เกรดเฉลี่ยระดับปริญญาตรี (จาก 10)
  • I7: ประสบการณ์การวิจัย (0 หรือ 1)
  • O: โอกาสในการตอบรับ (ตั้งแต่ 0 ถึง 1)

แรงบันดาลใจ

ชุดข้อมูลนี้สร้างขึ้นโดยมีวัตถุประสงค์เพื่อช่วยเหลือนักศึกษาในมหาวิทยาลัยที่มีรายชื่อสั้น ๆ ด้วยโปรไฟล์ของพวกเขา [2] ผลลัพธ์ที่คาดการณ์ไว้ทำให้พวกเขามีความคิดที่ยุติธรรมเกี่ยวกับโอกาสของพวกเขาสำหรับมหาวิทยาลัยแห่งใดแห่งหนึ่ง

ลิงค์ชุดข้อมูล: https://www.kaggle.com/mohansacharya/graduate-admissions

จุดมุ่งหมายของบทความ

จุดมุ่งหมายของบทความนี้คือเพื่อให้พอดีและตีความการถดถอยเชิงเส้นแบบพหุคูณและการถดถอยโลจิสติกแบบไบนารีโดยใช้แพ็คเกจ Python Statsmodels ซึ่งคล้ายกับภาษาโปรแกรมทางสถิติ R ที่นี่เราจะทำนายการรับเข้าเรียนของนักเรียนในระดับปริญญาโท นอกจากนี้เราจะได้เรียนรู้วิธีที่เราสามารถตีความค่าสัมประสิทธิ์ที่ได้รับจากวิธีการสร้างแบบจำลองทั้งสองแบบ

กำลังโหลดไลบรารี

ขั้นตอนแรกคือการโหลดไลบรารีที่เกี่ยวข้องใน python

import numpy as np                 # Array manipulation
import pandas as pd                # Data Manipulation
import matplotlib.pyplot as plt    # Plotting
import seaborn as sns              # Advanced statistical plotting
# MLR and Logistic Regession model fitting
import statsmodels.api as sm       
from statsmodels.formula.api import ols, logit
# VIF computation
from statsmodels.stats.outliers_influence import variance_inflation_factor

admission = pd.read_csv("Admission.csv")
admission.head()

Figure 1. First five observations

admission.columns

Figure 2. Column names

ก่อนที่จะดำเนินการในส่วนการสร้างแบบจำลองคุณควรทำความคุ้นเคยกับชุดข้อมูลเสมอ การวิเคราะห์เชิงสำรวจสามารถช่วยในเรื่องนี้ได้ ในการรับข้อมูลชุดข้อมูลเราสามารถใช้เมธอด. info () ชุดข้อมูลมีการสังเกตการณ์ 400 รายการและคอลัมน์ 8 คอลัมน์ซึ่งประกอบด้วยจำนวนเต็มและจำนวนลอย

admission.info()

Figure 3. Data dimensions and types

admission.describe()

Figure 4. Descriptive Statistics

Scatter Plot Matrix

ที่นี่ฉันได้วางแผนเมทริกซ์พล็อตการกระจายเพื่อสำรวจความสัมพันธ์ระหว่างตัวแปรต่างๆ เส้นทแยงมุมเมทริกซ์แสดงการกระจายของตัวแปร (ฮิสโตแกรม)

sns.pairplot(admission, vars = ['GRE_Score', 'TOEFL_Score', 'University_Rating', 'SOP', 'LOR', 'CGPA', 'Chance_of_Admit'])

Figure 5. Scatter plot Matrix

ก่อนที่เราจะดำเนินการ MLR หรือการถดถอยโลจิสติกส์เราจำเป็นต้องตรวจสอบสมมติฐานหนึ่งว่าตัวแปรอิสระ (ตัวทำนาย) ควรปราศจากความสัมพันธ์ใด ๆ หลักการทั่วไปคือความสัมพันธ์ระหว่างตัวทำนายควรน้อยกว่า 0.4 เพื่อให้เข้าใจถึงความสัมพันธ์ระหว่างตัวทำนายเราสามารถประมาณเมทริกซ์สหสัมพันธ์และพล็อตโดยใช้ไลบรารีของนกทะเล

corr = admission.corr()
fig, ax = plt.subplots(figsize=(10, 8))
colormap = sns.diverging_palette(220, 10, as_cmap = True)
dropvals = np.zeros_like(corr)
dropvals[np.triu_indices_from(dropvals)] = True
sns.heatmap(corr, cmap = colormap, linewidths = .5, annot = True, fmt = ".2f", mask = dropvals)
plt.show()

Figure 6. Correlation Plot

  • คะแนน CGPA และ GRE (r = 0.80)
  • คะแนน CGPA และ TOEFL (r = 0.83)
  • คะแนนมหาวิทยาลัยและคะแนน TOEFL (r = 0.70)
  • คะแนน SOP และมหาวิทยาลัย (r = 0.73)
  • CGPA และ SOP (r = 0.72) และอื่น ๆ

อีกวิธีหนึ่งคือการกำจัดตัวแปรที่มีความสัมพันธ์กันโดยการคำนวณค่า Variance Inflation Factor (VIF)

ปัจจัยความแปรปรวนของอัตราเงินเฟ้อ

Multicollinearity เกิดขึ้นเมื่อตัวแปรอิสระสองตัวขึ้นไปมีความสัมพันธ์กันอย่างมากในรูปแบบการถดถอย Multicollinearity อาจเป็นปัญหาได้เนื่องจากในกรณีของแบบจำลองการถดถอยเราจะไม่สามารถแยกความแตกต่างระหว่างผลกระทบส่วนบุคคลของตัวแปรอิสระที่มีต่อตัวแปรตาม

วิธีหนึ่งในการประมาณค่าความหลากหลายเชิงเส้นโดยการประมาณค่าความแปรปรวนของปัจจัยเงินเฟ้อ (VIF) คะแนน VIF ของตัวแปรอิสระแสดงให้เห็นว่าตัวแปรนั้นอธิบายได้ดีเพียงใดโดยตัวแปรอิสระอื่น ๆ

  • VIF เริ่มต้นที่ 1 และไม่มีขีด จำกัด บน
  • VIF = 1: แสดงว่าไม่มีความสัมพันธ์ระหว่างตัวแปรอิสระกับตัวแปรอื่น ๆ
  • VIF> 5 หรือ 10: บ่งบอกถึงความมีหลายมิติระหว่างตัวแปรอิสระกับตัวแปรอื่น ๆ
def calculate_vif(X):
  vif = pd.DataFrame()
  vif["variables"] = X.columns
  vif["VIF"] = [variance_inflation_factor(X.values, i) for i in  range(X.shape[1])]
return(vif)

X = admission.iloc[:,:-1]
calculate_vif(X)

Figure 7. VIF scores

X = admission.drop(['GRE_Score','TOEFL_Score', 'Chance_of_Admit', 'LOR', "SOP", "University_Rating"], axis=1)
calculate_vif(X)

Figure 8. VIF Scores

การติดตั้งแบบจำลองการถดถอยเชิงเส้นหลายตัว

การติดตั้งการถดถอยเชิงเส้นหลายรายการใน Python โดยใช้statsmodelsนั้นคล้ายกับการปรับให้เหมาะสมใน R เนื่องจากแพ็คเกจ statsmodels ยังรองรับสูตรเช่นไวยากรณ์

ที่นี่เราใช้สูตรสไตล์ R โอกาสในการยอมรับทำนายโดย (~) CGPA (ข้อมูลต่อเนื่อง) และการวิจัย (ข้อมูลแยกไบนารี) ในการประกาศตัวแปรไบนารีหรือตัวแปรแบบไม่ต่อเนื่องเราจำเป็นต้องใส่ไว้ในC ()และคุณยังสามารถตั้งค่าหมวดหมู่การอ้างอิงโดยใช้ฟังก์ชันTreatment () สำหรับตัวแปรการวิจัยฉันได้ตั้งค่าหมวดอ้างอิงเป็นศูนย์ ( ไม่มีประสบการณ์การวิจัย: 0 )

เมื่อเรากำหนดสูตรแล้วเราจำเป็นต้องใช้ฟังก์ชันกำลังสองน้อยที่สุดธรรมดาโดยใช้ols () ; ที่เราจัดหาสูตรและชุดข้อมูลและพอดีกับโมเดลโดยใช้ฟังก์ชันfit () สรุปการประมาณแบบจำลองแสดงไว้ด้านล่างในรูปที่ 9

formula = "Chance_of_Admit ~ CGPA + C(Research, Treatment(reference = 0))"
mlr = ols(formula, data = admission)
estimates = mlr.fit()
print(estimates.summary())


Figure 9. MLR Estimates

Fitting Logistic Regression

การถดถอยโลจิสติกแบบไบนารี ” อยู่ภายใต้ตระกูลทวินามที่มีฟังก์ชันลิงค์ล็อก [3] การถดถอยโลจิสติกแบบไบนารีใช้สำหรับทำนายคลาสไบนารี ตัวอย่างเช่นในกรณีที่คุณต้องการทำนายใช่ / ไม่ใช่ชนะ / แพ้ลบ / บวกจริง / เท็จรับเข้า / ปฏิเสธและอื่น ๆ มีความแตกต่างกันเล็กน้อยระหว่างการฝึกอบรม / การปรับโมเดลสำหรับการผลิตและการตีพิมพ์งานวิจัย ที่นี่เราจะได้เรียนรู้ว่าเราสามารถสร้างแบบจำลองการถดถอยโลจิสติกแบบไบนารีและตีความเพื่อเผยแพร่ในวารสาร / บทความได้อย่างไร

See also  ทำอย่างไรเมื่อถูกปลอมเฟสบุ๊ค How to report imposter Facebook | เฟส นักศึกษา

เนื่องจากโอกาสในการรับเข้าเป็นข้อมูลที่ต่อเนื่องดังนั้นเพื่อจุดประสงค์ในการสาธิตเราจึงต้องแปลงเป็นตัวแปรไม่ต่อเนื่องไบนารี ที่นี่ฉันคิดว่าถ้าโอกาสในการรับเข้าเรียนสูงกว่า 0.7 แสดงว่านักเรียนได้รับการตอบรับ (1) อื่น ๆ ถูกปฏิเสธ (0) ฉันตั้งสมมติฐานนี้เพื่อจุดประสงค์ในการสาธิตเท่านั้น

ดังนั้นที่นี่ฉันได้สร้างตัวแปร“ Admission binary” ที่เราจะใช้เป็นตัวแปรตามสำหรับการประมาณค่าการถดถอยโลจิสติกส์แบบไบนารี

ตารางด้านล่างแสดงตัวแปร Admission_binary เก็บค่าไบนารี 0 และ 1 ขึ้นอยู่กับเกณฑ์การหาร (โอกาสในการรับเข้า)

admission["Admission_binary"] = np.where(admission.Chance_of_Admit > 0.7, 1, 0)
admission.head()

Figure 10. First five observations with Admission_binary column

การปรับการถดถอยโลจิสติกแบบไบนารีจะคล้ายกับ MLR ข้อแตกต่างเพียงอย่างเดียวคือที่นี่เราจะใช้แบบจำลองลอจิทสำหรับการประมาณแบบจำลอง

ที่นี่เราใช้สูตรสไตล์ R Admission_binary ทำนายโดย (~) CGPA (ข้อมูลต่อเนื่อง) และการวิจัย (ข้อมูลไม่ต่อเนื่องไบนารี) ในการประกาศตัวแปรแบบไม่ต่อเนื่องไบนารีหรือหมวดหมู่เราจำเป็นต้องใส่ไว้ในC ()และคุณยังสามารถตั้งค่าหมวดหมู่อ้างอิงโดยใช้ฟังก์ชันTreatment () สำหรับตัวแปรการวิจัยฉันได้ตั้งค่าหมวดอ้างอิงเป็นศูนย์ (0)

จากนั้นเราจำเป็นต้องใช้ฟังก์ชันlogit ()ที่เราจัดหาสูตรและชุดข้อมูลและทำให้พอดีกับโมเดลโดยใช้ฟังก์ชันfit () สรุปการประมาณแบบจำลองแสดงในรูปที่ 11

formula = "Admission_binary ~ CGPA + C(Research, Treatment(reference = 0))"
logit_model = logit(formula, data = admission)
logit_estimates = logit_model.fit()
print(logit_estimates.summary())

Figure 11. Binary Logistic Regression Estimates

ตารางค่าสัมประสิทธิ์แสดงให้เห็นว่าการวิจัยและ CGPA มีอิทธิพลอย่างมีนัยสำคัญ (ค่า p <0.05; ระดับนัยสำคัญ 5%) ต่อการรับเข้าเรียน ค่าสัมประสิทธิ์เป็นบวกและอยู่ในเงื่อนไขล็อก – ราคา การตีความค่าสัมประสิทธิ์ของแบบจำลองอาจเป็นดังนี้:

การเพิ่มขึ้นหนึ่งหน่วยใน CGPA จะเพิ่มโอกาสในการรับเข้าบันทึกโดย 4.2362 และค่า p ของมันบ่งชี้ว่ามีความสำคัญในการพิจารณาการรับเข้า นอกจากนี้สำหรับตัวแปรการวิจัยเราสามารถพูดได้เมื่อเทียบกับนักเรียนที่ไม่มีการวิจัยนักเรียนที่มีการวิจัยมีโอกาสในการเข้าสู่ระบบ 1.2710 โดยถือตัวแปรอื่น ๆ คงที่

ลองนึกภาพว่าความน่าจะเป็นของการรับเข้าเปลี่ยนไปด้วยค่า CGPA โดยใช้พล็อตการถดถอยของนกทะเล (รูปที่ 12)

sns.regplot(x = "CGPA", y = "Admission_binary", data = admission,
logistic = True, y_jitter = .03)
plt.ylabel("Admission probability")

Figure 12. Regression Plot

อัตราส่วนราคาต่อรอง

ODDS คืออัตราส่วนของความน่าจะเป็นของเหตุการณ์ที่เกิดขึ้นกับเหตุการณ์ที่ไม่เกิดขึ้น เมื่อเราหาอัตราส่วนของสองอัตราต่อรองดังกล่าวเรียกว่า Odds Ratio

รูปที่ 13. อัตราต่อรอง

อัตราต่อรองและอัตราต่อรอง

ในทางคณิตศาสตร์เราสามารถคำนวณอัตราส่วนราคาได้โดยการหาเลขชี้กำลังของสัมประสิทธิ์โดยประมาณ ตัวอย่างเช่นในตารางอัตราส่วน ODDS ด้านล่างคุณสามารถสังเกตได้ว่า CGPA มี ODDS Ratio เท่ากับ 69.143 ซึ่งบ่งชี้ว่าการเพิ่มขึ้นของ CGPA หนึ่งหน่วยจะเพิ่มโอกาสในการรับเข้า 69.143 เท่า ในทำนองเดียวกันอัตราการรับเข้าเรียนคือ 3.564 เท่าหากนักเรียนมีประสบการณ์การวิจัยบางประเภทเมื่อเทียบกับไม่มีประสบการณ์

round(np.exp(logit_estimates.params), 3)

Figure 14. Odds Ratio

การคำนวณผลกระทบเล็กน้อย

ผลกระทบเล็กน้อยเป็นเมตริกทางเลือกที่สามารถใช้เพื่ออธิบายผลกระทบของตัวทำนายที่มีต่อตัวแปรผลลัพธ์ ผลกระทบเล็กน้อยสามารถอธิบายได้ว่าการเปลี่ยนแปลงของผลลัพธ์เป็นฟังก์ชันของการเปลี่ยนแปลงในการรักษา (หรือตัวแปรอิสระที่สนใจ) ซึ่งถือตัวแปรอื่น ๆ ทั้งหมดในค่าคงที่ของแบบจำลอง ในการถดถอยเชิงเส้นค่าสัมประสิทธิ์การถดถอยโดยประมาณเป็นผลกระทบเล็กน้อยและตีความได้ง่ายกว่า

ผลกระทบส่วนขอบที่รายงานโดยนักวิจัยมีสามประเภท ได้แก่Marginal Effect ที่ค่าตัวแทน (MERs), ผลกระทบระยะขอบที่ค่าเฉลี่ย (MEMs) และเอฟเฟกต์ Marginal Effects โดยเฉลี่ยทุกค่าที่สังเกตได้ของ x และค่าเฉลี่ยในผลลัพธ์ (AMEs), ( Leeper, 2017 ) [1]. สำหรับตัวแปรจัดหมวดหมู่ผลกระทบส่วนขอบเฉลี่ยถูกคำนวณสำหรับการเปลี่ยนแปลงที่ไม่ต่อเนื่องทุกครั้งที่สอดคล้องกับระดับอ้างอิง

statsmodelsมีห้องสมุดต่อไปนี้ผลกระทบเล็กน้อยคำนวณ:

รูปที่ 15. เอกสาร Statsmodels

ในโดเมนการวิจัย STEM Average Marginal Effects เป็นที่นิยมมากและมักรายงานโดยนักวิจัย ในกรณีของเราเราได้ประมาณค่า Average Marginal Effects (AMEs) ของตัวแปรทำนายโดยใช้ฟังก์ชัน. get_margeff ()และพิมพ์สรุปรายงาน

AME = logit_estimates.get_margeff(at = "overall", method = "dydx")
print(AME.summary())

Figure 16. AMEs Table

MLR และการถดถอยโลจิสติกแบบไบนารียังคงเป็นอัลกอริทึม ML ที่ได้รับความนิยมอย่างมาก (สำหรับการจำแนกไบนารี) ในโดเมนการวิจัย STEM พวกเขายังคงฝึกและตีความได้ง่ายมากเมื่อเทียบกับโมเดลกล่องดำที่ซับซ้อนและซับซ้อนหลายรุ่น

ฉันหวังว่าคุณจะได้เรียนรู้สิ่งใหม่ ๆ !

อ้างอิง

[1] ลีเปอร์, ทีเจ, (2017). การตีความผลการถดถอยโดยใช้ผลกระทบเฉลี่ยกับระยะขอบของ R เทคโนโลยี ตัวแทน

[2] Mohan S Acharya, Asfia Armaan, Aneeta S Antony: การเปรียบเทียบแบบจำลองการถดถอยสำหรับการทำนายการรับเข้าศึกษาระดับบัณฑิตศึกษา, การประชุมนานาชาติ IEEE เกี่ยวกับระบบปัญญาเชิงคำนวณในวิทยาศาสตร์ข้อมูล 2019

[3] Shrikant I. Bangdiwala (2018). การถดถอย: ไบนารีโลจิสติกส์วารสารนานาชาติด้านการควบคุมการบาดเจ็บและการส่งเสริมความปลอดภัย DOI: 10.1080 / 17457300.2018.1486503

ถ้าคุณได้เรียนรู้สิ่งใหม่และชอบบทความนี้ปฏิบัติตามฉันTwitter , LinkedIn , YouTubeหรือ Github

บทความนี้เผยแพร่ครั้งแรกบนonezero.blogซึ่งเป็นวิทยาศาสตร์ข้อมูลการเรียนรู้ของเครื่องและการวิจัยที่เกี่ยวข้องกับแพลตฟอร์มบล็อกที่ดูแลโดยฉัน

การอ่านที่น่าสนใจเพิ่มเติม
ฉันหวังว่าบทความนี้จะเป็นประโยชน์! ด้านล่างนี้คือการอ่านที่น่าสนใจหวังว่าคุณจะชอบเช่นกัน

[Update] การติดตั้ง MLR และ Binary Logistic Regression โดยใช้ Python (Research-Oriented Modeling & Interpretation) | งานวิจัยที่ใช้ binary logistic regression – Sathyasaith

ภาพถ่ายโดย Eilis Garvey บน Unsplash

โครงร่างบทความ

  • ความเป็นมาของข้อมูล
  • จุดมุ่งหมายของการสร้างแบบจำลอง
  • กำลังโหลดข้อมูล
  • การวิเคราะห์เชิงสำรวจขั้นพื้นฐาน
  • การติดตั้ง / การประมาณค่าแบบจำลองการถดถอยเชิงเส้นหลายเส้น
  • การตีความสรุปโมเดล MLR
  • การฟิตติ้ง / การประมาณค่าแบบจำลองการถดถอยโลจิสติกไบนารี
  • การตีความสรุปแบบจำลองการถดถอยโลจิสติก
  • อ้างอิง

ชุดข้อมูลประกอบด้วยพารามิเตอร์หลายตัวซึ่งถือว่าสำคัญในระหว่างการสมัครโปรแกรมปริญญาโท พารามิเตอร์ที่รวมอยู่มีดังนี้:

  • I1: คะแนน GRE (จาก 340 คะแนน)
  • I2: คะแนน TOEFL (จาก 120)
  • I3: คะแนนมหาวิทยาลัย (จาก 5 คะแนน)
  • I4: คำชี้แจงจุดมุ่งหมาย (จาก 5)
  • I5: Letter of Recommendation Strength (จาก 5)
  • I6: เกรดเฉลี่ยระดับปริญญาตรี (จาก 10)
  • I7: ประสบการณ์การวิจัย (0 หรือ 1)
  • O: โอกาสในการตอบรับ (ตั้งแต่ 0 ถึง 1)

แรงบันดาลใจ

ชุดข้อมูลนี้สร้างขึ้นโดยมีวัตถุประสงค์เพื่อช่วยเหลือนักศึกษาในมหาวิทยาลัยที่มีรายชื่อสั้น ๆ ด้วยโปรไฟล์ของพวกเขา [2] ผลลัพธ์ที่คาดการณ์ไว้ทำให้พวกเขามีความคิดที่ยุติธรรมเกี่ยวกับโอกาสของพวกเขาสำหรับมหาวิทยาลัยแห่งใดแห่งหนึ่ง

ลิงค์ชุดข้อมูล: https://www.kaggle.com/mohansacharya/graduate-admissions

จุดมุ่งหมายของบทความ

จุดมุ่งหมายของบทความนี้คือเพื่อให้พอดีและตีความการถดถอยเชิงเส้นแบบพหุคูณและการถดถอยโลจิสติกแบบไบนารีโดยใช้แพ็คเกจ Python Statsmodels ซึ่งคล้ายกับภาษาโปรแกรมทางสถิติ R ที่นี่เราจะทำนายการรับเข้าเรียนของนักเรียนในระดับปริญญาโท นอกจากนี้เราจะได้เรียนรู้วิธีที่เราสามารถตีความค่าสัมประสิทธิ์ที่ได้รับจากวิธีการสร้างแบบจำลองทั้งสองแบบ

กำลังโหลดไลบรารี

ขั้นตอนแรกคือการโหลดไลบรารีที่เกี่ยวข้องใน python

import numpy as np                 # Array manipulation
import pandas as pd                # Data Manipulation
import matplotlib.pyplot as plt    # Plotting
import seaborn as sns              # Advanced statistical plotting
# MLR and Logistic Regession model fitting
import statsmodels.api as sm       
from statsmodels.formula.api import ols, logit
# VIF computation
from statsmodels.stats.outliers_influence import variance_inflation_factor

admission = pd.read_csv("Admission.csv")
admission.head()

Figure 1. First five observations

admission.columns

Figure 2. Column names

ก่อนที่จะดำเนินการในส่วนการสร้างแบบจำลองคุณควรทำความคุ้นเคยกับชุดข้อมูลเสมอ การวิเคราะห์เชิงสำรวจสามารถช่วยในเรื่องนี้ได้ ในการรับข้อมูลชุดข้อมูลเราสามารถใช้เมธอด. info () ชุดข้อมูลมีการสังเกตการณ์ 400 รายการและคอลัมน์ 8 คอลัมน์ซึ่งประกอบด้วยจำนวนเต็มและจำนวนลอย

admission.info()

Figure 3. Data dimensions and types

admission.describe()

Figure 4. Descriptive Statistics

Scatter Plot Matrix

ที่นี่ฉันได้วางแผนเมทริกซ์พล็อตการกระจายเพื่อสำรวจความสัมพันธ์ระหว่างตัวแปรต่างๆ เส้นทแยงมุมเมทริกซ์แสดงการกระจายของตัวแปร (ฮิสโตแกรม)

See also  เผย วิธีการ ทำทรงผม ขึ้นฉากการแสดง ของเอมอรตลกสาว (ใครหัวโปกต้องดู อิอิ )😁😁❤️❤️😜 | ฉาก การ แสดง

sns.pairplot(admission, vars = ['GRE_Score', 'TOEFL_Score', 'University_Rating', 'SOP', 'LOR', 'CGPA', 'Chance_of_Admit'])

Figure 5. Scatter plot Matrix

ก่อนที่เราจะดำเนินการ MLR หรือการถดถอยโลจิสติกส์เราจำเป็นต้องตรวจสอบสมมติฐานหนึ่งว่าตัวแปรอิสระ (ตัวทำนาย) ควรปราศจากความสัมพันธ์ใด ๆ หลักการทั่วไปคือความสัมพันธ์ระหว่างตัวทำนายควรน้อยกว่า 0.4 เพื่อให้เข้าใจถึงความสัมพันธ์ระหว่างตัวทำนายเราสามารถประมาณเมทริกซ์สหสัมพันธ์และพล็อตโดยใช้ไลบรารีของนกทะเล

corr = admission.corr()
fig, ax = plt.subplots(figsize=(10, 8))
colormap = sns.diverging_palette(220, 10, as_cmap = True)
dropvals = np.zeros_like(corr)
dropvals[np.triu_indices_from(dropvals)] = True
sns.heatmap(corr, cmap = colormap, linewidths = .5, annot = True, fmt = ".2f", mask = dropvals)
plt.show()

Figure 6. Correlation Plot

  • คะแนน CGPA และ GRE (r = 0.80)
  • คะแนน CGPA และ TOEFL (r = 0.83)
  • คะแนนมหาวิทยาลัยและคะแนน TOEFL (r = 0.70)
  • คะแนน SOP และมหาวิทยาลัย (r = 0.73)
  • CGPA และ SOP (r = 0.72) และอื่น ๆ

อีกวิธีหนึ่งคือการกำจัดตัวแปรที่มีความสัมพันธ์กันโดยการคำนวณค่า Variance Inflation Factor (VIF)

ปัจจัยความแปรปรวนของอัตราเงินเฟ้อ

Multicollinearity เกิดขึ้นเมื่อตัวแปรอิสระสองตัวขึ้นไปมีความสัมพันธ์กันอย่างมากในรูปแบบการถดถอย Multicollinearity อาจเป็นปัญหาได้เนื่องจากในกรณีของแบบจำลองการถดถอยเราจะไม่สามารถแยกความแตกต่างระหว่างผลกระทบส่วนบุคคลของตัวแปรอิสระที่มีต่อตัวแปรตาม

วิธีหนึ่งในการประมาณค่าความหลากหลายเชิงเส้นโดยการประมาณค่าความแปรปรวนของปัจจัยเงินเฟ้อ (VIF) คะแนน VIF ของตัวแปรอิสระแสดงให้เห็นว่าตัวแปรนั้นอธิบายได้ดีเพียงใดโดยตัวแปรอิสระอื่น ๆ

  • VIF เริ่มต้นที่ 1 และไม่มีขีด จำกัด บน
  • VIF = 1: แสดงว่าไม่มีความสัมพันธ์ระหว่างตัวแปรอิสระกับตัวแปรอื่น ๆ
  • VIF> 5 หรือ 10: บ่งบอกถึงความมีหลายมิติระหว่างตัวแปรอิสระกับตัวแปรอื่น ๆ
def calculate_vif(X):
  vif = pd.DataFrame()
  vif["variables"] = X.columns
  vif["VIF"] = [variance_inflation_factor(X.values, i) for i in  range(X.shape[1])]
return(vif)

X = admission.iloc[:,:-1]
calculate_vif(X)

Figure 7. VIF scores

X = admission.drop(['GRE_Score','TOEFL_Score', 'Chance_of_Admit', 'LOR', "SOP", "University_Rating"], axis=1)
calculate_vif(X)

Figure 8. VIF Scores

การติดตั้งแบบจำลองการถดถอยเชิงเส้นหลายตัว

การติดตั้งการถดถอยเชิงเส้นหลายรายการใน Python โดยใช้statsmodelsนั้นคล้ายกับการปรับให้เหมาะสมใน R เนื่องจากแพ็คเกจ statsmodels ยังรองรับสูตรเช่นไวยากรณ์

ที่นี่เราใช้สูตรสไตล์ R โอกาสในการยอมรับทำนายโดย (~) CGPA (ข้อมูลต่อเนื่อง) และการวิจัย (ข้อมูลแยกไบนารี) ในการประกาศตัวแปรไบนารีหรือตัวแปรแบบไม่ต่อเนื่องเราจำเป็นต้องใส่ไว้ในC ()และคุณยังสามารถตั้งค่าหมวดหมู่การอ้างอิงโดยใช้ฟังก์ชันTreatment () สำหรับตัวแปรการวิจัยฉันได้ตั้งค่าหมวดอ้างอิงเป็นศูนย์ ( ไม่มีประสบการณ์การวิจัย: 0 )

เมื่อเรากำหนดสูตรแล้วเราจำเป็นต้องใช้ฟังก์ชันกำลังสองน้อยที่สุดธรรมดาโดยใช้ols () ; ที่เราจัดหาสูตรและชุดข้อมูลและพอดีกับโมเดลโดยใช้ฟังก์ชันfit () สรุปการประมาณแบบจำลองแสดงไว้ด้านล่างในรูปที่ 9

formula = "Chance_of_Admit ~ CGPA + C(Research, Treatment(reference = 0))"
mlr = ols(formula, data = admission)
estimates = mlr.fit()
print(estimates.summary())


Figure 9. MLR Estimates

Fitting Logistic Regression

การถดถอยโลจิสติกแบบไบนารี ” อยู่ภายใต้ตระกูลทวินามที่มีฟังก์ชันลิงค์ล็อก [3] การถดถอยโลจิสติกแบบไบนารีใช้สำหรับทำนายคลาสไบนารี ตัวอย่างเช่นในกรณีที่คุณต้องการทำนายใช่ / ไม่ใช่ชนะ / แพ้ลบ / บวกจริง / เท็จรับเข้า / ปฏิเสธและอื่น ๆ มีความแตกต่างกันเล็กน้อยระหว่างการฝึกอบรม / การปรับโมเดลสำหรับการผลิตและการตีพิมพ์งานวิจัย ที่นี่เราจะได้เรียนรู้ว่าเราสามารถสร้างแบบจำลองการถดถอยโลจิสติกแบบไบนารีและตีความเพื่อเผยแพร่ในวารสาร / บทความได้อย่างไร

เนื่องจากโอกาสในการรับเข้าเป็นข้อมูลที่ต่อเนื่องดังนั้นเพื่อจุดประสงค์ในการสาธิตเราจึงต้องแปลงเป็นตัวแปรไม่ต่อเนื่องไบนารี ที่นี่ฉันคิดว่าถ้าโอกาสในการรับเข้าเรียนสูงกว่า 0.7 แสดงว่านักเรียนได้รับการตอบรับ (1) อื่น ๆ ถูกปฏิเสธ (0) ฉันตั้งสมมติฐานนี้เพื่อจุดประสงค์ในการสาธิตเท่านั้น

ดังนั้นที่นี่ฉันได้สร้างตัวแปร“ Admission binary” ที่เราจะใช้เป็นตัวแปรตามสำหรับการประมาณค่าการถดถอยโลจิสติกส์แบบไบนารี

ตารางด้านล่างแสดงตัวแปร Admission_binary เก็บค่าไบนารี 0 และ 1 ขึ้นอยู่กับเกณฑ์การหาร (โอกาสในการรับเข้า)

admission["Admission_binary"] = np.where(admission.Chance_of_Admit > 0.7, 1, 0)
admission.head()

Figure 10. First five observations with Admission_binary column

การปรับการถดถอยโลจิสติกแบบไบนารีจะคล้ายกับ MLR ข้อแตกต่างเพียงอย่างเดียวคือที่นี่เราจะใช้แบบจำลองลอจิทสำหรับการประมาณแบบจำลอง

ที่นี่เราใช้สูตรสไตล์ R Admission_binary ทำนายโดย (~) CGPA (ข้อมูลต่อเนื่อง) และการวิจัย (ข้อมูลไม่ต่อเนื่องไบนารี) ในการประกาศตัวแปรแบบไม่ต่อเนื่องไบนารีหรือหมวดหมู่เราจำเป็นต้องใส่ไว้ในC ()และคุณยังสามารถตั้งค่าหมวดหมู่อ้างอิงโดยใช้ฟังก์ชันTreatment () สำหรับตัวแปรการวิจัยฉันได้ตั้งค่าหมวดอ้างอิงเป็นศูนย์ (0)

จากนั้นเราจำเป็นต้องใช้ฟังก์ชันlogit ()ที่เราจัดหาสูตรและชุดข้อมูลและทำให้พอดีกับโมเดลโดยใช้ฟังก์ชันfit () สรุปการประมาณแบบจำลองแสดงในรูปที่ 11

formula = "Admission_binary ~ CGPA + C(Research, Treatment(reference = 0))"
logit_model = logit(formula, data = admission)
logit_estimates = logit_model.fit()
print(logit_estimates.summary())

Figure 11. Binary Logistic Regression Estimates

ตารางค่าสัมประสิทธิ์แสดงให้เห็นว่าการวิจัยและ CGPA มีอิทธิพลอย่างมีนัยสำคัญ (ค่า p <0.05; ระดับนัยสำคัญ 5%) ต่อการรับเข้าเรียน ค่าสัมประสิทธิ์เป็นบวกและอยู่ในเงื่อนไขล็อก – ราคา การตีความค่าสัมประสิทธิ์ของแบบจำลองอาจเป็นดังนี้:

การเพิ่มขึ้นหนึ่งหน่วยใน CGPA จะเพิ่มโอกาสในการรับเข้าบันทึกโดย 4.2362 และค่า p ของมันบ่งชี้ว่ามีความสำคัญในการพิจารณาการรับเข้า นอกจากนี้สำหรับตัวแปรการวิจัยเราสามารถพูดได้เมื่อเทียบกับนักเรียนที่ไม่มีการวิจัยนักเรียนที่มีการวิจัยมีโอกาสในการเข้าสู่ระบบ 1.2710 โดยถือตัวแปรอื่น ๆ คงที่

ลองนึกภาพว่าความน่าจะเป็นของการรับเข้าเปลี่ยนไปด้วยค่า CGPA โดยใช้พล็อตการถดถอยของนกทะเล (รูปที่ 12)

sns.regplot(x = "CGPA", y = "Admission_binary", data = admission,
logistic = True, y_jitter = .03)
plt.ylabel("Admission probability")

Figure 12. Regression Plot

อัตราส่วนราคาต่อรอง

ODDS คืออัตราส่วนของความน่าจะเป็นของเหตุการณ์ที่เกิดขึ้นกับเหตุการณ์ที่ไม่เกิดขึ้น เมื่อเราหาอัตราส่วนของสองอัตราต่อรองดังกล่าวเรียกว่า Odds Ratio

รูปที่ 13. อัตราต่อรอง

อัตราต่อรองและอัตราต่อรอง

ในทางคณิตศาสตร์เราสามารถคำนวณอัตราส่วนราคาได้โดยการหาเลขชี้กำลังของสัมประสิทธิ์โดยประมาณ ตัวอย่างเช่นในตารางอัตราส่วน ODDS ด้านล่างคุณสามารถสังเกตได้ว่า CGPA มี ODDS Ratio เท่ากับ 69.143 ซึ่งบ่งชี้ว่าการเพิ่มขึ้นของ CGPA หนึ่งหน่วยจะเพิ่มโอกาสในการรับเข้า 69.143 เท่า ในทำนองเดียวกันอัตราการรับเข้าเรียนคือ 3.564 เท่าหากนักเรียนมีประสบการณ์การวิจัยบางประเภทเมื่อเทียบกับไม่มีประสบการณ์

round(np.exp(logit_estimates.params), 3)

Figure 14. Odds Ratio

การคำนวณผลกระทบเล็กน้อย

ผลกระทบเล็กน้อยเป็นเมตริกทางเลือกที่สามารถใช้เพื่ออธิบายผลกระทบของตัวทำนายที่มีต่อตัวแปรผลลัพธ์ ผลกระทบเล็กน้อยสามารถอธิบายได้ว่าการเปลี่ยนแปลงของผลลัพธ์เป็นฟังก์ชันของการเปลี่ยนแปลงในการรักษา (หรือตัวแปรอิสระที่สนใจ) ซึ่งถือตัวแปรอื่น ๆ ทั้งหมดในค่าคงที่ของแบบจำลอง ในการถดถอยเชิงเส้นค่าสัมประสิทธิ์การถดถอยโดยประมาณเป็นผลกระทบเล็กน้อยและตีความได้ง่ายกว่า

ผลกระทบส่วนขอบที่รายงานโดยนักวิจัยมีสามประเภท ได้แก่Marginal Effect ที่ค่าตัวแทน (MERs), ผลกระทบระยะขอบที่ค่าเฉลี่ย (MEMs) และเอฟเฟกต์ Marginal Effects โดยเฉลี่ยทุกค่าที่สังเกตได้ของ x และค่าเฉลี่ยในผลลัพธ์ (AMEs), ( Leeper, 2017 ) [1]. สำหรับตัวแปรจัดหมวดหมู่ผลกระทบส่วนขอบเฉลี่ยถูกคำนวณสำหรับการเปลี่ยนแปลงที่ไม่ต่อเนื่องทุกครั้งที่สอดคล้องกับระดับอ้างอิง

statsmodelsมีห้องสมุดต่อไปนี้ผลกระทบเล็กน้อยคำนวณ:

รูปที่ 15. เอกสาร Statsmodels

ในโดเมนการวิจัย STEM Average Marginal Effects เป็นที่นิยมมากและมักรายงานโดยนักวิจัย ในกรณีของเราเราได้ประมาณค่า Average Marginal Effects (AMEs) ของตัวแปรทำนายโดยใช้ฟังก์ชัน. get_margeff ()และพิมพ์สรุปรายงาน

AME = logit_estimates.get_margeff(at = "overall", method = "dydx")
print(AME.summary())

Figure 16. AMEs Table

MLR และการถดถอยโลจิสติกแบบไบนารียังคงเป็นอัลกอริทึม ML ที่ได้รับความนิยมอย่างมาก (สำหรับการจำแนกไบนารี) ในโดเมนการวิจัย STEM พวกเขายังคงฝึกและตีความได้ง่ายมากเมื่อเทียบกับโมเดลกล่องดำที่ซับซ้อนและซับซ้อนหลายรุ่น

See also  [NEW] แบบทดสอบทายนิสัย! วัดแน้วโน้มความโรคจิตในตัว มาดูกันว่าเราโรคจิตไหม | แบบ ทดสอบ mbti download - Sathyasaith

ฉันหวังว่าคุณจะได้เรียนรู้สิ่งใหม่ ๆ !

อ้างอิง

[1] ลีเปอร์, ทีเจ, (2017). การตีความผลการถดถอยโดยใช้ผลกระทบเฉลี่ยกับระยะขอบของ R เทคโนโลยี ตัวแทน

[2] Mohan S Acharya, Asfia Armaan, Aneeta S Antony: การเปรียบเทียบแบบจำลองการถดถอยสำหรับการทำนายการรับเข้าศึกษาระดับบัณฑิตศึกษา, การประชุมนานาชาติ IEEE เกี่ยวกับระบบปัญญาเชิงคำนวณในวิทยาศาสตร์ข้อมูล 2019

[3] Shrikant I. Bangdiwala (2018). การถดถอย: ไบนารีโลจิสติกส์วารสารนานาชาติด้านการควบคุมการบาดเจ็บและการส่งเสริมความปลอดภัย DOI: 10.1080 / 17457300.2018.1486503

ถ้าคุณได้เรียนรู้สิ่งใหม่และชอบบทความนี้ปฏิบัติตามฉันTwitter , LinkedIn , YouTubeหรือ Github

บทความนี้เผยแพร่ครั้งแรกบนonezero.blogซึ่งเป็นวิทยาศาสตร์ข้อมูลการเรียนรู้ของเครื่องและการวิจัยที่เกี่ยวข้องกับแพลตฟอร์มบล็อกที่ดูแลโดยฉัน

การอ่านที่น่าสนใจเพิ่มเติม
ฉันหวังว่าบทความนี้จะเป็นประโยชน์! ด้านล่างนี้คือการอ่านที่น่าสนใจหวังว่าคุณจะชอบเช่นกัน


Interpreting Odds Ratio with Two Independent Variables in Binary Logistic Regression using SPSS


This video demonstrates how to interpret the odds ratio (exponentiated beta) in a binary logistic regression using SPSS with two independent variables. A binary logistic regression returns the odds of belonging to a level of a dichotomous dependent variable using one or more independent variables.

นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูความรู้เพิ่มเติมที่นี่

Interpreting Odds Ratio with Two Independent Variables in Binary Logistic Regression using SPSS

Binary logistic regression using R: Analysis and interpretation


This video provides provides a basic introduction to carrying out binary logistic regression in R. It covers the use of continuous and factor variables, likelihood ratio tests, and pseudoRsquares. A copy of the data, the text file, and Powerpoint can obtained here (https://drive.google.com/open?id=17niar3Mc7s5HTsBWVX1fdVSB3S_Lh43), here (https://drive.google.com/open?id=1J5bHOUFHe1yA_3Kq2ezq9Vyk_PkXhLiq), and here (https://drive.google.com/open?id=10O9Jej9QHOHOvke44r4dqUeS0GYBh33).
More videos and resources on multivariate statistical procedures can be found here: https://sites.google.com/view/statisticsfortherealworld/home

Binary logistic regression using R: Analysis and interpretation

Logistic Regression in Python Step by Step in 10 minutes


This video explains How to Perform Logistic Regression in Python(Step by Step) with Jupyter Notebook
Source codes here: https://www.datarmatics.com/datascience/howtoperformlogisticregressioninpythonstepbystep/
How to build a simple Neural Network https://youtu.be/GoJ6Fa4QRd0
To Learn Python: www.kindsonthegenius.com/python
Machine Learning 101: https://www.kindsonthegenius.com/machinelearning101completecourse/

Subscribe Kindson The Genius Youtube: https://bit.ly/2PpJd8Q
Join Machine Learning \u0026 Data Science in Python and R https://www.facebook.com/groups/704770263315075/
Join my group ICS on Facebook: https://bit.ly/2UULiQj

Follow me on Instagram https://www.instagram.com/kindsonm/
Connect with me on LinkedIn: https://www.linkedin.com/in/kindson/
Follow me on Twitter: https://twitter.com/KindsonM
Learn about me: http://www.kindsonthegenius.com
Tutorial 6. Creating Interactive 3D Plots https://youtu.be/9VmXQSfD9os
How to Perform Linear Regression in R https://youtu.be/MNHaXSZVceo
How to Perform Linear Regression in Python https://youtu.be/iaom_n2ERQ

Logistic Regression in Python Step by Step in 10 minutes

Testing assumptions for Binary Logistic Regression using SPSS


This video will demonstrate how to test the assumptions of Binary Logistic Regression.

Testing assumptions for Binary Logistic Regression using SPSS

Multinomial Logistic Regression -การถดถอยโลจิสติก พหุกลุ่ม


Multinomial Logistic Regression การถดถอยโลจิสติก พหุกลุ่ม
โดย ดร.ฐณัฐ วงศ์สายเชื้อ (Thanut Wongsaichue, Ph.D.)
เนื้อหาที่ upload แล้ว สถิติ งานวิจัย ความแตกต่าง สมการกำลังสอง โปรแกรม SPSS การถดถอยอย่างง่าย ตัวแปรกลุ่ม ตัวแปรอันดับ ข้อมูลอ่อน Soft Data ตัวแปรกวน Confounding factor การทำความสะอาดข้อมูล Data Cleaning การวิเคราะห์ข้อมูล Data Analysis งานวิจัย Research ทดสอบตัวอย่างอคติ Sample selection bias การสร้างแฟ้มข้อมูล การแก้ไขแฟ้มข้อมูล การถ่วงน้ำหนัก การยุบกลุ่ม ความแตกต่าง สถิติเปรียบเทียบ ค่าเฉลี่ย Mean ถดถอยพหุคูณ ถดถอยพหุ Multiple Regression ถดถอย Simple Regression สหสัมพันธ์ Correlation ไคสแควร์ Chisquare สถิติที ttest การเปรียบเทียบค่าเฉลี่ย ANOVA, ftest ทดสอบความแปรปรวน การวิเคราะห์แบบจำลองสมการโครงสร้าง SEM Structural Equation Modeling ใน AMOS โมเดลสมการโครงสร้าง CFA การวิเคราะห์องค์ประกอบเชิงยืนยัน การจำแนกองค์ประกอบ EFA การวิเคราะห์ถดถอยโลจิสติกส์ Logistic Regression, Logit Analysis, Multicollinearity, Collinearity, Z score, Mediator variable, Square root, Log transform, Log 10, Log N, Natural Log, Power transform, square, cube, quadratic, creating variable, สมการถดถอยพหุ, ค่าสมบูรณ์ Absolute value, ตัวแปรกลุ่ม Categorical variable, Dichotomous, Autocorrelation, กลุ่มอ้างอิง reference category, ถดถอยปัวซอง, ถดถอยพัวซอง, Poisson regression, Factor analysis, การวิเคราะห์องค์ประกอบ

Multinomial Logistic Regression -การถดถอยโลจิสติก พหุกลุ่ม

นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูบทความเพิ่มเติมในหมวดหมู่Economy

ขอบคุณมากสำหรับการดูหัวข้อโพสต์ งานวิจัยที่ใช้ binary logistic regression

4 thoughts on “[Update] การติดตั้ง MLR และ Binary Logistic Regression โดยใช้ Python (Research-Oriented Modeling & Interpretation) | งานวิจัยที่ใช้ binary logistic regression – Sathyasaith”

  1. 705527 97599This design is steller! You most surely know how to keep a reader entertained. Between your wit and your videos, I was almost moved to start my own weblog (well, almostHaHa!) Wonderful job. I genuinely loved what you had to say, and much more than that, how you presented it. Too cool! 118862

    Reply
  2. 63901 147624Most appropriate the human race messages work to show your and present exclusive chance with unique couple. Beginer appear system in advance of raucous folks will most likely always be aware most of the golden value off presentation, which is a persons truck. finest man jokes 592990

    Reply

Leave a Comment