Tôi đã tạo ra một kịch bản như hình dưới đây để làm một cái gì đó tôi gọi là "trọng" hồi quy:hồi quy "trọng" trong R
library(plyr)
set.seed(100)
temp.df <- data.frame(uid=1:200,
bp=sample(x=c(100:200),size=200,replace=TRUE),
age=sample(x=c(30:65),size=200,replace=TRUE),
weight=sample(c(1:10),size=200,replace=TRUE),
stringsAsFactors=FALSE)
temp.df.expand <- ddply(temp.df,
c("uid"),
function(df) {
data.frame(bp=rep(df[,"bp"],df[,"weight"]),
age=rep(df[,"age"],df[,"weight"]),
stringsAsFactors=FALSE)})
temp.df.lm <- lm(bp~age,data=temp.df,weights=weight)
temp.df.expand.lm <- lm(bp~age,data=temp.df.expand)
Bạn có thể thấy rằng trong temp.df
, mỗi hàng có trọng lượng của nó, những gì Ý tôi là có tổng cộng 1178 mẫu nhưng đối với các hàng có cùng số bp
và age
, chúng được hợp nhất thành 1 hàng và được thể hiện trong cột weight
.
Tôi đã sử dụng thông số weight
trong chức năng lm
, sau đó tôi kiểm tra chéo kết quả bằng một khung dữ liệu khác là dataframe temp.df
được "mở rộng". Nhưng tôi tìm thấy các kết quả đầu ra lm
khác nhau cho 2 khung dữ liệu.
Ý của tôi hiểu sai các thông số weight
trong lm
chức năng, và bất cứ ai có thể cho tôi biết làm thế nào để tôi chạy hồi quy đúng (nghĩa là không phải mở rộng dataframe bằng tay) cho một tập dữ liệu được trình bày như temp.df
? Cảm ơn.
Hai hồi quy mang lại kết quả giống hệt nhau cho tôi. –
xem đầu ra 'tóm tắt', chúng khác nhau – lokheart
Các hệ số giống nhau, nhưng giá trị p thực sự khác nhau. Tôi đoán điều sau xảy ra. Khi bạn mở rộng dữ liệu, các quan sát được giả định là độc lập: vì có rất nhiều dữ liệu, bạn có thể rất tự tin về các ước tính và giá trị p thấp. Khi sử dụng trọng số, số lượng quan sát vẫn còn nhỏ và giá trị p cao. –