R의 Paired Comparison (PC) 데이터에 가장 적합한 패키지는 prefmod 패키지 라고 생각합니다.이 패키지는 R에서 (log linear) BTL 모델에 맞게 데이터를 편리하게 준비 할 수있게합니다. 제형은 예를 들어이 논의를 참조 ).
좋은 점은 prefmod::llbt.design
데이터를 필요한 형식과 필요한 디자인 매트릭스로 자동 변환 하는 기능이 있다는 것입니다 .
예를 들어, 6 개의 객체가 모두 쌍으로 비교되어 있다고 가정합니다. 그때
R> library(prefmod)
R> des<-llbt.design(data, nitems=6)
다음과 같은 데이터 매트릭스에서 디자인 매트릭스를 빌드합니다.
P1 0 0 NA 2 2 2 0 0 1 0 0 0 1 0 1 1 2
P2 0 0 NA 0 2 2 0 2 2 2 0 2 2 0 2 1 1
P3 1 0 NA 0 0 2 0 0 1 0 0 0 1 0 1 1 2
P4 0 0 NA 0 2 0 0 0 0 0 0 0 0 0 2 1 1
P5 0 0 NA 2 2 2 2 2 2 0 0 0 0 0 2 2 2
P6 2 2 NA 0 0 0 2 2 2 2 0 0 0 0 2 1 2
사람을 나타내는 행, 비교를 나타내는 열 및 0은 결정되지 않음을 의미하고 1은 오브젝트 1이 선호됨을 의미하고 2는 오브젝트 2가 선호됨을 의미합니다. 결 측값이 허용됩니다. 편집 : 이것은 아마도 위의 데이터에서 단순히 추론 할 수있는 것이 아니므로 여기에 철자를 쓰십시오. 비교는 다음과 같은 방식으로 정렬되어야합니다 ((12)는 비교 대상 1과 대상 2를 의미합니다).
(12) (13) (23) (14) (24) (34) (15) (25) etc.
gnm::gnm
통계 모델링을 수행 할 수 있으므로 피팅을 사용하면 가장 편리하게 기능을 수행 할 수 있습니다. (편집 : prefmod::llbt.fit
카운트와 디자인 매트릭스 만 취하므로 조금 더 간단한 함수를 사용할 수도 있습니다 .)
R> res<-gnm(y~o1+o2+o3+o4+o5+o6, eliminate=mu, family=poisson, data=des)
R> summary(res)
Call:
gnm(formula = y ~ o1 + o2 + o3 + o4 + o5 + o6, eliminate = mu,
family = poisson, data = des)
Deviance Residuals:
Min 1Q Median 3Q Max
-7.669 -4.484 -2.234 4.625 10.353
Coefficients of interest:
Estimate Std. Error z value Pr(>|z|)
o1 1.05368 0.04665 22.586 < 2e-16 ***
o2 0.52833 0.04360 12.118 < 2e-16 ***
o3 0.13888 0.04297 3.232 0.00123 **
o4 0.24185 0.04238 5.707 1.15e-08 ***
o5 0.10699 0.04245 2.521 0.01171 *
o6 0.00000 NA NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for poisson family taken to be 1)
Std. Error is NA where coefficient has been constrained or is unidentified
Residual deviance: 2212.7 on 70 degrees of freedom
AIC: 2735.3
제거 용어는 요약에서 성가신 매개 변수를 생략합니다. 그런 다음 가치있는 매개 변수 (델타)를 얻을 수 있습니다.
## calculating and plotting worth parameters
R> wmat<-llbt.worth(res)
worth
o1 0.50518407
o2 0.17666128
o3 0.08107183
o4 0.09961109
o5 0.07606193
o6 0.06140979
그리고 당신은 그들을 플롯 할 수 있습니다
R> plotworth(wmat)
객체가 o1+o2+...+on
많고 수식 객체를 빠르게 작성 하려면 다음을 사용할 수 있습니다.
R> n<-30
R> objnam<-paste("o",1:n,sep="")
R> fmla<-as.formula(paste("y~",paste(objnam, collapse= "+")))
R> fmla
y ~ o1 + o2 + o3 + o4 + o5 + o6 + o7 + o8 + o9 + o10 + o11 +
o12 + o13 + o14 + o15 + o16 + o17 + o18 + o19 + o20 + o21 +
o22 + o23 + o24 + o25 + o26 + o27 + o28 + o29 + o30
에 대한 수식을 생성합니다 gnm
(필요하지 않음 llbt.fit
).
있습니다 JSS의 문서 도 참조 https://r-forge.r-project.org/projects/prefmod/ 과를 통해 문서 ?llbt.design
.