2013-07-19 4 views
2

많은 R 모델이 "가중치"매개 변수 (예 : 장바구니, 황토, gam ... 등)를 허용합니다. 대부분의 도움말 기능은 데이터를 "이전 가중치"로 설명하지만 실제로 의미하는 것은 무엇입니까?R에서 반복되는 경우의 가중치 사용 (특히 바이너리 응답의 경우 gam)

데이터가 반복되는 경우가 많으며 이진 응답이 있습니다. 입력 및 응답의 각 조합이 몇 번이나 발생 하는지를 인코딩하기 위해 "가중치"를 사용할 수 있기를 바랬지 만 작동하지 않는 것 같습니다. 나는 또한 응답의 성공 비율과 공변량의 각 조합에 대한 총 시도의 무게를 시도했지만, 이것 역시 (적어도 게임에서는) 작동하지 않는 것으로 보입니다. 위에 나열된 모든 모델 유형에 대해이 작업을 수행하려하지만, 처음에는 gam [mgcv 패키지]에 대해이 작업을 수행하는 방법은 무엇입니까?

답변

2

이항 응답의 가중치는 자연스러운 해석을 갖습니다. 즉, 각 관측치에 해당하는 시행 횟수입니다. 당신이 p이 성공 그중 n 시험이있는 경우 모두 gammgcv 패키지 gam

glm(p/n ~ x, family=binomial, weights=n) 

와 같은 작품이 맞습니다.

+0

감사합니다. 이것이 제대로 작동하지 않는다고 생각했을 때, 사기 (도서관 사기에서 나온)가 아니라 도박이 사용 된 것으로 나타났습니다. 이것은 사기와 관련이없는 것 같습니다. 나는 더 자세히 살펴볼 것이다. – DavidR

1

나는 또한 가중치가 반복 관측을위한 샘플 크기를 인코딩하는 편리한 방법이라고 생각했었다. 그러나 다음 예제는 이것이 단순한 선형 모델의 경우가 아니라는 것을 보여줍니다. 내가 먼저 사람들의 관찰/발명 신발 크기와 높이로 비상 테이블을 정의하고 무게로 주파수를 지정하는 leats 사각형의 회귀에 맞게 : 기울기에 대한 계수는 비 중요하고 잔류 오류가 있음을

SKdata = matrix(c(20,5,5,5,40,15,3,27,30,2,3,10),ncol=4) 
dimnames(SKdata) = list(shoesize=10:12,height=seq(160,190,by=10)) 

x = as.data.frame(as.table(SKdata), stringsAsFactors=FALSE) 
for (i in 1:ncol(x)) x[,i] = as.numeric(x[,i]) 
fit1 = lm(height ~ shoesize,data=x, weights=Freq) 
summary(fit1) 

공지 사항 "자유 (10 개)도"

나는 "원시"데이터로 비상 테이블을 변환 할 때이 편의 기능 expand.dft으로 관찰 당 하나 개의 행을 의미 변경을 기반으로합니다

expand.dft <- function(x, na.strings = "NA", as.is = FALSE, dec = ".") 
{ 
    DF <- sapply(1:nrow(x), function(i) x[rep(i, each = x$Freq[i]), ], 
       simplify = FALSE) 

    DF <- subset(do.call("rbind", DF), select = -Freq) 

    for (i in 1:ncol(DF)) 
    { 
    DF[[i]] <- type.convert(as.character(DF[[i]]), 
          na.strings = na.strings, 
          as.is = as.is, dec = dec)          
    } 
    DF 
} 

fit2 = lm(height ~ shoesize,data=expand.dft(x)) 
summary(fit2) 

우리 나는 얻는다. 치과 적 계수는 이번에는 "163 자유도"에 근거하여 매우 중요합니다.

+0

이것이 실제로 선형 모델 코드의 버그인지 궁금합니다. – DavidR

관련 문제