अनुमानित बहुस्तरीय लॉजिस्टिक रिग्रेशन मॉडल


9

निम्न बहुस्तरीय लॉजिस्टिक मॉडल के स्तर 1 (व्यक्तिगत स्तर) पर एक व्याख्यात्मक चर और स्तर 2 (समूह स्तर) पर एक व्याख्यात्मक चर:

logit(पीमैंजे)=π0जे+π1जेएक्समैंजे...(1)
π0जे=γ00+γ01zजे+यू0जे...(2)
π1जे=γ10+γ1 1zजे+यू1जे...(3)

जहाँ, समूह-स्तरीय अवशिष्ट और को प्रत्याशित शून्य के साथ एक बहुभिन्नरूपी सामान्य वितरण माना जाता है। अवशिष्ट त्रुटियों के विचरण के रूप में निर्दिष्ट किया जाता है , और अवशिष्ट त्रुटियों के विचरण के रूप में निर्दिष्ट किया जाता है ।यू0जेयू1जेयू0जेσ02यू1जेσ12

मैं मॉडल के पैरामीटर का अनुमान लगाना चाहता हूं और मुझे Rकमांड का उपयोग करना पसंद है glmmPQL

समीकरण (2) और (3) समीकरण में (1) पैदावार,

logit(पीमैंजे)=γ00+γ10एक्समैंजे+γ01zजे+γ1 1एक्समैंजेzजे+यू0जे+यू1जेएक्समैंजे...(4)

प्रत्येक समूह में 30 समूह और 5 व्यक्तिगत हैं।(जे=1,,30)

आर कोड:

   #Simulating data from multilevel logistic distribution 
   library(mvtnorm)
   set.seed(1234)

   J <- 30             ## number of groups
   n_j <- rep(5,J)     ## number of individuals in jth group
   N <- sum(n_j)

   g_00 <- -1
   g_01 <- 0.3
   g_10 <- 0.3
   g_11 <- 0.3

   s2_0 <- 0.13  ##variance corresponding to specific ICC
   s2_1 <- 1     ##variance standardized to 1
   s01  <- 0     ##covariance assumed zero

   z <- rnorm(J)
   x <- rnorm(N)

   #Generate (u_0j,u_1j) from a bivariate normal .
   mu <- c(0,0)
  sig <- matrix(c(s2_0,s01,s01,s2_1),ncol=2)
  u <- rmvnorm(J,mean=mu,sigma=sig,method="chol")

  pi_0 <- g_00 +g_01*z + as.vector(u[,1])
  pi_1 <- g_10 + g_11*z + as.vector(u[,2])
  eta <- rep(pi_0,n_j)+rep(pi_1,n_j)*x
  p <- exp(eta)/(1+exp(eta))

  y <- rbinom(N,1,p)

अब पैरामीटर अनुमान।

  #### estimating parameters 
  library(MASS)
  library(nlme)

  sim_data_mat <- matrix(c(y,x,rep(z,n_j),rep(1:30,n_j)),ncol=4)
  sim_data <- data.frame(sim_data_mat)
  colnames(sim_data) <- c("Y","X","Z","cluster")
  summary(glmmPQL(Y~X*Z,random=~1|cluster,family=binomial,data=sim_data,,niter=200))

