กราฟในการออกแบบการถดถอยแบบไม่ต่อเนื่องใน“ Stata” หรือ“ R”


10

Lee และ Lemieux (หน้า 31, 2009) แนะนำให้นักวิจัยนำเสนอกราฟในขณะที่ทำการวิเคราะห์การออกแบบการถดถอยแบบไม่ต่อเนื่อง (RDD) พวกเขาแนะนำขั้นตอนต่อไปนี้:

"... สำหรับแบนด์วิดท์และสำหรับจำนวนของถังขยะและ K_1ทางด้านซ้ายและขวาของค่า cutoff ตามลำดับแนวคิดคือการสร้างถังขยะ ( b_k , b_ {k + 1} ], สำหรับk = 1,..., K = K_0 + K_1โดยที่b_k = c− (K_0 − k + 1) \ cdot h. "K 0 K 1 k k + 1 k = 1 , . . , K = K 0 K 1 k = - ( K 0 - k + 1 ) ชั่วโมงhK0K1bkbk+1k=1,...,K=K0K1bk=c(K0k+1)h.

c=cutoff point or threshold value of assignment variable
h=bandwidth or window width.

... จากนั้นเปรียบเทียบค่าเฉลี่ยผลลัพธ์กับทางซ้ายและขวาของจุดตัดออก ... "

