เป็นถ่วงน้ำหนัก


19

ฉันประเมินโมเดลเชิงเส้นที่ทนทานRด้วยน้ำหนัก MM โดยใช้rlm()แพคเกจ MASS `R`` ไม่ได้ให้ค่าสำหรับแบบจำลอง แต่ฉันต้องการให้มีค่าหากเป็นปริมาณที่มีความหมาย ฉันยังสนใจที่จะทราบว่ามีความหมายใด ๆ ในการมีค่าR 2ที่ชั่งน้ำหนักความแปรปรวนทั้งหมดและส่วนที่เหลือในลักษณะเดียวกับที่การสังเกตนั้นมีน้ำหนักในการถดถอยที่แข็งแกร่งหรือไม่ ความคิดทั่วไปของฉันคือถ้าสำหรับวัตถุประสงค์ของการถดถอยเรามีน้ำหนักที่ให้อิทธิพลน้อยกว่าเพราะพวกมันมีค่าผิดปกติในทางใดทางหนึ่งบางทีอาจจะเพื่อการคำนวณr 2เราควรให้ค่าเหล่านั้นด้วย ประมาณการเดียวกันมีอิทธิพลน้อยลงหรือไม่R2R2r2

ฉันเขียนฟังก์ชันง่าย ๆ สองอย่างสำหรับและR 2ถ่วงน้ำหนักพวกมันอยู่ด้านล่าง ฉันยังรวมผลลัพธ์ของการเรียกใช้ฟังก์ชันเหล่านี้สำหรับแบบจำลองของฉันซึ่งเรียกว่า HI9 แก้ไข: ฉันพบหน้าเว็บของ Adelle Coster ของ UNSW ที่ให้สูตรสำหรับการรวมเวกเตอร์ตุ้มน้ำหนักในการคำนวณการคำนวณของทั้งสองและอย่างที่ฉันทำและขอให้เธออ้างอิงอย่างเป็นทางการเพิ่มเติม: http: //web.maths unsw.edu.au/~adelle/Garvan/Assays/GoodnessOfFit.html (ยังคงต้องการความช่วยเหลือจาก Cross Validated เกี่ยวกับวิธีการตีความน้ำหนักr 2นี้)R2R2R2SSeSStr2

#I used this function to calculate a basic r-squared from the robust linear model
r2 <- function(x){  
+ SSe <- sum((x$resid)^2);  
+ observed <- x$resid+x$fitted;  
+ SSt <- sum((observed-mean(observed))^2);  
+ value <- 1-SSe/SSt;  
+ return(value);  
+ }  
r2(HI9)  
[1] 0.2061147

#I used this function to calculate a weighted r-squared from the robust linear model
> r2ww <- function(x){
+ SSe <- sum((x$w*x$resid)^2); #the residual sum of squares is weighted
+ observed <- x$resid+x$fitted;
+ SSt <- sum((x$w*(observed-mean(observed)))^2); #the total sum of squares is weighted      
+ value <- 1-SSe/SSt;
+ return(value);
+ }
 > r2ww(HI9)
[1] 0.7716264

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


ใส่ตุ้มน้ำหนักใน lm () แล้วนำ r-squared จากที่นั่น (ทำไมต้องคิดค้นล้อใหม่อีกครั้ง?)
603

1
ขอบคุณสำหรับเคล็ดลับเกี่ยวกับวิธีการทำสิ่งที่ฉันทำมีประสิทธิภาพมากขึ้น ใครสามารถแสดงความคิดเห็นเกี่ยวกับความหมายของ r-squared ถ่วงน้ำหนักที่ฉันอธิบาย / เสนอ?
CraigMilligan

@ user603: คุณจะวางน้ำหนักไว้ใน lm () อย่างไร?
histelheim

สำหรับคำชมเชยสี่เหลี่ยมจัตุรัสที่มีน้ำหนักน้อยที่สุดที่ติดตั้งใน R คือการลดผลรวม (w * e ^ 2) โดยที่ e คือส่วนที่เหลือ ดังนั้นสำหรับคุณคำนวณรหัสน้ำหนักทั้งหมดWควรจะนำราก
Yuanhao Lai

ฉันต้องการเน้นว่าเราไม่ได้ใช้ค่าเฉลี่ยถ่วงน้ำหนักอย่างน้อยฉันเชื่อว่าเพราะโปรแกรมที่ฉันเขียนให้ r-squared ใกล้กับ 1 ด้วย: classic r-squared ถ่วงน้ำหนัก r-squared แต่ไม่ได้ถ่วง r- ยกกำลังสองที่หมายถึงจะมีน้ำหนักมากเกินไปผมพบ -6 มันเป็นเคาน์เตอร์แม้สำหรับผม แต่ผมเชื่อว่าประสบการณ์แม้ว่า
ปิแอร์

คำตอบ:


22

คำตอบต่อไปนี้มีพื้นฐานมาจาก: (1) การตีความของฉันเกี่ยวกับ Willett และนักร้อง (1988) หมายเหตุข้อควรระวังอีกประการเกี่ยวกับ R-squared: ใช้ในการวิเคราะห์การถดถอยถดถอยกำลังสองน้อยที่สุด นักสถิติชาวอเมริกัน 42 (3) pp236-238 และ (2) หลักฐานที่ว่าการถดถอยเชิงเส้นที่แข็งแกร่งนั้นมีน้ำหนักน้อยที่สุดกำลังสองเท่ากับการถดถอยด้วยน้ำหนักที่ประเมินโดยกระบวนการวนซ้ำ

สูตรที่ฉันให้ในคำถามสำหรับ r2w ต้องการการแก้ไขเล็กน้อยเพื่อให้สอดคล้องกับสมการ 4 ใน Willet and Singer (1988) สำหรับ r2wls: การคำนวณ SSt ควรใช้ค่าเฉลี่ยถ่วงน้ำหนักด้วย:

the correction is SSt <- sum((x$w*observed-mean(x$w*observed))^2)].

ความหมายของสิ่งนี้ (แก้ไข) ถ่วงน้ำหนัก r-squared คืออะไร? วิลเล็ตและนักร้องตีความว่ามันเป็น:. "ค่าสัมประสิทธิ์ของความมุ่งมั่นในการเปลี่ยน [ถ่วงน้ำหนัก] ชุดข้อมูลที่มันเป็นตัวชี้วัดจากสัดส่วนของการเปลี่ยนแปลงในการถ่วงน้ำหนัก Y ที่สามารถคิดโดยการถ่วงน้ำหนัก X และเป็นปริมาณที่จะออกเป็น R2 โดยแพ็คเกจคอมพิวเตอร์สถิติที่สำคัญเมื่อทำการถดถอย WLS "

มันมีความหมายว่าเป็นการวัดความดีที่พอดีหรือไม่? ขึ้นอยู่กับวิธีการนำเสนอและตีความ วิลเล็ตต์และนักร้องเตือนว่าโดยทั่วไปแล้วจะค่อนข้างสูงกว่า r-squared ที่ได้จากการถดถอยกำลังสองน้อยที่สุดธรรมดาและค่าสูงกระตุ้นการแสดงผลที่โดดเด่น ... -squared (ตามสัดส่วนของการไม่ถ่วงน้ำหนักรูปแบบที่อธิบายโดยแบบจำลอง) Willett และ Singer เสนอว่าทางเลือกที่ 'หลอกลวง' น้อยกว่าคือ pseudoR2wls (สมการที่ 7) ซึ่งเทียบเท่ากับฟังก์ชัน r2 ของฉันในคำถามดั้งเดิม โดยทั่วไปแล้ววิลเล็ตต์และซิงเกอร์ก็เตือนว่าไม่ควรพึ่งพา r2 ใด ๆ (แม้แต่ pseudor2wls ของพวกเขา) เพื่อวัดความดีที่เหมาะสม แม้จะมีข้อควรระวังเหล่านี้ แต่หลักฐานทั้งหมดของการถดถอยที่แข็งแกร่งคือบางกรณีมีการตัดสินว่า 'ไม่ดี' และไม่นับรวมในแบบจำลองที่เหมาะสมและอาจเป็นการดีที่จะสะท้อนสิ่งนี้ในส่วนของกระบวนการประเมินแบบจำลอง น้ำหนัก r-squared ที่อธิบายไว้สามารถเป็นหนึ่งในการวัดความดีที่เหมาะสม - ตราบใดที่การตีความที่ถูกต้องถูกกำหนดไว้อย่างชัดเจนในการนำเสนอและไม่ได้อาศัยการประเมินความดีเพียงอย่างเดียว


1
(+1) ขอบคุณที่สละเวลาตอบคำถาม
603

1

@CraigMilligan ไม่ควร:

  • น้ำหนักอยู่นอกวงเล็บกำลังสอง
  • ค่าเฉลี่ยถ่วงน้ำหนักจะคำนวณตามที่เรายังสามารถใช้sum(x$w*observed)/sum(x$w)weighted.mean(observed,x$w)

บางสิ่งเช่นนี้

r2ww <- function(x){
  SSe <- sum(x$w*(x$resid)^2)
  observed <- x$resid+x$fitted
  SSt <- sum(x$w*(observed-weighted.mean(observed,x$w))^2)
  value <- 1-SSe/SSt;
  return(value);
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.