এনএলএমআর () ব্যবহার করে পুনরাবৃত্তি ব্যবস্থা নেওয়ার জন্য আমি একটি ননলাইনার মিশ্র প্রভাবগুলির মডেলটি কীভাবে ফিট করব?


12

আমি বারবার পরিমাপের ডেটা বিশ্লেষণ করার চেষ্টা করছি এবং এটিকে কার্যকর করার জন্য সংগ্রাম করছি R। আমার ডেটা মূলত নিম্নলিখিত, আমার দুটি চিকিত্সা গ্রুপ রয়েছে। প্রতিটি গ্রুপের প্রতিটি বিষয় প্রতিদিন পরীক্ষা করা হয় এবং একটি স্কোর দেওয়া হয় (একটি পরীক্ষার শতাংশ সঠিক)। ডেটা দীর্ঘ বিন্যাসে রয়েছে:

Time Percent Subject   Group
   1       0    GK11 Ethanol
   2       0    GK11 Ethanol
   3       0    GK11 Ethanol
   4       0    GK11 Ethanol
   5       0    GK11 Ethanol
   6       0    GK11 Ethanol

ডেটা একটি লজিস্টিক কার্ভের অনুরূপ, বিষয়গুলি বেশ কিছুদিন খুব খারাপভাবে সম্পাদন করে দ্রুত উন্নতি এবং তারপরে একটি মালভূমি। চিকিত্সার পরীক্ষার পারফরম্যান্স বক্ররেখার কোনও প্রভাব আছে কিনা তা জানতে চাই। আমার চিন্তার ব্যবহার করতে ছিল nlmer()মধ্যে lme4প্যাকেজ R। আমি নিম্নলিখিত ব্যবহার করে প্রতিটি গ্রুপের জন্য লাইন ফিট করতে পারি:

print(nm1 <- nlmer(Percent ~ SSlogis(Time,Asym, xmid, scal) ~ Asym | Subject,
salinedata, start = c(Asym =.60,  xmid = 23, scal = 5)), corr = FALSE)

আমি আনুমানিক লাইনের বিভিন্ন পরামিতি এবং স্ট্যান্ডার্ড বিচ্যুতির জন্য অনুমানগুলি দেখে গোষ্ঠীর তুলনায় তুলনা করতে পারি তবে আমি নিশ্চিত নই যে এটি করার উপযুক্ত উপায় এটি। কোন সাহায্যের ব্যাপকভাবে প্রশংসা হবে।

উত্তর:


4

আপনি স্বাভাবিক সম্ভাবনা অনুপাত পরীক্ষা ব্যবহার করতে পারেন। এখানে একটি সহজ উদাহরণ। প্রথমে আসুন আপনার পরামিতিগুলির ভিত্তিতে 10 জন ব্যক্তির কাছ থেকে পর্যবেক্ষণগুলি তৈরি করুন:

Asym = .6
xmid = 23
scal = 5

n = 10
time = seq(1,60,5)

d = data.frame(time=rep(time,10),
               Asym, xmid, scal, group=0)
d$subj = factor(rep(1:n, each=length(time)))

এখন তাদের অর্ধেকের আলাদা আলাদা অ্যাসিম্পোটোটস এবং মিডপয়েন্ট প্যারামিটার থাকতে হবে:

ind = (nrow(d)/2):nrow(d)
d$Asym[ind] = d$Asym[ind] + .1
d$xmid[ind] = d$xmid[ind] + 10
d$group[ind] = 1
d$group=factor(d$group)

আমরা মডেলটির উপর ভিত্তি করে সমস্ত ব্যক্তির প্রতিক্রিয়া মানগুলি অনুকরণ করতে পারি:

set.seed(1)
d = transform(d, y = Asym/(1+exp((xmid-time)/scal)) +
                     rnorm(nrow(d), sd=.04))
library(lattice)
xyplot(y~time | group, group=subj,
       data=d, type=c("g","l"), col="black")

ডেটা স্প্যাগেটি প্লট

আমরা দুটি গ্রুপের মধ্যে স্পষ্ট পার্থক্য দেখতে পাচ্ছি, পার্থক্যগুলি যা মডেলগুলি বেছে নিতে সক্ষম হওয়া উচিত। এখন গ্রুপগুলি উপেক্ষা করে প্রথমে একটি সহজ মডেল ফিট করার চেষ্টা করা যাক :

> fm1 = nls(y ~ SSlogis(time, Asym, xmid, scal), data=d)
> coef(fm1)
      Asym       xmid       scal 
 0.6633042 28.5219166  5.8286082

