गामा वितरण के साथ जीएलएम के लिए आर का उपयोग करना


14

मुझे वर्तमान में गामा वितरण का उपयोग करके GLM फिटिंग के लिए R के लिए सिंटैक्स को समझने में समस्या है।

मेरे पास डेटा का एक सेट है, जहां प्रत्येक पंक्ति में 3 सह- चर ( ), एक प्रतिक्रिया चर ( वाई ), और एक आकार पैरामीटर ( के ) हैं। मैं गामा वितरण के पैमाने को 3 covariates के रैखिक कार्य के रूप में मॉडल करना चाहता हूं, लेकिन मुझे यह समझ में नहीं आता है कि डेटा की प्रत्येक पंक्ति के लिए K को वितरण का आकार कैसे सेट करें ।X1,X2,X3YKK

एक स्थिति जो मुझे लगता है कि अनुरूप है, एक द्विपद वितरण के लिए, जीएलएम के लिए आवश्यक है कि प्रत्येक डेटा प्रविष्टि के लिए परीक्षणों ( ) की संख्या ज्ञात हो।N

जवाबों:


12

सामान्य गामा GLM में यह धारणा समाहित है कि आकार पैरामीटर स्थिर है, ठीक उसी तरह जिस तरह सामान्य रैखिक मॉडल निरंतर विचरण करता है।

GLM की भाषा में फैलाव पैरामीटर, में वार ( Y मैं ) = φ वी ( μ मैं ) सामान्य रूप से स्थिर है।ϕVar(Yi)=ϕV(μi)

आम तौर पर, आप , लेकिन यह मदद नहीं करता है।a(ϕ)

संभवत: एक निर्दिष्ट आकार पैरामीटर के इस प्रभाव को शामिल करने के लिए भारित गामा GLM का उपयोग करना संभव हो सकता है, लेकिन मैंने अभी तक इस संभावना की जांच नहीं की है (यदि यह काम करता है तो शायद यह करने का सबसे आसान तरीका है, लेकिन मैं बिल्कुल नहीं हूं यकीन है कि यह) होगा।

यदि आपके पास एक डबल GLM था, तो आप उस पैरामीटर को सहसंयोजकों के एक कार्य के रूप में अनुमान लगा सकते हैं ... और यदि डबल glm सॉफ़्टवेयर आपको वैराइटी अवधि में एक ऑफसेट निर्दिष्ट करने दें तो आप ऐसा कर सकते हैं। ऐसा लगता dglmहै कि पैकेज में फ़ंक्शन dglmआपको एक ऑफसेट निर्दिष्ट करने देता है। मैं नहीं जानता कि क्या यह आपको वैरिएबल मॉडल (जैसे) निर्दिष्ट करेगा ~ offset(<something>) + 0

एक और विकल्प यह होगा कि आप सीधे संभावना को अधिकतम करें।


> y <- rgamma(100,10,.1)

> summary(glm(y~1,family=Gamma))

Call:
glm(formula = y ~ 1, family = Gamma)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.93768  -0.25371  -0.05188   0.16078   0.81347  

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 0.0103660  0.0003486   29.74   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for Gamma family taken to be 0.1130783) 

    Null deviance: 11.223  on 99  degrees of freedom
Residual deviance: 11.223  on 99  degrees of freedom
AIC: 973.56

Number of Fisher Scoring iterations: 5

लाइन जहां यह कहती है:

   (Dispersion parameter for Gamma family taken to be 0.1130783)

एक तुम चाहते हो

ϕ^


1
ϕ=KKKβK

μMASS

glm(V4 ~ V3 + V2 + V1, family=Gamma)V1,V2,V3V4β

1
वैसे आप R के बाहर कुछ भी लागू कर सकते हैं जो उसके भीतर लागू किया जा सकता है; उदाहरण के लिए, आप संभावना को अधिकतम कर सकते हैं, या आप अनुमान के आधार पर उपयोग कर सकते हैं । क्या आप यहां "अनुचित" से अधिक विस्तार से बता सकते हैं कि आपका क्या मतलब है? ϕ^
Glen_b -Reinstate मोनिका

1
अपने स्वयं के कोड के परीक्षण के उद्देश्य से, मैंने 10,000 टुपल्स के साथ डेटा का एक सेट उत्पन्न किया। इसे जेनरेट करने के लिए, मैंने , जेनरेट किया गया नमूना , परिकलित किया गया (उलटा लिंक फ़ंक्शन के साथ स्केल पैरामीटर) ), और वितरण से एक यादृच्छिक चर उत्पन्न किया । जब मैं डेटा सेट पर R चलाता हूं, तो इसका पूर्वानुमानित कहीं नहीं होता है, जो कि । जब मैंने अन्य वितरणों के लिए ऐसा किया है, तो आर की भविष्यवाणी लगभग सही ढंग से हुई है। βVθ=(βTV)1YGamma(5,θ)β^β
जॉन क्लॉस

12

मैंने बाद में आकार पैरामीटर का अनुमान लगाने और फिर GLM में गुणांक अनुमानों और भविष्यवाणियों को समायोजित करने के लिए Balajari (2013) द्वारा वर्णित MASS पैकेज के गामा.शैप फ़ंक्शन का उपयोग किया । मैंने आपको सलाह दी है कि व्याख्यान को पढ़ें, जैसा कि मेरी राय में, जीएलएम में गामा वितरण के उपयोग के संबंध में बहुत स्पष्ट और दिलचस्प है।

glmGamma <- glm(response ~ x1, family = Gamma(link = "identity")
library(MASS)
myshape <- gamma.shape(glmGamma)
gampred <- predict(glmGamma , type = "response", se = T, dispersion = 1/myshape$alpha) 
    summary(glmGamma, dispersion = 1/myshape$alpha)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.