วิธีทำการทดสอบ wald ใน python


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

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

เราใช้ สมมติฐาน ว่างและทางเลือกต่อไปนี้สำหรับการทดสอบนี้:

  • H 0 : ตัวแปรทำนายบางชุดมีค่าเท่ากับศูนย์ทั้งหมด
  • H A : ตัวแปรทำนายบางตัวในชุดไม่เท่ากับศูนย์

หากเราไม่สามารถปฏิเสธสมมติฐานว่างได้ เราก็สามารถลบชุดตัวแปรทำนายที่ระบุออกจากแบบจำลองได้ เนื่องจากไม่ได้ให้การปรับปรุงที่มีนัยสำคัญทางสถิติในแบบจำลองที่พอดี

ตัวอย่างต่อไปนี้แสดงวิธีดำเนินการทดสอบ Wald ใน Python

ตัวอย่าง: การทดสอบ Wald ใน Python

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

mpg = β 0 + β 1 ที่มีอยู่ + β 2 คาร์โบไฮเดรต + β 3 แรงม้า + β 4 สูบ

รหัสต่อไปนี้แสดงวิธีปรับโมเดลการถดถอยนี้ให้เหมาะสม และแสดงสรุปโมเดล:

 import statsmodels. formula . api as smf
import pandas as pd
import io

#define dataset as string
mtcars_data="""model,mpg,cyl,disp,hp,drat,wt,qsec,vs,am,gear,carb
Mazda RX4,21,6,160,110,3.9,2.62,16.46,0,1,4,4
Mazda RX4 Wag,21.6,160,110,3.9,2.875,17.02,0,1,4,4
Datsun 710,22.8,4,108,93,3.85,2.32,18.61,1,1,4,1
Hornet 4 Drive,21.4,6,258,110,3.08,3.215,19.44,1,0,3,1
Hornet Sportabout,18.7,8,360,175,3.15,3.44,17.02,0,0,3,2
Valiant,18.1,6,225,105,2.76,3.46,20.22,1,0,3,1
Duster 360,14.3,8,360,245,3.21,3.57,15.84,0,0,3,4
Merc 240D,24.4,4,146.7,62,3.69,3.19,20,1,0,4,2
Merc 230,22.8,4,140.8,95,3.92,3.15,22.9,1,0,4,2
Merc 280,19.2,6,167.6,123,3.92,3.44,18.3,1,0,4,4
Merc 280C,17.8,6,167.6,123,3.92,3.44,18.9,1,0,4,4
Merc 450SE,16.4,8,275.8,180,3.07,4.07,17.4,0,0,3,3
Merc 450SL,17.3,8,275.8,180,3.07,3.73,17.6,0,0,3,3
Merc 450SLC,15.2,8,275.8,180,3.07,3.78,18,0,0,3,3
Cadillac Fleetwood,10.4,8,472,205,2.93,5.25,17.98,0,0,3,4
Lincoln Continental,10.4,8,460,215,3,5.424,17.82,0,0,3,4
Chrysler Imperial,14.7,8,440,230,3.23,5.345,17.42,0,0,3,4
Fiat 128,32.4,4,78.7,66,4.08,2.2,19.47,1,1,4,1
Honda Civic,30.4,4,75.7,52,4.93,1.615,18.52,1,1,4,2
Toyota Corolla,33.9,4,71.1,65,4.22,1.835,19.9,1,1,4,1
Toyota Corona,21.5,4,120.1,97,3.7,2.465,20.01,1,0,3,1
Dodge Challenger,15.5,8,318,150,2.76,3.52,16.87,0,0,3,2
AMC Javelin,15.2,8,304,150,3.15,3.435,17.3,0,0,3,2
Camaro Z28,13.3,8,350,245,3.73,3.84,15.41,0,0,3,4
Pontiac Firebird,19.2,8,400,175,3.08,3.845,17.05,0,0,3,2
Fiat X1-9,27.3,4,79,66,4.08,1.935,18.9,1,1,4,1
Porsche 914-2,26,4,120.3,91,4.43,2.14,16.7,0,1,5,2
Lotus Europa,30.4,4,95.1,113,3.77,1.513,16.9,1,1,5,2
Ford Pantera L,15.8,8,351,264,4.22,3.17,14.5,0,1,5,4
Ferrari Dino,19.7,6,145,175,3.62,2.77,15.5,0,1,5,6
Maserati Bora,15.8,301,335,3.54,3.57,14.6,0,1,5,8
Volvo 142E,21.4,4,121,109,4.11,2.78,18.6,1,1,4,2"""

#convert string to DataFrame
df = pd. read_csv ( io.StringIO (mtcars_data), sep=" , ")

#fit multiple linear regression model
results = smf. ols (' mpg~disp+carb+hp+cyl ',df). fit ()

#view regression model summary
results. summary ()

	coef std err t P>|t| [0.025 0.975]
Intercept34.0216 2.523 13.482 0.000 28.844 39.199
available -0.0269 0.011 -2.379 0.025 -0.050 -0.004
carb -0.9269 0.579 -1.601 0.121 -2.115 0.261
hp 0.0093 0.021 0.452 0.655 -0.033 0.052
cyl -1.0485 0.784 -1.338 0.192 -2.657 0.560

ต่อไป เราสามารถใช้ฟังก์ชัน statsmodels wald_test() เพื่อทดสอบว่าค่าสัมประสิทธิ์การถดถอยสำหรับตัวแปรทำนาย “hp” และ “cyl” มีค่าเท่ากับศูนย์ทั้งคู่หรือไม่

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ:

 #perform Wald Test to determine if 'hp' and 'cyl' coefficients are both zero
print ( results.wald_test (' (hp=0, cyl=0) '))

F test: F=array([[0.91125429]]), p=0.41403001184235005, df_denom=27, df_num=2

จากผลลัพธ์เราจะเห็นว่า ค่า p ของการทดสอบคือ 0.414 .

เนื่องจากค่า p นี้ไม่น้อยกว่า 0.05 เราจึงล้มเหลวในการปฏิเสธสมมติฐานว่างของการทดสอบ Wald

ซึ่งหมายความว่าเราสามารถสรุปได้ว่าค่าสัมประสิทธิ์การถดถอยสำหรับตัวแปรทำนาย “hp” และ “cyl” มีค่าเท่ากับศูนย์ทั้งคู่

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

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน Python:

วิธีดำเนินการถดถอยเชิงเส้นอย่างง่าย
วิธีดำเนินการถดถอยพหุนามใน Python
วิธีการคำนวณ VIF ใน Python

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *