Box Cox Transforms สำหรับการถดถอย


9

ฉันกำลังพยายามปรับตัวแบบเชิงเส้นในข้อมูลบางส่วนด้วยตัวทำนายเพียงตัวเดียว (พูด (x, y)) ข้อมูลเป็นเช่นนั้นสำหรับค่าเล็ก ๆ ของ x ค่า y ให้พอดีกับเส้นตรงอย่างไรก็ตามเมื่อค่า x เพิ่มขึ้นค่า y จะกลายเป็นความผันผวนมากขึ้น นี่คือตัวอย่างของข้อมูลดังกล่าว (รหัส R)

y = c(3.2,3.4,3.5,3.8,4.2,5.5,4.5,6.8,7.4,5.9)
x = seq(1,10,1)

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

fit = lm(y ~ x)

ตามที่ฉันเข้าใจแล้ววัตถุประสงค์ของการเปลี่ยนแปลงเช่น Box Cox ไม่ได้ดีกว่า แต่เพื่อให้สอดคล้องกับสมมติฐานของโมเดล นั่นอาจจะเป็นแบบที่ดีกว่าแบบที่แย่กว่าหรือเปลี่ยนแปลงไม่มากนัก แต่มันจะเป็นแบบที่ไม่ละเมิดสมมติฐาน
Peter Flom

การแปลงแบบไม่เชิงเส้นจะทำให้ความสัมพันธ์เชิงเส้นไม่เชิงเส้น (แม้ว่าบางครั้งคุณสามารถแปลง x ได้เป็นอย่างดีและแก้ไขปัญหานั้น) อย่างไรก็ตามการแปลงอาจทำให้เส้นโค้งโค้งตรงขึ้นและในเวลาเดียวกันก็ช่วยลดความแตกต่างของ heteroskedasticity (แม้ว่ามันจะเป็นไปไม่ได้ที่จะทำทั้งสองอย่างด้วยการแปลงเดียวกัน) สำหรับข้อมูลนั้นการแปลงบันทึกช่วยค่อนข้าง
Glen_b -Reinstate Monica

4
ใช้ทั้งสองมากและกลาง (ห้า) ค่าของวิธีการแสดงที่stats.stackexchange.com/questions/35711/...บ่งชี้ลอการิทึม (การเปลี่ยนแปลง Box-Cox กับพารามิเตอร์ 0) จะเป็นที่เหมาะสมสำหรับเป็นเส้นตรงความสัมพันธ์ การใช้ค่าแรกค่าที่หกและค่าสุดท้ายระบุว่าค่าตอบแทนซึ่งกันและกัน (พารามิเตอร์ -1) จะดี สิ่งนี้ชี้ให้เห็นว่าพารามิเตอร์เกือบทุกตัวระหว่าง 0 ถึง -1 อาจทำงานได้ ช่วงนี้ไม่น่าแปลกใจเลยว่ามีข้อมูลน้อยแค่ไหน ไม่มีการแสดงออกซ้ำ ๆ โมโนโทนิกจะทำให้การเปลี่ยนแปลงของข้อมูลเหล่านี้คงที่ y
whuber

คำตอบ:


6

แพ็คเกจ MASS ที่มาพร้อมกับ R ติดตั้งไว้แล้วมีboxcox()ฟังก์ชั่นที่คุณสามารถใช้งานได้: หลังจากอ่านข้อมูลแล้วให้ทำ:

library(MASS)
boxcox(y ~ x)

จากนั้นดูที่กราฟที่เกิดขึ้นซึ่งแสดงช่วงความมั่นใจ 95% สำหรับพารามิเตอร์การแปลง boxcox แต่คุณมีข้อมูลไม่เพียงพอ (n = 10) ในการทำเช่นนี้ช่วงความมั่นใจที่เกิดขึ้นจะอยู่ระหว่าง -2 ถึง 2! โดยมีการประเมินความน่าจะเป็นสูงสุดประมาณ 0 (การแปลงบันทึกตามที่กล่าวไว้ก่อนหน้านี้) หากข้อมูลจริงของคุณมีข้อสังเกตเพิ่มเติมคุณควรลองทำสิ่งนี้

อย่างที่คนอื่นพูดการเปลี่ยนแปลงนี้พยายามรักษาความแปรปรวนให้คงที่ นี่ไม่ชัดเจนจากทฤษฎีจริง ๆ ว่าทำอะไรคือพยายามเพิ่มฟังก์ชันโอกาสในการแจกแจงแบบปกติให้มากที่สุดซึ่งจะถือว่าความแปรปรวนคงที่ ใคร ๆ ก็คิดว่าการเพิ่มความน่าจะเป็นพื้นฐานตามปกตินั้นจะพยายามทำให้การกระจายตัวของสิ่งที่เหลืออยู่เป็นปกติ แต่ในทางปฏิบัติการสนับสนุนหลักในการเพิ่มความน่าจะเป็นมาจากการรักษาความแปรปรวนให้คงที่ นี่อาจไม่น่าแปลกใจนักเนื่องจากความน่าจะเป็นที่เราเพิ่มขึ้นนั้นขึ้นอยู่กับความแปรปรวนแบบคงที่ของครอบครัว!

ฉันเคยเขียนเดโมสไลเดอร์ใน XLispStat ซึ่งแสดงให้เห็นอย่างชัดเจน!


3

เมื่อคุณมีความสัมพันธ์เชิงเส้น แต่ความแปรปรวนที่ไม่เท่ากันนั้นโดยทั่วไปคุณต้องแปลงทั้ง x และ y เพื่อให้ได้ความสัมพันธ์เชิงเส้นที่มีความแปรปรวนเท่ากัน

โพรซีเดอร์ AVAS สามารถใช้เพื่อแนะนำการแปลงที่เป็นไปได้


ลองดูที่ข้อมูล:แนวโน้ม monotonically สำหรับจากที่จะแล้วระบบสั่นมากสำหรับระหว่างและ10นี่ก็หมายความว่าจะไม่มีการแสดงออกอย่างต่อเนื่องซ้ำของจะประสบความสำเร็จในการรักษาความแปรปรวน ข้อเสนอแนะของคุณสำหรับสี่เหลี่ยมน้อยที่สุดที่มีน้ำหนักดูมีแนวโน้มในข้อ จำกัด นี้ แต่จะเลือกน้ำหนักได้อย่างไร? yx15x510y
whuber

เห็นด้วยกับ @whuber
บรอกโคลี

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

เนื่องจากความแปรปรวนเพิ่มขึ้นด้วย x glmเฟรมเวิร์กที่มีฟังก์ชันลิงก์ปัวซงจะตัดออกหรือไม่
Roman Luštrik

3
@ RomanLuštrikการถดถอยของปัวซองคือสิ่งที่ต้องพิจารณา แต่ตัวเลือกควรทำตามวิทยาศาสตร์ไม่ใช่ข้อมูล ข้อมูลข้างต้นมีค่าไม่ใช่จำนวนเต็มสำหรับดังนั้นจะต้องมีชนิดของน้ำหนักหรือหน้าต่างสังเกตสำหรับผู้ที่ไม่ใช่จำนวนเต็มเพื่อให้ความรู้สึกในการถดถอยแบบปัวซอง ควรพิจารณาเฉพาะเมื่อตัวแปรตอบสนองแทนจำนวนและวิทยาศาสตร์ที่อยู่เบื้องหลังข้อมูลสอดคล้องกับการแจกแจงปัวซอง y
เกร็กสโนว์

1

ใน R คุณสามารถลองสิ่งนี้ได้:

library(MASS)
boxcox(y~x)
plot(1/y^2~x) # since the profile likelihood has a maximum near 2

ป้อนคำอธิบายรูปภาพที่นี่

แต่มันขึ้นอยู่กับสิ่งที่คุณหมายถึงโดย 'พอดีกับข้อมูล'


-2

ดีถ้าข้อมูลทั้งหมดของคุณสำหรับ x ไม่เป็นลบคุณสามารถใช้การแปลงกล่อง cox ... เพื่อประเมินค่าอุดมคติของแลมบ์ดาพารามิเตอร์ของการแปลงที่คุณสามารถใช้ matlab ... http://www.mathworks.in/ ช่วยเหลือ / การเงิน / boxcox.html


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