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


9

ฉันต้องการรันการถดถอยเชิงเส้นบนชุดข้อมูลแบบหลายมิติ มีความแตกต่างระหว่างมิติต่าง ๆ ในแง่ของขนาดของระเบียบ ตัวอย่างเช่นโดยทั่วไปส่วนข้อมูล 1 มีช่วงค่า [0, 1] และส่วนข้อมูล 2 มีช่วงค่า [0, 1,000]

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

คำตอบ:


15

ตัวแปรการเลื่อน / การปรับจะไม่ส่งผลต่อความสัมพันธ์กับการตอบสนอง

เพื่อดูว่าทำไมนี้เป็นจริงสมมติว่าความสัมพันธ์ระหว่าง Y และ X คือ ρ. จากนั้นความสัมพันธ์ระหว่างY และ (X-a)/ คือ

โอโวลต์(Y,(X-a)/)SD((X-a)/)SD(Y)=โอโวลต์(Y,X/)SD(X/)SD(Y)=1โอโวลต์(Y,X)1SD(X)SD(Y)=ρ

ซึ่งตามมาจากคำจำกัดความของความสัมพันธ์และข้อเท็จจริงสามประการ:

  • โอโวลต์(Y,X+a)=โอโวลต์(Y,X)+โอโวลต์(Y,a)=0=โอโวลต์(Y,X)

  • โอโวลต์(Y,aX)=aโอโวลต์(Y,X)

  • SD(aX)=aSD(X)

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

แก้ไข: ข้างต้นสันนิษฐานว่าคุณกำลังพูดถึงการถดถอยปกติด้วยการสกัดกั้น อีกสองประเด็นที่เกี่ยวข้องกับสิ่งนี้ (ขอบคุณ @cardinal):

  • การสกัดกั้นสามารถเปลี่ยนแปลงได้เมื่อคุณเปลี่ยนตัวแปรของคุณและเมื่อ @cardinal ชี้ให้เห็นในความคิดเห็นสัมประสิทธิ์จะเปลี่ยนเมื่อคุณเปลี่ยนตัวแปรของคุณหากคุณไม่ตัดการสกัดจากโมเดลแม้ว่าฉันจะถือว่าคุณไม่ได้ทำเช่นนั้น เหตุผลที่ดี (ดูเช่นคำตอบนี้ )

  • หากคุณปรับค่าสัมประสิทธิ์เป็นประจำในบางวิธี (เช่น Lasso, การถดถอยของสันเขา) จากนั้นการจัดกึ่งกลาง / การปรับขนาดจะส่งผลต่อความพอดี ตัวอย่างเช่นหากคุณกำลังลงโทษΣβผม2 (บทลงโทษจากการถดถอยของสันเขา) จากนั้นคุณจะไม่สามารถกู้คืนความฟิตที่เท่ากันได้หลังจากสร้างมาตรฐานเว้นแต่ตัวแปรทั้งหมดจะอยู่ในระดับเดียวกันในตอนแรกนั่นคือไม่มีตัวคูณคงที่ที่จะเรียกคืนการลงโทษเดิมได้

เกี่ยวกับเวลา / สาเหตุที่นักวิจัยอาจต้องการเปลี่ยนการทำนาย

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

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


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

ความแปรปรวนของการลดอัตราการหายใจยังสามารถมองเห็นได้อย่างง่ายดายถ้าใครเห็นด้วยกับสัญกรณ์เมทริกซ์ กับX อันดับเต็ม (สำหรับความเรียบง่าย) Y^=X(X'X)-1X'Y. ตอนนี้ถ้าเราแทนที่X โดย XD ที่ไหน D เราได้เส้นทแยงมุม
Y~=(XD)((XD)'XD)-1(XD)'Y=XD(DX'XD)-1DX'Y=X(X'X)-1X'Y=Y^.
พระคาร์ดินัล

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

ความคิดเห็นของฉันไม่ได้มีไว้เพื่อแนะนำว่าควรจะปรับปรุงคำตอบ หลายครั้งที่ฉันชอบพูดออกไปในคำพูดเสริมภายใต้คำตอบที่ดีเพื่อให้ความคิดสองสามเกี่ยวกับความคิดที่เกี่ยวข้องที่อาจเป็นที่สนใจของผู้สัญจรไปมา (+1)
พระคาร์ดินัล

มีบางอย่างที่ขี้ขลาดกำลังเกิดขึ้นกับการนับคะแนน อีกครั้งฉัน upvoting นี้เมื่อความคิดเห็นก่อนหน้าของฉันและมันไม่ได้ "ใช้" อืมมม
พระคาร์ดินัล

2

"การทำให้เป็นมาตรฐาน" ที่เรียกว่าเป็นกิจวัตรทั่วไปสำหรับวิธีการถดถอยส่วนใหญ่ มีสองวิธี:

  1. แมปตัวแปรแต่ละตัวเป็น [-1, 1] ขอบเขต (mapminmax ใน MatLab
  2. ลบค่าเฉลี่ยออกจากตัวแปรแต่ละตัวแล้วหารค่าเบี่ยงเบนมาตรฐาน (mapstd ใน MatLab) นั่นคือ "ปกติ" หากค่าเฉลี่ยที่แท้จริงนั้นไม่เป็นที่รู้จัก
    X~ผมJ=XผมJ-μผมσผม
    หรือ
    X~ผมJ=XผมJ-Xผม¯sเสื้อd(Xผม)
    ที่ไหน E[Xผม]=μ, E[Xผม2-E[Xผม]2]=σ2, Xผม¯=1ยังไม่มีข้อความΣJ=1ยังไม่มีข้อความXผมJ และ sเสื้อd(Xผม)=1ยังไม่มีข้อความΣJ=1ยังไม่มีข้อความ(XผมJ2-Xผม¯2)

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

เช่นเดียวกันกับตัวแปรตอบสนองแม้ว่าจะไม่สำคัญสำหรับพวกเขา

ทำไมการทำให้เป็นมาตรฐานหรือการทำให้เป็นมาตรฐาน? ส่วนใหญ่เพื่อกำหนดผลกระทบสัมพัทธ์ของตัวแปรต่าง ๆ ใน model.that สามารถทำได้หากตัวแปรทั้งหมดอยู่ในหน่วยเดียวกัน

หวังว่านี่จะช่วยได้!


คุณหมายถึงอะไรเมื่อคุณพูดว่าการถดถอยเชิงเส้นมีความไวต่อตัวแปรมาก สำหรับx1,x2,yสองคำสั่งเหล่านี้: summary(lm(y~x1+x2))$r.sqและsummary(lm(y~scale(x1)+scale(x2)))$r.sq-R2ค่าเมื่อคุณไม่ได้มาตรฐานค่าสัมประสิทธิ์และเมื่อคุณ - ให้ค่าเดียวกันแสดงให้เห็นพอดี
มาโคร

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

ขอบคุณสำหรับคำชี้แจง แต่ซึ่งตัวแปร crusial และที่เกือบจะมีเสียงดังเรื่องขนาดมักจะตัดสินใจโดยพี- ค่าซึ่งจะไม่เปลี่ยนแปลงเมื่อคุณสร้างมาตรฐาน (ยกเว้นการสกัดกั้นแน่นอน) ฉันเห็นด้วยกับประเด็นของคุณว่ามันให้ตีความที่ดีกว่าของการประมาณค่าสัมประสิทธิ์ดิบ
แมโคร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.