Làm cách nào để tham chiếu các lỗi tiêu chuẩn của hệ số hồi quy? [đóng cửa]


8
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  10.2758     0.5185  19.817  < 2e-16 ***
rprice2      -1.8581     0.5139  -3.616 0.000696 ***

Tôi muốn sử dụng Std. Lỗi của rprice2 để thực hiện các tính toán khác. Tôi biết để tham chiếu bất kỳ đối tượng nào trong mô hình, tôi sử dụng cú pháp mô hình $ object, nhưng cú pháp để tham chiếu các lỗi std là gì?


Đây là loại đối tượng nào? Nếu đối tượng mô hình của bạn (gọi nó là mod) là lm hoặc glm, bạn có thể trích xuất các lỗi tiêu chuẩn với tóm tắt (mod) $ coef [, 2]
Macro

đó là một mô hình lm, tôi đang cố gắng tính toán thống kê t với đoạn mã sau, sử dụng nhận xét của bạn: tstat <-abs (mô hình coef [2,2]) ... có vẻ hoạt động , nhưng tôi không chắc làm thế nào để diễn giải đầu ra của tstat, đó là: (Đánh chặn) rprice2 19.99568 3.61563coef/summary(model)
Aaron

1
Lưu ý rằng thuộc tính hệ số (mảng 2x4) của summary()đầu ra có thể được trích xuất bằng coef()lệnh. Nếu bạn chỉ muốn sai số chuẩn ước tính cho hệ số rprice2, hãy sử dụng, vd coef(summary(mod))[2,2]. Nếu bạn muốn thống kê t tương ứng, sử dụng coef(summary(mod))[2,3].
khách

Câu trả lời:


9

Nói chung, bạn muốn vcovhàm cung cấp ma trận hiệp phương sai tham số đầy đủ. Để có được các lỗi tiêu chuẩn tiệm cận thông thường được báo cáo bởi summarybạn có thể sử dụng

se <- sqrt(diag(vcov(model)))

btw bạn sẽ muốn các đường chéo của vcov(model)các hiệu ứng cận biên cho các điều khoản tương tác: xem Brambor et al. (2006) .

Cũng lưu ý các gói như bánh sandwich dành cho việc xây dựng các loại lỗi tiêu chuẩn khác nhau, ví dụ như các lỗi 'mạnh mẽ' đối với các loại vi phạm khác nhau.


4

Để trích xuất mà không thực hiện bất kỳ phép tính nào khác, trong khi sử dụng cú pháp mô hình $:

summary(model)$coefficients["rprice2","Std. Error"]

3

Để có được một ma trận với kết quả của hồi quy tuyến tính:

> coef(summary(f))

Để trích xuất một giá trị cụ thể từ ma trận:

> coef(summary(f))["rprice2","Std. Error"]
[1] 0.5139 

1

Theo tôi hiểu, bạn muốn làm điều này trong R:

f <- lm(speed~dist, data=cars)
coef(f)
confint(f)
sd = sqrt(diag(vcov(f)))
cbind("2.5 %"=-sd*1.96+coef(f),"97.5 %"=sd*1.96+coef(f))

Cung cấp:

> coef(f)
(Intercept)        dist 
  8.2839056   0.1655676 
> confint(f)
                2.5 %     97.5 %
(Intercept) 6.5258378 10.0419735
dist        0.1303926  0.2007426
> cbind("2.5 %"=-sd*1.96+coef(f),"97.5 %"=sd*1.96+coef(f))
                2.5 %    97.5 %
(Intercept) 6.5701120 9.9976992
dist        0.1312784 0.1998568

Rất tiếc, tôi đã không phát hiện ra vcovứng dụng của riêng bạn nằm giữa mã trước khi tôi viết câu trả lời của mình.
liên hợp chiến

@ConjugateP Warrior: Đó là Ok. Rõ ràng câu trả lời của tôi là một chút không rõ ràng và ý kiến ​​của bạn về chủ đề này đã thêm cơ thể vào câu trả lời :-)
Max Gordon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.