আপডেট মে 2017 : যেমনটি দেখা যাচ্ছে যে আমি এখানে যা লিখেছি তার একটি বেশিরভাগ অংশ অন্যায় । কিছু পোস্ট পোস্ট জুড়ে করা হয়।
বেন বলকার ইতিমধ্যে যা বলেছেন তা নিয়ে আমি অনেকটাই একমত (এর জন্য চেঁচামেচি করার জন্য ধন্যবাদ afex::mixed()
) তবে আমাকে এই বিষয়ে আরও কয়েকটি সাধারণ এবং নির্দিষ্ট চিন্তাভাবনা যুক্ত করতে দিন।
স্থির বনাম এলোমেলো প্রভাব এবং কীভাবে ফলাফল প্রতিবেদন করবেন তার উপর ফোকাস করুন
জনাথন ব্যারন যে উদাহরণস্বরূপ ডেটা সেট করেছেন তা উদাহরণস্বরূপ যে ধরনের পরীক্ষামূলক গবেষণার জন্য আপনি গুরুত্বপূর্ণ প্রশ্নটি ব্যবহার করেন তা হ'ল ম্যানিপুলেটেড ফ্যাক্টরটির সামগ্রিক প্রভাব রয়েছে কিনা তা সাধারণত । উদাহরণস্বরূপ, আমরা কি সামগ্রিক প্রধান প্রভাব বা এর মিথস্ক্রিয়া খুঁজে পাই Task
? একটি গুরুত্বপূর্ণ বিষয় হ'ল সেই ডেটা সেটগুলিতে সাধারণত সমস্ত উপাদান সম্পূর্ণ পরীক্ষামূলক নিয়ন্ত্রণের অধীনে থাকে এবং এলোমেলোভাবে নির্ধারিত হয়। ফলস্বরূপ, আগ্রহের ফোকাস সাধারণত স্থির প্রভাবগুলিতে থাকে।
বিপরীতে, এলোমেলো প্রভাব উপাদানগুলিকে "উপদ্রব" পরামিতি হিসাবে দেখা যেতে পারে যা নিয়মিত পদ্ধতিতে ভিন্নতা (যেমন, প্রভাবের আকারের আন্ত-স্বতন্ত্র পার্থক্য) ক্যাপচার করে যা মূল প্রশ্নের জন্য প্রয়োজনীয় নয়। এই দৃষ্টিকোণ থেকে ব্যার এট আল দ্বারা সর্বাধিক র্যান্ডম এফেক্টস কাঠামো ব্যবহারের পরামর্শ। কিছুটা প্রাকৃতিকভাবে অনুসরণ করে। এটি সহজেই কল্পনা করা যায় যে পরীক্ষামূলক হেরফেরটি সমস্ত ব্যক্তিকে ঠিক একইভাবে প্রভাবিত করে না এবং আমরা এটি নিয়ন্ত্রণ করতে চাই। অন্যদিকে, কারণ বা স্তরের সংখ্যা সাধারণত খুব বেশি হয় না যাতে ওভারফিটের ঝুঁকি তুলনামূলকভাবে কম মনে হয়।
ফলস্বরূপ, আমি বার বার এট এর পরামর্শ অনুসরণ করব। এবং সর্বাধিক এলোমেলো প্রভাবগুলির কাঠামো নির্দিষ্ট করুন এবং আমার প্রধান ফলাফল হিসাবে স্থির প্রভাবগুলির পরীক্ষার প্রতিবেদন করুন। নির্দিষ্ট প্রভাবগুলি পরীক্ষা করার জন্য আমি afex::mixed()
এটি ব্যবহার করার পরামর্শও দেব কারণ এটি প্রভাবগুলি বা কারণগুলির পরীক্ষাগুলির (প্যারামিটারগুলির পরীক্ষার পরিবর্তে) রিপোর্ট করে এবং সেই পরীক্ষাগুলি কিছুটা বুদ্ধিমান উপায়ে গণনা করে (যেমন, সমস্ত মডেলের জন্য একই র্যান্ডম এফেক্ট স্ট্রাকচার ব্যবহার করে যেখানে একটি একক প্রভাব সরানো হয়, যোগফল থেকে শূন্য-বিপরীতে ব্যবহার করে, পি- মূল্যগুলি গণনা করার জন্য বিভিন্ন পদ্ধতি সরবরাহ করে , ...)।
উদাহরণ ডেটা সম্পর্কে কি
উদাহরণস্বরূপ আপনি যে ডেটা দিয়েছেন তাতে সমস্যাটি হ'ল এই ডেটাসেটের জন্য সর্বাধিক র্যান্ডম এফেক্টস স্ট্রাকচারটি ওভারস্যাচুরেটেড মডেলের দিকে নিয়ে যায় কারণ ডিজাইনের প্রতি সেলে কেবল একটি ডেটা পয়েন্ট থাকে:
> with(df, table(Valence, Subject, Task))
, , Task = Cued
Subject
Valence Faye Jason Jim Ron Victor
Neg 1 1 1 1 1
Neu 1 1 1 1 1
Pos 1 1 1 1 1
, , Task = Free
Subject
Valence Faye Jason Jim Ron Victor
Neg 1 1 1 1 1
Neu 1 1 1 1 1
Pos 1 1 1 1 1
ফলস্বরূপ, lmer
সর্বাধিক এলোমেলো প্রভাব স্ট্রাকচারের উপরে চাপ দেওয়া:
> lmer(Recall~Task*Valence + (Valence*Task|Subject), df)
Error: number of observations (=30) <= number of random effects (=30) for term
(Valence * Task | Subject); the random-effects parameters and the residual variance
(or scale parameter) are probably unidentifiable
দুর্ভাগ্যক্রমে, আমার জ্ঞানের সাথে এই সমস্যাটি মোকাবিলার পথে কোনও সম্মতি নেই। তবে আমাকে স্কেচ এবং কিছু আলোচনা করতে দিন:
প্রথম সমাধানটি হ'ল সর্বোচ্চ এলোমেলো slালু অপসারণ এবং এই মডেলের জন্য প্রভাবগুলি পরীক্ষা করা:
require(afex)
mixed(Recall~Task*Valence + (Valence+Task|Subject), df)
Effect F ndf ddf F.scaling p.value
1 Task 6.56 1 4.00 1.00 .06
2 Valence 0.80 2 3.00 0.75 .53
3 Task:Valence 0.42 2 8.00 1.00 .67
তবে, এই সমাধানটি সামান্য অ্যাড-হক এবং অতিরিক্ত উত্সাহপ্রাপ্ত নয়।
আপডেট মে 2017: এটি বর্তমানে আমি সমর্থন করছি এমন পদ্ধতির। দেখুন এই ব্লগ পোস্টের এবং অধ্যায়ের খসড়া আমি সহ-রচনা am , "Designs প্রথাগত ANOVA জন্য এলোমেলো এফেক্টস কাঠামো" বিভাগে।
একটি বিকল্প সমাধান (এবং এটি বার বার এট আলকের আলোচনার মাধ্যমে সমর্থন করা হিসাবে দেখা যেতে পারে) সর্বদা ক্ষুদ্রতম প্রভাবের জন্য এলোমেলো .ালু অপসারণ করা হতে পারে। যদিও এর দুটি সমস্যা রয়েছে: (১) কোন ক্ষুদ্রতম প্রভাবটি তা খুঁজে পেতে আমরা কোন এলোমেলো প্রভাবের কাঠামো ব্যবহার করি এবং (২) আর নিম্ন-অর্ডার প্রভাব যেমন মুখ্য প্রভাব হিসাবে অপসারণ করতে নারাজ যদি উচ্চতর আদেশের প্রভাব যেমন একটি এই প্রভাবের মিথস্ক্রিয়া উপস্থিত ( এখানে দেখুন )। ফলস্বরূপ, একজনকে হাত দিয়ে এই র্যান্ডম এফেক্টস স্ট্রাকচার সেটআপ করতে হবে এবং এতটা নির্মান মডেল ম্যাট্রিক্সকে লমার কলটিতে পাস করতে হবে।
তৃতীয় সমাধানটি হতে পারে এলোমেলো প্রভাবগুলির অংশের বিকল্প প্যারামিট্রাইজেশন, যা এই ডেটার জন্য আরএম-আনোভা মডেলের সাথে সম্পর্কিত। দুর্ভাগ্যক্রমে (?), lmer
"নেতিবাচক রূপগুলিকে" অনুমতি দেয় না তাই এই প্যারামিটারাইজেশনটি সমস্ত ডেটা সেটের জন্য আরএম-আনোভা-র সাথে যথাযথভাবে সামঞ্জস্য করে না , এখানে এবং অন্য কোথাও আলোচনা দেখুন (যেমন এখানে এবং এখানে )। এই ডেটাগুলির জন্য "লিমার-আনোভা" হ'ল:
> mixed(Recall~Task*Valence + (1|Subject) + (1|Task:Subject) + (1|Valence:Subject), df)
Effect F ndf ddf F.scaling p.value
1 Task 7.35 1 4.00 1.00 .05
2 Valence 1.46 2 8.00 1.00 .29
3 Task:Valence 0.29 2 8.00 1.00 .76
এই সমস্ত সমস্যাগুলির জন্য আমি lmer
সুনির্দিষ্ট ডাটা সেটগুলির জন্য ব্যবহার করব না যার জন্য সর্বাধিক এলোমেলো প্রভাব কাঠামোর সমস্যার সমাধানের জন্য যদি আরও একমত না হয় তবে ডিজাইনের প্রতি সেলে কেবলমাত্র একটি ডেটা পয়েন্ট থাকে।
পরিবর্তে, আমি একজন এখনও ক্লাসিকাল আনোভা ব্যবহার করতে পারতাম। থেকে চাদরে একটি ব্যবহার car::Anova()
মধ্যে afex
ফলাফল হবে:
> aov4(Recall~Task*Valence + (Valence*Task|Subject), df)
Effect df MSE F ges p
1 Valence 1.44, 5.75 4.67 1.46 .02 .29
2 Task 1, 4 4.08 7.35 + .07 .05
3 Valence:Task 1.63, 6.52 2.96 0.29 .003 .71
দ্রষ্টব্য যে afex
এখন যে মডেলটি পোস্ট-হক পরীক্ষার জন্য aov
প্রেরণ করা যেতে পারে সেগুলি ফিরিয়ে আনতেও অনুমতি দেয় lsmeans
(তবে প্রতিক্রিয়াগুলির দ্বারা পরীক্ষিত ফলাফলগুলি car::Anova
আরও যুক্তিসঙ্গত):
> require(lsmeans)
> m <- aov4(Recall~Task*Valence + (Valence*Task|Subject), df, return = "aov")
> lsmeans(m, ~Task+Valence)
Task Valence lsmean SE df lower.CL upper.CL
Cued Neg 11.8 1.852026 5.52 7.17157 16.42843
Free Neg 10.2 1.852026 5.52 5.57157 14.82843
Cued Neu 13.0 1.852026 5.52 8.37157 17.62843
Free Neu 11.2 1.852026 5.52 6.57157 15.82843
Cued Pos 13.6 1.852026 5.52 8.97157 18.22843
Free Pos 11.0 1.852026 5.52 6.37157 15.62843
Confidence level used: 0.95