OUTPUT:

      iteration 1
      Linear mixed-effects model fit by maximum likelihood
      Data: sim_data 

      Random effects:
      Formula: ~1 | cluster
              (Intercept)  Residual
      StdDev: 0.0001541031 0.9982503

      Variance function:
      Structure: fixed weights
      Formula: ~invwt 
      Fixed effects: Y ~ X * Z 
                      Value Std.Error  DF   t-value p-value
      (Intercept) -0.8968692 0.2018882 118 -4.442404  0.0000
      X            0.5803201 0.2216070 118  2.618691  0.0100
      Z            0.2535626 0.2258860  28  1.122525  0.2712
      X:Z          0.3375088 0.2691334 118  1.254057  0.2123
      Correlation: 
           (Intr) X      Z     
      X   -0.072              
      Z    0.315  0.157       
      X:Z  0.095  0.489  0.269

      Number of Observations: 150
      Number of Groups: 30 
  • तर्क द्वारा फ़ंक्शन के अंदर पुनरावृत्तियों को लेने का उल्लेख करते समय केवल पुनरावृत्ति क्यों होती है ?1200glmmPQLniter=200

  • समूह-स्तरीय चर और क्रॉस-स्तरीय इंटरैक्शन पी-मूल्य से पता चलता है कि वे महत्वपूर्ण नहीं हैं। फिर भी इस लेख में वे आगे के विश्लेषण के लिए समूह-स्तरीय चर और क्रॉस-स्तरीय इंटरैक्शन को क्यों रखते हैं?(जेड)(एक्स:जेड)(जेड)(एक्स:जेड)

  • इसके अलावा स्वतंत्रता की डिग्री की DFगणना कैसे की जा रही है?

  • यह तालिका के विभिन्न अनुमानों के सापेक्ष पूर्वाग्रह से मेल नहीं खाता है । मैंने सापेक्ष पूर्वाग्रह की गणना करने की कोशिश की:

     #Estimated Fixed Effect parameters :
    
     hat_g_00 <- -0.8968692 #overall intercept
     hat_g_10 <- 0.5803201  # X
     hat_g_01 <-0.2535626   # Z
     hat_g_11 <-0.3375088   #X*Z
    
    fixed <-c(g_00,g_10,g_01,g_11)
    hat_fixed <-c(hat_g_00,hat_g_10,hat_g_01,hat_g_11)
    
    
    #Estimated Random Effect parameters :
    
    hat_s_0 <-0.0001541031  ##Estimated Standard deviation of random intercept 
    hat_s_1 <-  0.9982503 
    
    std  <- c(sqrt(0.13),1) 
    hat_std  <- c(0.0001541031,0.9982503) 
    
    ##Relative bias of Fixed Effect :
    rel_bias_fixed <- ((hat_fixed-fixed)/fixed)*100
    [1] -10.31308  93.44003 -15.47913  12.50293
    
    ##Relative bias of Random Effect :
    rel_bias_Random <- ((hat_std-std)/std)*100
    [1] -99.95726  -0.17497
  • सापेक्ष पूर्वाग्रह तालिका के साथ क्यों मेल नहीं खाता?

जवाबों:


7