.. ในทุกกรณีเรายังแสดงค่า ted tted จากแบบจำลองการถดถอยแบบควอร์ติคโดยประมาณแยกกันในแต่ละด้านของจุดตัดออก ... (หน้า 34 ของกระดาษเดียวกัน

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

กราฟตัวอย่างที่ไม่มีตัวแปรความมั่นใจ [Lee and Lemieux, 2009] ป้อนคำอธิบายรูปภาพที่นี่ ขอบคุณล่วงหน้า


ในการตอบกลับการตั้งค่าสถานะของคุณวิธีที่ดีในการรื้อฟื้นคำถามของคุณคือการแก้ไขและเสนอความโปรดปราน: สิ่งนี้จะกระแทกคำถามของคุณและทำให้ผู้คนสนใจมากขึ้น หากคุณรู้สึกว่าคำถามนี้อาจให้บริการที่ดีกว่าใน Stack Overflow โปรดแจ้งให้เราทราบและเราสามารถโอนย้ายให้คุณได้
chl

ฉันต้องการให้สิ่งนี้ถูกย้ายไปยัง Stack Overflow
วัด

1
น่าเสียดายที่คำถามนี้เก่าเกินไปที่จะโอนย้ายไปยัง Stack Overflow ฉันเชื่อว่าเป็นของ Cross Validated แต่ถ้าคุณต้องการถาม Stack Overflow (เน้นที่ด้านการเขียนโปรแกรมและให้ตัวอย่างที่ทำซ้ำได้น้อยที่สุด) แจ้งให้เราทราบและฉันจะปิดที่นี่
chl

คุณควรใช้cmogram มันทำทุกสิ่งที่คุณต้องการ
Yan Song

คำตอบ:


10

นี่แตกต่างจากการทำชื่อพหุนามท้องถิ่น 2 ตัวในระดับ 2 หนึ่งอันต่ำกว่าขีด จำกัด และอีกอันสำหรับข้างบนที่ราบรื่นที่คะแนน ? นี่คือตัวอย่างของ Stata:Ki

use votex // the election-spending data that comes with rd

tw 
(scatter lne d, mcolor(gs10) msize(tiny)) 
(lpolyci lne d if d<0, bw(0.05) deg(2) n(100) fcolor(none)) 
(lpolyci lne d if d>=0, bw(0.05) deg(2) n(100) fcolor(none)), xline(0)  legend(off)

หรือคุณก็สามารถประหยัดค่าเรียบ lpoly twowayและข้อผิดพลาดมาตรฐานเป็นตัวแปรแทนการใช้ ด้านล่างคือ bin,คือค่าเฉลี่ยที่ราบเรียบคือข้อผิดพลาดมาตรฐานและและเป็นขีด จำกัด บนและล่างของช่วงความเชื่อมั่น 95% สำหรับผลลัพธ์ที่ราบรื่นs s อียูลิตรลิตรลิตรxsseulll

lpoly lne d if d<0, bw(0.05) deg(2) n(100) gen(x0 s0) ci se(se0)
lpoly lne d if d>=0, bw(0.05) deg(2) n(100) gen(x1 s1) ci se(se1)

/* Get the 95% CIs */
forvalues v=0/1 {
    gen ul`v' = s`v' + 1.95*se`v' 
    gen ll`v' = s`v' - 1.95*se`v' 
};

tw 
(line ul0 ll0 s0 x0, lcolor(blue blue blue) lpattern(dash dash solid)) 
(line ul1 ll1 s1 x1, lcolor(red red red) lpattern(dash dash solid)), legend(off)  

อย่างที่คุณเห็นบรรทัดในพล็อตแรกนั้นเหมือนกับในที่สอง


@Dimitry: +1 สำหรับการแก้ปัญหา อย่างไรก็ตามฉันต้องการมีค่าเฉลี่ยสำหรับแต่ละ bin (โปรดเรียกใช้ตัวอย่าง stata ด้านบน) แทนที่จะใช้พล็อตกระจายที่แสดงค่าดิบ CI ยอดเยี่ยม
ตัวชี้วัด

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

ในการอ้างอิง Lee และ Lemieux (หน้า 31, 2009): "วิธีมาตรฐานในการสร้างกราฟข้อมูลคือการแบ่งตัวแปรการมอบหมาย (d ที่นี่) เป็นจำนวนของถังขยะทำให้แน่ใจว่ามีถังขยะสองแห่งแยกกันในแต่ละด้านของทางลัด จุด (เพื่อหลีกเลี่ยงการสังเกตและไม่ได้รับการรักษาผสมกันในถังเดียวกัน) จากนั้นค่าเฉลี่ยของตัวแปรผลลัพธ์สามารถคำนวณได้สำหรับแต่ละถังและกราฟกับจุดกึ่งกลางของถังขยะ " ดังนั้นหากมี 50 ถังขยะเราจะมีเพียง 25 จุดข้อมูลทางด้านซ้ายและขวาและไม่ใช่ข้อมูลดิบทั้งหมด (เช่นกราฟ 6 (b) ของข้อมูลอ้างอิง: อัปเดตในคำถาม)
ตัวชี้วัด

1
ตอนนี้มันชัดเจน! ฉันเห็นด้วยกับเคอร์เนล แต่คุณแน่ใจหรือว่ามันไม่ใช่ระดับ 0 ซึ่งจะสอดคล้องกับการทำให้เรียบโดยเฉลี่ยถ่วงน้ำหนักเท่ากัน
Dimitriy V. Masterov

1
ฉันเชื่อว่าสอดคล้องกับ lpoly กับเคอร์เนลปกติและองศา 0 พหุนาม
Dimitriy V. Masterov

7

นี่คืออัลกอริทึมกระป๋อง Calonico, Cattaneo และ Titiunikเพิ่งเสนอขั้นตอนสำหรับการเลือกแบนด์วิดท์ที่มีประสิทธิภาพ พวกเขานำงานทางทฤษฎีมาใช้กับทั้ง Stata และ Rและมันก็มาพร้อมกับคำสั่ง plot นี่คือตัวอย่างใน R:

# install.packages("rdrobust")
library(rdrobust)
set.seed(26950) # from random.org
x<-runif(1000,-1,1)
y<-5+3*x+2*(x>=0)+rnorm(1000)
rdplot(y,x)

ที่จะให้กราฟนี้กับคุณ: ป้อนคำอธิบายรูปภาพที่นี่


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