সম্ভবত প্রত্যাশিত হিসাবে, দুটি দলের জন্য আসল প্যারামিটার মানগুলির জন্য অনুমান Asymএবং xmidঅন্য কোথাও। (এটি হ'ল এটি স্পষ্ট নয়, যদিও স্কেল প্যারামিটারটিও পরিবর্তিত হয়েছে, মডেলটির ভুল বান্ধবীর জন্য সামঞ্জস্য করতে)) এখন দুটি গ্রুপের বিভিন্ন পরামিতি সহ একটি পূর্ণ মডেল মাপসই করা যাক :

> fm2 = nls(y ~ SSlogis(time, Asym[group], xmid[group], scal[group]),
          data=d,
          start=list(Asym=rep(.6,2), xmid=rep(23,2), scal=rep(5,2)))
> coef(fm2)
    Asym1     Asym2     xmid1     xmid2     scal1     scal2 
 0.602768  0.714199 22.769315 33.331976  4.629332  4.749555

যেহেতু দুটি মডেল নেস্টেড, তাই আমরা সম্ভাবনা অনুপাত পরীক্ষা করতে পারি:

> anova(fm1, fm2)
Analysis of Variance Table

Model 1: y ~ SSlogis(time, Asym, xmid, scal)
Model 2: y ~ SSlogis(time, Asym[group], xmid[group], scal[group])
  Res.Df Res.Sum Sq Df  Sum Sq F value    Pr(>F)    
1    117    0.70968                                 
2    114    0.13934  3 0.57034  155.54 < 2.2e-16 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

অত্যন্ত ছোট পি- মূল্য পরিষ্কারভাবে দেখায় যে সরল মডেলটি খুব সাধারণ ছিল; দুই দলের না তাদের পরামিতি পার্থক্য।

যাইহোক, দুটি স্কেল পরামিতি অনুমানগুলি প্রায় অভিন্ন, কেবল মাত্র 1 এর পার্থক্যের সাথে। সম্ভবত আমাদের কেবলমাত্র একটি স্কেল পরামিতি প্রয়োজন? (অবশ্যই আমরা জানি উত্তরটি হ্যাঁ, যেহেতু আমরা ডেটা সিমুলেটেড করেছি))

(দুটি অ্যাসিপোটোটো প্যারামিটারের মধ্যে পার্থক্যটিও মাত্র 1।, তবে আমরা যখন স্ট্যান্ডার্ড ত্রুটিগুলি বিবেচনায় নিই তখন এটি বেশ বড় পার্থক্য - দেখুন summary(fm2)))

সুতরাং আমরা scaleদুটি গ্রুপের একটি সাধারণ প্যারামিটার সহ একটি নতুন মডেল ফিট করি তবে আগের মত আলাদা Asymএবং xmidপরামিতি:

> fm3 = nls(y ~ SSlogis(time, Asym[group], xmid[group], scal),
          data=d,
          start=list(Asym=rep(.6,2), xmid=rep(23,2), scal=5))
> coef(fm3)
     Asym1      Asym2      xmid1      xmid2       scal 
 0.6035251  0.7129002 22.7821155 33.3080264  4.6928316

এবং যেহেতু হ্রাসিত মডেলটি পুরো মডেলে বাসা বেঁধেছে তাই আমরা আবার সম্ভাবনা অনুপাত পরীক্ষা করতে পারি:

> anova(fm3, fm2)
Analysis of Variance Table

Model 1: y ~ SSlogis(time, Asym[group], xmid[group], scal)
Model 2: y ~ SSlogis(time, Asym[group], xmid[group], scal[group])
  Res.Df Res.Sum Sq Df     Sum Sq F value Pr(>F)
1    115    0.13945                             
2    114    0.13934  1 0.00010637   0.087 0.7685

বৃহত পি- মূল্য ইঙ্গিত দেয় যে হ্রাসিত মডেলটি পুরো মডেলের পাশাপাশি প্রত্যাশার সাথে ফিট করে।

আমরা অবশ্যই ঠিক Asym, ন্যায্য xmidবা উভয়ের জন্য বিভিন্ন প্যারামিটার মানগুলির প্রয়োজন কিনা তা পরীক্ষা করতে একই ধরণের পরীক্ষা করতে পারি । এটি বলেছে, আমি পরামিতিগুলি অপসারণের জন্য ধাপে ধাপে এই জাতীয় পদক্ষেপের প্রস্তাব দেওয়ার পরামর্শ দেব না । পরিবর্তে, কেবল সাধারণ মডেলের ( fm2) বিপরীতে সম্পূর্ণ মডেল ( ) পরীক্ষা করুন fm1এবং ফলাফলগুলি নিয়ে খুশি হন। যে কোনও তফাতকে মাপতে, প্লটগুলি সহায়ক হবে।


এটি একটি দুর্দান্ত উত্তর। কয়েকজন ব্যক্তিকে দু'বার পরিমাপ করা হয়েছিল এবং আপনি স্বতন্ত্রের মধ্যে সম্পর্কের জন্য নিয়ন্ত্রণ করতে চান তবে আপনি কীভাবে এই বিশ্লেষণটি পরিবর্তন করবেন? আপনি যদি সহায়তা করতে পারেন তবে আমি আপনার দুটি সেন্টের প্রশংসা করব! ( stats.stackexchange.com/questions/203040/… )
নোভা

এই পদ্ধতির সাথে nlmer()সময়ের সাথে নমুনাগুলির পুনরাবৃত্তি ব্যবস্থার জন্য অ্যাকাউন্টে ব্যবহার করার সাথে কীভাবে তুলনা হয় ? আপনি একই ধরণের কৌশল করতে পারেন তবে কেবল এবং তুলনা করার জন্য এলোমেলো প্রভাবগুলির সাথে subjectএবং groupবনাম অন্য মডেলটির এলোমেলো প্রভাবের সাথে 1 মডেল ফিট করতে পারেন subject
স্টিফান আভে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.