मुझे लगता है कि आर में जोड़ी गई तुलना (पीसी) डेटा के लिए सबसे अच्छा पैकेज प्रीफमॉड पैकेज है , जो आसानी से आर में फिट (लॉग रैखिक) बीटीएल मॉडल के लिए डेटा तैयार करने की अनुमति देता है। यह पॉइसन GLM का उपयोग करता है (अधिक सटीक रूप से, पॉइसन में एक बहुराष्ट्रीय लॉगिट ) सूत्रीकरण देखें इस चर्चा जैसे )।
अच्छी बात यह है कि इसमें एक फ़ंक्शन 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) का मतलब वस्तु 2 के साथ तुलना 1):
(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
।