ทำให้รายงาน R ปรับ R squared และ F-test ในเอาต์พุตด้วยข้อผิดพลาดมาตรฐานที่แข็งแกร่ง
ฉันได้ประมาณแบบจำลองการถดถอยเชิงเส้นโดยใช้lm(x~y1 + y1 + ... + yn)
และเพื่อตอบโต้ความยืดหยุ่นต่างกันในปัจจุบันฉันมี R ประมาณข้อผิดพลาดมาตรฐานที่แข็งแกร่งด้วย
coeftest(model, vcov = vcovHC(model, type = "HC0"))
ฉันรู้ว่า (แข็งแกร่ง) สถิติ R กำลังสองและ F จากโมเดล "ปกติ" ยังคงใช้ได้ แต่ฉันจะให้ R รายงานในเอาต์พุตได้อย่างไร ฉันต้องการหลอมรวมเอาท์พุทการถดถอยหลายรายการจากข้อกำหนดที่แตกต่างกันเข้าด้วยกันstargazer
และมันจะวุ่นวายมากถ้าฉันต้องเข้าสู่โมเดลที่ไม่แข็งแรงพร้อมเพียงเพื่อให้ได้สถิติ ตามstargazer
หลักการแล้วฉันต้องการป้อนผลลัพธ์การถดถอยลงในที่มีสถิติเหล่านี้ดังนั้นจึงนำเข้าสู่กรอบงาน
ขอบคุณล่วงหน้าสำหรับคำตอบทั้งหมด
คำตอบ
นี่คือวิธีดำเนินการ คุณต้องใช้โมเดลออบเจ็กต์ที่ stargazer รองรับเป็นเทมเพลตจากนั้นคุณสามารถระบุรายการที่มีข้อผิดพลาดมาตรฐานที่จะใช้:
library(dplyr)
library(lmtest)
library(stargazer)
# Basic Model ---------------------------------------------------------------------------------
model1 <- lm(hp ~ factor(gear) + qsec + cyl + factor(am), data = mtcars)
summary(model1)
# Robust standard Errors ----------------------------------------------------------------------
model_robust <- coeftest(model1, vcov = vcovHC(model1, type = "HC0"))
# Get robust standard Errors (sqrt of diagonal element of variance-covariance matrix)
se = vcovHC(model1, type = "HC0") %>% diag() %>% sqrt()
stargazer(model1, model1,
se = list(NULL, se), type = 'text')
การใช้แนวทางนี้ทำให้คุณสามารถใช้ stargazer ได้แม้กระทั่งกับวัตถุโมเดลที่ไม่รองรับ คุณต้องการเพียงค่าสัมประสิทธิ์ข้อผิดพลาดมาตรฐานและค่า p เป็นเวกเตอร์ จากนั้นคุณสามารถ "ใส่แบบอัตโนมัติ" ได้แม้กระทั่งรุ่นที่ไม่รองรับ
หมายเหตุสุดท้าย คุณถูกต้องที่เมื่อมีความยืดหยุ่นสูงแล้ว Rsquared ยังสามารถใช้งานได้ อย่างไรก็ตามการทดสอบ F โดยรวมและการทดสอบ t ไม่สามารถใช้ได้อีกต่อไป
ฉันไม่มีวิธีแก้ปัญหาstargarzer
แต่ฉันมีทางเลือกที่เป็นไปได้สองทางสำหรับตารางการถดถอยที่มีข้อผิดพลาดมาตรฐานที่แข็งแกร่ง:
ตัวเลือกที่ 1
ใช้modelsummary
แพคเกจเพื่อสร้างตารางของคุณ
มันมีstatistic_override
อาร์กิวเมนต์ที่ช่วยให้คุณสามารถจัดหาฟังก์ชันที่คำนวณเมทริกซ์ความแปรปรวนร่วมของความแปรปรวนที่แข็งแกร่ง (เช่นsandwich::vcovHC
.
library(modelsummary)
library(sandwich)
mod1 <- lm(drat ~ mpg, mtcars)
mod2 <- lm(drat ~ mpg + vs, mtcars)
mod3 <- lm(drat ~ mpg + vs + hp, mtcars)
models <- list(mod1, mod2, mod3)
modelsummary(models, statistic_override = vcovHC)

หมายเหตุ 1: ภาพหน้าจอด้านบนมาจากตาราง HTML แต่modelsummary
แพ็คเกจยังสามารถบันทึกตาราง Word, LaTeX หรือ markdown ได้
หมายเหตุ 2: ฉันเป็นผู้เขียนแพ็คเกจนี้ดังนั้นโปรดถือว่านี่เป็นมุมมองที่อาจมีอคติ
ทางเลือกที่ 2
ใช้estimatr::lm_robust
ฟังก์ชันซึ่งรวมข้อผิดพลาดมาตรฐานที่มีประสิทธิภาพโดยอัตโนมัติ ผมเชื่อว่าestimatr
ได้รับการสนับสนุนโดยstargazer
แต่ฉันรู้modelsummary
ว่ามันได้รับการสนับสนุนโดย
library(estimatr)
mod1 <- lm_robust(drat ~ mpg, mtcars)
mod2 <- lm_robust(drat ~ mpg + vs, mtcars)
mod3 <- lm_robust(drat ~ mpg + vs + hp, mtcars)
models <- list(mod1, mod2, mod3)
modelsummary(models)