यहाँ शायद बहुत सारे सवाल हैं। कुछ टिप्पणियां:

  • आप पैकेज glmerसे उपयोग करने पर विचार कर सकते हैं lme4( glmer(Y~X*Z+(1|cluster),family=binomial,data=sim_data)); इसमें लाप्लास सन्निकटन या गॉस-हरमिट क्वाड्रैचर का उपयोग किया जाता है, जो आम तौर पर PQL से अधिक सटीक होते हैं (हालांकि इस मामले में उत्तर बहुत समान हैं)।
  • niterतर्क को निर्दिष्ट अधिकतम पुनरावृत्तियों की संख्या; केवल एक पुनरावृत्ति वास्तव में आवश्यक थी
  • मुझे यकीन नहीं है कि बातचीत अवधि के बारे में आपका सवाल क्या है। चाहे आपको गैर-महत्वपूर्ण अंतःक्रिया की शर्तें छोड़नी चाहिए या नहीं कर सकते हैं कि कीड़े का एक सा है, और आपके सांख्यिकीय दर्शन और आपके विश्लेषण के लक्ष्यों पर निर्भर करता है (जैसे इस प्रश्न को देखें )
  • पिनेहिरो और बेट्स (2000) के पृष्ठ 91 पर वर्णित एक सरल 'इनर-एक्सटर्नल' हेयुरिस्टिक सिंपल 'इनर-एक्सटर्नल' नियम के अनुसार स्वतंत्रता की हर डिग्री की गणना की जा रही है, जो कि Google Books पर उपलब्ध है ... यह आमतौर पर है एक उचित सन्निकटन लेकिन स्वतंत्रता की डिग्री की गणना जटिल है, विशेष रूप से GLMM के लिए
  • यदि आप "मोइनलेडिन एट अल द्वारा बहुस्तरीय लॉजिस्टिक प्रतिगमन मॉडल के लिए नमूना आकार का एक सिमुलेशन अध्ययन" दोहराने की कोशिश कर रहे हैं (डीओआई: १०.११ /६ / १४-2१-२२ sim sim-34-३४), आपको बड़ी संख्या में सिमुलेशन चलाने और औसत गणना करने की आवश्यकता है, न कि केवल एक रन की तुलना करें। इसके अलावा, आपको संभवतः उनके तरीकों के करीब आने की कोशिश करनी चाहिए (मेरे पहले बिंदु पर वापस आते हुए, वे कहते हैं कि वे एसएएस प्रोसी एनएलएमइसीईडी का उपयोग अनुकूली गॉस-हरमिट क्वाड्रेट के साथ करते हैं, इसलिए आप उदाहरण के लिए बेहतर glmer(...,nAGQ=10)होंगे; यह अभी भी नहीं होगा; ठीक मेल करें, लेकिन यह शायद इससे ज्यादा करीब होगा glmmPQL

आप इसे एक अधिक छोटा सा है कि दोहराने के लिए समझाने कृपया सकते हैं ncbi.nlm.nih.gov/pmc/articles/PMC1955447/table/T1 , I need to run a large number of simulations and compute averages। क्या इसका मतलब है, कहते हैं, मुझे डेटा का अनुकरण करना है300बहुस्तरीय लॉजिस्टिक वितरण से कई बार और उनके मापदंडों का अनुमान लगाने के लिए और अनुमानों का औसत लेने के लिए? लेकिन अगर मैं कहता हूं, तो अनुमानित पैरामीटर का मान पैरामीटर के सही मान के बराबर नहीं होगा[θ^]=θ?
एबीसी

glmer() यादृच्छिक अवरोधन के विचरण का अनुमान लगाता है, σ02। लेकिन मुझे अन्य विचरण घटक (अवशिष्ट विचरण घटक) का कोई अनुमान नहीं मिल रहा है,σ12परिणाम सेsummary(glmer(Y~X*Z+(1|cluster),family=binomial,data=sim_data,nAGQ=10))
ABC

2
आप मान रहे हैं कि GLMM आकलन के लिए हम जो सन्निकटन का उपयोग करते हैं, वह निष्पक्ष है। यह शायद सच नहीं है; अधिकांश बेहतर सन्निकटन (PQL नहीं) asymptotically निष्पक्ष हैं, लेकिन वे अभी भी परिमित आकार के नमूनों के लिए पक्षपाती हैं।
बेन बोलकर

1
@ABC: हां, उन दोनों लिंक में कई बार कोड का एक हिस्सा दोहराने के लिए उदाहरण हैं। उदाहरण के लिए, किसी फ़ंक्शन में अपने कोड को लपेटना और प्रतिकृति कमांड को चलाना आसान होना चाहिए।
रयान सीमन्स

1
@ABC: आपके प्रश्न के दूसरे भाग के रूप में, मैं थोड़ा उलझन में हूँ कि आपको क्या परेशान कर रहा है। आप यादृच्छिक संख्या उत्पन्न कर रहे हैं; गोलाई के बिना या बड़ी संख्या में प्रतिकृति के बिना, आप पूर्वाग्रह (या, वास्तव में, किसी भी पैरामीटर का बिल्कुल सटीक अनुमान) के साथ ठीक 0 पाने वाले नहीं हैं। हालांकि, बड़ी संख्या में प्रतिकृति (जैसे, 1000) के साथ, आपको बहुत कम (लगभग 0) पूर्वाग्रह मिलने की संभावना है। आप जिस कागज का हवाला देते हैं कि आप इसे प्रदर्शित करने की कोशिश कर रहे हैं।
रयान सीमन्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.