দ্রষ্টব্য: এই প্রশ্নটি পুনরায় পোস্ট করা হয়েছে, কারণ আমার আগের প্রশ্নটি আইনি কারণে মুছে ফেলা হয়েছিল।
আর- lme
এর nlme
প্যাকেজ থেকে ফাংশনটির সাথে এসএএস থেকে প্রসকে মিক্সেড তুলনা করার সময় , আমি কিছু বরং বিভ্রান্তিকর পার্থক্যের উপর হোঁচট খেয়েছি। আরও সুনির্দিষ্টভাবে বলা যায় যে বিভিন্ন পরীক্ষায় স্বাধীনতার ডিগ্রিগুলির মধ্যে পার্থক্য রয়েছে PROC MIXED
এবং lme
কেন আমি তা ভাবছিলাম।
নিম্নলিখিত ডাটাसेट থেকে শুরু করুন (নীচে দেওয়া আর কোড):
- ind: পরিমাপটি নেওয়া হয় এমন ব্যক্তিকে নির্দেশ করে factor
- fac: অঙ্গ যেখানে পরিমাপ নেওয়া হয়
- trt: চিকিত্সা নির্দেশক ফ্যাক্টর
- y: কিছু ধারাবাহিক প্রতিক্রিয়া পরিবর্তনশীল
নিম্নলিখিত সাধারণ মডেলগুলি তৈরির ধারণাটি:
y ~ trt + (ind)
: ind
একটি র্যান্ডম ফ্যাক্টর হিসেবে
y ~ trt + (fac(ind))
: fac
মধ্যে নেস্টেড ind
একটি র্যান্ডম ফ্যাক্টর হিসেবে
মনে রাখবেন যে, গত মডেল, ব্যতিক্রমী-বিন্দু হতে হবে আছে হিসেবে মাত্র 1 মান y
প্রতিটি সংযুক্তির জন্য ind
এবং fac
।
প্রথম মডেল
এসএএস-তে, আমি নিম্নলিখিত মডেলটি তৈরি করি:
PROC MIXED data=Data;
CLASS ind fac trt;
MODEL y = trt /s;
RANDOM ind /s;
run;
টিউটোরিয়াল অনুসারে, আর এর একই মডেলটি ব্যবহার করা nlme
উচিত:
> require(nlme)
> options(contrasts=c(factor="contr.SAS",ordered="contr.poly"))
> m2<-lme(y~trt,random=~1|ind,data=Data)
উভয় মডেল সহগ এবং তাদের এসই এর জন্য একই অনুমান দেয়, তবে এর প্রভাবের জন্য কোনও এফ পরীক্ষা চালানোর সময় trt
তারা স্বাধীনতার ডিগ্রি বিভিন্ন পরিমাণে ব্যবহার করে:
SAS :
Type 3 Tests of Fixed Effects
Effect Num DF Den DF F Value Pr > F
trt 1 8 0.89 0.3724
R :
> anova(m2)
numDF denDF F-value p-value
(Intercept) 1 8 70.96836 <.0001
trt 1 6 0.89272 0.3812
প্রশ্ন 1: উভয় পরীক্ষার মধ্যে পার্থক্য কী? উভয়ই আরএমএল ব্যবহার করে লাগানো হয় এবং একই বিপরীতে ব্যবহার করে।
দ্রষ্টব্য: আমি ডিডিএফএম = বিকল্পের জন্য পৃথক মান চেষ্টা করেছি (বিটউইথিন সহ, যা তাত্ত্বিকভাবে lme এর মতো একই ফলাফল দেবে)
দ্বিতীয় মডেল
এসএএসে:
PROC MIXED data=Data;
CLASS ind fac trt;
MODEL y = trt /s;
RANDOM fac(ind) /s;
run;
আর এর সমতুল্য মডেলটি হওয়া উচিত:
> m4<-lme(y~trt,random=~1|ind/fac,data=Data)
এই ক্ষেত্রে, কিছু খুব বিজোড় পার্থক্য রয়েছে:
- আর অভিযোগ না করেই ফিট করে, যদিও এসএএস নোট করে যে চূড়ান্ত হেসিয়ান ইতিবাচক নির্দিষ্ট নয় (যা আমাকে কিছুটা অবাক করে না, উপরে দেখুন)
- সহগের এসই আলাদা হয় (এসএএস-এর চেয়ে ছোট)
- আবার, এফ টেস্টে আলাদা পরিমাণে ডিএফ ব্যবহার করা হয়েছিল (আসলে এসএএসে সেই পরিমাণ = 0)
এসএএস আউটপুট:
Effect trt Estimate Std Error DF t Value Pr > |t|
Intercept 0.8863 0.1192 14 7.43 <.0001
trt Cont -0.1788 0.1686 0 -1.06 .
আর আউটপুট:
> summary(m4)
...
Fixed effects: y ~ trt
Value Std.Error DF t-value p-value
(Intercept) 0.88625 0.1337743 8 6.624963 0.0002
trtCont -0.17875 0.1891855 6 -0.944840 0.3812
...
(দ্রষ্টব্য যে এক্ষেত্রে, এফ এবং টি পরীক্ষা সমতুল্য এবং একই ডিএফ ব্যবহার করুন))
মজার বিষয় হল, lme4
আর-এ ব্যবহার করার সময় মডেলটি এমনকি ফিট করে না:
> require(lme4)
> m4r <- lmer(y~trt+(1|ind/fac),data=Data)
Error in function (fr, FL, start, REML, verbose) :
Number of levels of a grouping factor for the random effects
must be less than the number of observations
প্রশ্ন 2 : নেস্টেড কারণগুলির সাথে এই মডেলগুলির মধ্যে পার্থক্য কী? সেগুলি কি সঠিকভাবে নির্দিষ্ট করা হয়েছে এবং যদি তাই হয় তবে কীভাবে ফলাফলগুলি এত আলাদা হয়?
আর তে সিমুলেটেড ডেটা:
Data <- structure(list(y = c(1.05, 0.86, 1.02, 1.14, 0.68, 1.05, 0.22,
1.07, 0.46, 0.65, 0.41, 0.82, 0.6, 0.49, 0.68, 1.55), ind = structure(c(1L,
2L, 3L, 1L, 3L, 4L, 4L, 2L, 5L, 6L, 7L, 8L, 6L, 5L, 7L, 8L), .Label = c("1",
"2", "3", "4", "5", "6", "7", "8"), class = "factor"), fac = structure(c(1L,
1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L), .Label = c("l",
"r"), class = "factor"), trt = structure(c(2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Cont",
"Treat"), class = "factor")), .Names = c("y", "ind", "fac", "trt"
), row.names = c(NA, -16L), class = "data.frame")
সিমুলেটেড ডেটা:
y ind fac trt
1.05 1 l Treat
0.86 2 l Treat
1.02 3 l Treat
1.14 1 r Treat
0.68 3 r Treat
1.05 4 l Treat
0.22 4 r Treat
1.07 2 r Treat
0.46 5 r Cont
0.65 6 l Cont
0.41 7 l Cont
0.82 8 l Cont
0.60 6 r Cont
0.49 5 l Cont
0.68 7 r Cont
1.55 8 r Cont