বিপরীতে কোডগুলির সাথে কীভাবে একজন টাইপ-তৃতীয় এসএস আনোভা করবেন?


26

দয়া করে আর কোড সরবরাহ করুন যা কাউকে -3, -1, 1, 3 বৈপরীত্য সহ প্রযোজ্য আনোভা পরিচালনা করতে দেয়। আমি বুঝতে পারি যে এই জাতীয় বিশ্লেষণের জন্য উপযুক্ত সমষ্টি (এসএস) টাইপ সম্পর্কিত বিতর্ক রয়েছে। যাইহোক, এসএএস এবং এসপিএসএস (টাইপ তৃতীয়) এ ব্যবহৃত এসএসএল ডিফল্ট টাইপ হিসাবে আমার অঞ্চলে মান হিসাবে বিবেচিত হয়। এইভাবে আমি এই বিশ্লেষণের ফলাফলগুলি পুরোপুরি মেলাতে চাই যা statistics পরিসংখ্যান প্রোগ্রামগুলির দ্বারা উত্পন্ন হয়। একটি উত্তর গৃহীত হওয়ার জন্য সরাসরি এওভ () এ কল করতে হবে, তবে অন্যান্য উত্তরগুলি ভোটাভুটি হতে পারে (স্পেসিফিক্যালি তারা বুঝতে / ব্যবহার করতে সহজ হলে)।

sample.data <- data.frame(IV=rep(1:4,each=20),DV=rep(c(-3,-3,1,3),each=20)+rnorm(80))

সম্পাদনা করুন: দয়া করে নোট করুন, আমি যে বৈপরীত্যের জন্য অনুরোধ করছি তা সাধারণ রৈখিক বা বহুপদী কনট্রাস্ট নয়, এটি একটি তাত্ত্বিক ভবিষ্যদ্বাণী দ্বারা উত্পন্ন একটি বৈসাদৃশ্য, অর্থাৎ রোসান্থাল এবং রোজনো আলোচিত বিপরীতে তৈরির ধরণ।


5
আমি বুঝতে পারি যে আপনার প্রকারের III সমষ্টি দরকার, তবে এটি ( stats.ox.ac.uk/pub/MASS3/Exegeses.pdf ) নিবন্ধটি ভাল পঠিত। এটি কিছু আকর্ষণীয় বিষয় চিত্রিত করে।
সানকুলসু

আপনার প্রশ্ন সম্পর্কিত আপনি নিম্নলিখিত আলোচনায় আগ্রহী হতে পারেন: stats.stackexchange.com/questions/60362/… আনোভা টাইপ I, II, এবং III এর মধ্যে পছন্দ যতটা সহজ মনে হয় তত সহজ নয়।
phx

আপনার প্রশ্নকে দরকারী হিসাবে উত্সাহিত করেছেন যাতে এটি বেশ কয়েকটি জ্ঞাত প্রতিক্রিয়া প্ররোচিত করেছিল, তবে আমি এটাও নোট করি যে আপনি উত্তরদাতার সাথে সম্মত হয়েছেন যিনি মূলত বলেছিলেন যে প্রশ্নের ভিত্তিটি ভুল ছিল। আমি আশা করি সংজ্ঞাগুলি বিপরীতগুলি "টাইপ আই" দ্বারা সংজ্ঞায়িত হয়ে স্টাগয়ের অবস্থানের সংক্ষিপ্ত বিবরণ দিচ্ছিলাম এবং আংশিক রিগ্রেশন পরিসংখ্যান মূল্যায়ন করার সময় অন্যান্য ধরণের আলোচনা কেবল প্রাসঙ্গিক হয়ে ওঠে, সম্ভবত স্বয়ংক্রিয় পদ্ধতি ব্যবহার করে "মেশিনটিকে ড্রাইভিং করতে" দেওয়ার সময় সম্ভবত সবচেয়ে গুরুত্বপূর্ণ।
ডিউইন

@ ডবিন: আমি নিশ্চিত নই যে আমি সম্পূর্ণরূপে আপনাকে অনুসরণ করব। 'মেশিনটি ড্রাইভিং করতে' না দিয়ে কেউ বৈধভাবে অন্য প্রকারের এসএস ব্যবহার করতে পারে (কমপক্ষে আমি এই শব্দগুচ্ছটি বুঝতে পেরেছি)। আমি এখানে কিছুটা মরিচা হতে পারি, তবে মেমরিটি যদি সরবরাহ করে তবে আংশিক রিগ্রেশন ব্যবহার না করার সময় অন্যান্য ধরণের প্রাসঙ্গিক হতে পারে। উদাহরণস্বরূপ, III এসএস টাইপ করুন ইন্টারঅ্যাকশন থেকে মূল প্রভাবগুলি আংশিক নয়। ধরণের বিষয়গুলির মধ্যে পার্থক্যটি সেখানে স্পষ্টভাবে কারণ প্রকার III আংশিক হয় না যেখানে টাইপ I হয়। উল্লিখিত সমস্যাটির মধ্যে কেবলমাত্র একক বিপরীতে অন্তর্ভুক্ত ছিল এবং তাই এসএসের ধরণের পার্থক্যটি ছিল / হয়।
রাসেলপিয়েরেস

আমার উপলব্ধিটি ছিল এসআইএসের দ্বারা তৃতীয় এসএসএস টাইপ নির্বাচনের জন্য দেওয়া যুক্তি (এবং এই কারণেই লোকেরা মনে করে যে টাইপ-তৃতীয় পছন্দ করা হয়) এটি পিছিয়ে এবং এগিয়ে নির্বাচন প্রক্রিয়াটিকে আরও ভাল সমর্থন করে।
ডিউইন

উত্তর:


22

আনোভা-র জন্য স্কোয়ারের তৃতীয় সমষ্টি কার প্যাকেজ Anova()থেকে ফাংশনের মাধ্যমে সহজেই উপলব্ধ ।

কনট্রাস্ট কোডিং বিভিন্নভাবে কাজ করা যেতে পারে ব্যবহার C(), contr.*পরিবার (যেমন @nico দ্বারা নির্দেশিত), অথবা সরাসরি contrasts()ফাংশন / যুক্তি। এটি এস (স্প্রিংগার, 2002, চতুর্থ সংস্করণ ) সহ আধুনিক প্রয়োগিত পরিসংখ্যানের §6.2 (পিপি 144-151) এ বিশদ is নোট যে aov()ফাংশন জন্য শুধুমাত্র একটি মোড়ক lm()ফাংশন। এটি আকর্ষণীয় যখন কোনও মডেলটির ত্রুটি শব্দটি নিয়ন্ত্রণ করতে চায় (যেমন কোনও বিষয়গুলির মধ্যে ডিজাইনের মতো) তবে অন্যথায় তারা উভয়ই একই ফলাফল দেয় (এবং আপনি নিজের মডেলের সাথে যেভাবেই ফিট করেন তবুও আপনি আনোভা বা এলএম- আউটপুট নিতে পারেন summary.aovবা এর সাথে সংক্ষিপ্তসারগুলির মতো summary.lm)।

দুটি আউটপুট তুলনা করতে আমার কাছে এসপিএস নেই, তবে এর মতো কিছু

> library(car)
> sample.data <- data.frame(IV=factor(rep(1:4,each=20)),
                            DV=rep(c(-3,-3,1,3),each=20)+rnorm(80))
> Anova(lm1 <- lm(DV ~ IV, data=sample.data, 
                  contrasts=list(IV=contr.poly)), type="III")
Anova Table (Type III tests)

Response: DV
            Sum Sq Df F value    Pr(>F)    
(Intercept)  18.08  1  21.815  1.27e-05 ***
IV          567.05  3 228.046 < 2.2e-16 ***
Residuals    62.99 76                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

প্রথম উদাহরণে চেষ্টা করা মূল্যবান।

আর ভার্সেস এসএএস-এ ফ্যাক্টর কোডিং সম্পর্কে: আরএর ভিত্তি বা রেফারেন্স স্তরটিকে অভিধানিক ক্রমে প্রথম স্তর হিসাবে বিবেচনা করে, যেখানে এসএএস শেষটিকে বিবেচনা করে। সুতরাং, তুলনামূলক ফলাফল পেতে আপনার হয় contr.SAS()বা relevel()আপনার আর ফ্যাক্টর ব্যবহার করতে হবে ।


1
আমি মনে করি না যে এই উত্তরটি আমার দ্বারা নির্দিষ্ট করা -3, -1,1,3 বিপরীতে ব্যবহার করেছে বা এটি বিপরীতে 1 ডিএফ পরীক্ষা সরবরাহ করবে বলে মনে হয় না।
রাসেলপিয়ার্স

@ ড্রকনেেক্সাস হ্যাঁ, আপনি ঠিক বলেছেন। খুব দ্রুত লিখেছি। ভালো কিছু Anova(lm(DV ~ C(IV, c(-3,-1,1,3),1), data=sample.data), type="III")হওয়া উচিত। আপনার সাথে যদি ঠিক আছে তবে দয়া করে আমাকে জানান।
chl

ধন্যবাদ! দেখে মনে হচ্ছে ঠিক আছে আমি আগামীকাল এসপিএসের বিরুদ্ধে এটি বৈধ করব এবং আপনার কাছে ফিরে আসব।
রাসেলপিয়ের্স

1
বিটিডাব্লু , আনোভা কোড মোড়ানোর জন্য ez প্যাকেজটি দেখুন ( cran.r-project.org/web/packages/ez/index.html ) ...
তাল গ্যালি

2
@ ড্রকনেেক্সাস: যদি কেবল ইজে ... গিথুব . com/mike-lawrence/ ez/ issues :) এর জন্য কোনও বৈশিষ্ট্য অনুরোধ এবং ইস্যু জমা দেওয়ার পৃষ্ঠাটি থাকত :)
মাইক লরেন্স

11

এটি কিছুটা স্ব-প্রচারের মতো দেখতে (এবং আমি মনে করি এটি)। তবে আমি আর ( সিআরএএন- তে উপলব্ধ) জন্য একটি lsmeans প্যাকেজ তৈরি করেছি যা এই ধরণের পরিস্থিতিটি হ্যান্ডেল করার জন্য ডিজাইন করা হয়েছে। এটি আপনার উদাহরণের জন্য কীভাবে কাজ করে তা এখানে:

> sample.data <- data.frame(IV=rep(1:4,each=20),DV=rep(c(-3,-3,1,3),each=20)+rnorm(80))
> sample.aov <- aov(DV ~ factor(IV), data = sample.data)

> library("lsmeans")
> (sample.lsm <- lsmeans(sample.aov, "IV"))
 IV    lsmean        SE df   lower.CL  upper.CL
  1 -3.009669 0.2237448 76 -3.4552957 -2.564043
  2 -3.046072 0.2237448 76 -3.4916980 -2.600445
  3  1.147080 0.2237448 76  0.7014539  1.592707
  4  3.049153 0.2237448 76  2.6035264  3.494779

> contrast(sample.lsm, list(mycon = c(-3,-1,1,3)))
 contrast estimate       SE df t.ratio p.value
 mycon    22.36962 1.000617 76  22.356  <.0001

আপনি চাইলে তালিকায় অতিরিক্ত বিপরীতে উল্লেখ করতে পারেন। এই উদাহরণস্বরূপ, আপনি অন্তর্নির্মিত রৈখিক বহুপদী বিপরীতে একই ফলাফল পাবেন:

> con <- contrast(sample.lsm, "poly")
> con
 contrast   estimate        SE df t.ratio p.value
 linear    22.369618 1.0006172 76  22.356  <.0001
 quadratic  1.938475 0.4474896 76   4.332  <.0001
 cubic     -6.520633 1.0006172 76  -6.517  <.0001

এটি নিশ্চিত করার জন্য, নোট করুন যে "poly"স্পেসিফিকেশনটি এটি কল করার নির্দেশ দেয় poly.lsmc, যা এই ফলাফলগুলি উত্পাদন করে:

> poly.lsmc(1:4)
  linear quadratic cubic
1     -3         1    -1
2     -1        -1     3
3      1        -1    -3
4      3         1     1

আপনি যদি কয়েকটি বিপরীতে একটি যৌথ পরীক্ষা করতে চান তবে এর সাথে testফাংশনটি ব্যবহার করুন joint = TRUE। উদাহরণ স্বরূপ,

> test(con, joint = TRUE)

এটি একটি "ধরণের III" পরীক্ষা উত্পন্ন করবে। বিপরীতে car::Anova(), এটি মডেল-ফিটিং পর্যায়ে ব্যবহৃত বিপরীতে কোডিং নির্বিশেষে এটি সঠিকভাবে করবে। এর কারণ এটি হচ্ছে যে লিনিয়ার ফাংশনগুলি পরীক্ষা করা হচ্ছে তা মডেল হ্রাসের মাধ্যমে স্পষ্টত না বরং সরাসরি নির্দিষ্ট করা হয়। একটি অতিরিক্ত বৈশিষ্ট্য হ'ল এমন একটি ক্ষেত্রে যেখানে পরীক্ষা করা হচ্ছে বৈসাদৃশ্যগুলি রৈখিকভাবে নির্ভরশীল তা সনাক্ত করা হয় এবং সঠিক পরীক্ষার পরিসংখ্যান এবং স্বাধীনতার ডিগ্রি উত্পন্ন হয়।


10

আপনি এই ব্লগ পোস্টটি একবার দেখতে চান:

এসপিএসএস-এর মতো আর-তেও একই আনোভা ফলাফল প্রাপ্তি - ধরণের II এবং টাইপ III বর্গের সমষ্টিগুলির সাথে অসুবিধা

( স্পোলার:options(contrasts=c("contr.sum", "contr.poly")) আপনার স্ক্রিপ্টের শুরুতে যুক্ত করুন )


আরভিএলের উত্তরে যৌথ পরীক্ষার অতিরিক্ত তথ্য নোট করুন।
rvl

7

আপনি যখন বৈসাদৃশ্যগুলি করছেন, আপনি উপযুক্ত ত্রুটি শর্তের প্রেক্ষাপটে একটি নির্দিষ্ট, বর্ণিত লিনিয়ার সংমিশ্রণ ঘরের সাথে করছেন। যেমন, "টাইপ অফ এসএস" ধারণাটি বৈপরীত্যগুলির সাথে অর্থপূর্ণ নয়। প্রতিটি বৈপরীত্য মূলত টাইপ আই এসএস ব্যবহার করে প্রথম প্রভাব হয় is "এসএসের ধরণ" এর সাথে অন্যান্য শর্তাদি দ্বারা আংশিক বা দায়বদ্ধতার সাথে সম্পর্কযুক্ত। বৈপরীত্যগুলির জন্য, কিছুই আংশিক বা জবাবদিহি করা হয় না। বৈপরীত্য নিজে থেকে দাঁড়িয়ে।


তুমি একদম সঠিক.
রাসেলপিয়ের্স

3

ধরণের III পরীক্ষাগুলি আপনার কাজের স্থানে ব্যবহৃত হয় এগুলি ব্যবহার চালিয়ে যাওয়ার জন্য দুর্বলতম কারণ। এসএএস এক্ষেত্রে পরিসংখ্যানকে বড় ক্ষতি করেছে। উপরোক্ত রেফারেন্সে বিল ভেনিয়েবলের উপব্যক্তি এটির জন্য একটি দুর্দান্ত উত্স। III টাইপ না করার জন্য কেবল বলুন; এটি ভারসাম্যের একটি ত্রুটিযুক্ত ধারণার উপর ভিত্তি করে এবং ভারসাম্যহীন ক্ষেত্রে কোষগুলির নির্লিপ্ত ওজনের কারণে কম শক্তি রয়েছে।

সাধারণ বৈসাদৃশ্যগুলি পাওয়ার আরও একটি প্রাকৃতিক এবং কম ত্রুটি-প্রবণ উপায় এবং আপনি যা করেছেন তা বর্ণনা করতে সক্ষম হওয়ার জন্য আর rmsপ্যাকেজ contrast.rmsফাংশন সরবরাহ করে। বৈসাদৃশ্যগুলি খুব জটিল হতে পারে তবে ব্যবহারকারীর কাছে খুব সহজ কারণ সেগুলি ভবিষ্যদ্বাণীপূর্ণ মানগুলির মধ্যে পার্থক্যের ক্ষেত্রে বর্ণিত। পরীক্ষা এবং একযোগে বৈপরীত্য সমর্থিত। এটি ননলাইনার রিগ্রেশন ইফেক্টস, ননলাইনারি ইন্টারঅ্যাকশন ইফেক্টস, আংশিক বিপরীতে, সমস্ত ধরণের জিনিস পরিচালনা করে।


খ্যাতিমান প্রতিষ্ঠানের একজন ব্যক্তি হিসাবে বলার পক্ষে এটি আপনার পক্ষে বেশ ভাল এবং মঙ্গলজনক। অন্যদের পর্যালোচকদের সাথে একমত হওয়ার আকাঙ্ক্ষা নেই। যেহেতু পরিসংখ্যানগুলির ব্যাখ্যাগুলি পৃথক, আপনি নতুন লোককে নীতিতে দাঁড়াতে এবং অযৌক্তিক ব্যয় করতে বলছেন। আমি বলি যে এই পাহাড়ের উপরে (এবং অনুরূপ) পাহাড়ে আমার ভাগাভাগি কেউ মারা গেছে। এই ফ্রন্টে আইএমও পরিবর্তন হ'ল দারোয়ান, অর্থাৎ সম্পাদক এবং পর্যালোচকদের দায়িত্ব।
রাসেলপিয়ার্স

যে সমস্ত লোকেরা ডেটা সহ সত্যই ভাল তাদের চাকরির বিস্তৃত পছন্দ থাকে এবং তাদের দক্ষতা এবং মতামত সম্মানিত হয় এমন অঞ্চলে কাজ করার বিকল্প থাকতে পারে।
ফ্রাঙ্ক হ্যারেল

1
... এবং আমি এখন এটি করি। তবে এই প্রশ্নে আসা লোকেরা ঘন ঘন সেই শ্রেণির হতে পারে না। ঠিক আমি 7 বছর আগে ছিল না। আমি কেবল নবজাতক এবং তাদের পরিস্থিতিতে কিছুটা সহানুভূতির জন্য উকিল করি।
রাসেলপিয়ার্স

2

গাড়ির লাইব্রেরিতে আনোভা কমান্ডটি ব্যবহার করে দেখুন। টাইপ = "III" যুক্তিটি ব্যবহার করুন, যেমন এটি II টাইপ করতে ডিফল্ট হয়। উদাহরণ স্বরূপ:

library(car)
mod <- lm(conformity ~ fcategory*partner.status, data=Moore, contrasts=list(fcategory=contr.sum, partner.status=contr.sum))
Anova(mod, type="III")

3
আমি জানি মুর গাড়ির লাইব্রেরিতে রয়েছে, তবে যখন নমুনা ডেটা সরবরাহ করা হয় আপনি যদি নমুনা ডেটা ব্যবহার করেন তবে প্রশ্নকারীদের আপনার প্রতিক্রিয়া বোঝা সহজ।
রাসেলপিয়ার্স

0

স্ব-প্রচারের জন্যও, আমি ঠিক এর জন্য একটি ফাংশন লিখেছিলাম: https://github.com/samuelfranssens/type3anova

নিম্নলিখিত হিসাবে ইনস্টল করুন:

library(devtools)
install_github(samuelfranssens/type3anova)
library(type3anova)

sample.data <- data.frame(IV=rep(1:4,each=20),DV=rep(c(-3,-3,1,3),each=20)+rnorm(80))

type3anova(lm(DV ~ IV, data = sample.data))

আপনার carপ্যাকেজ ইনস্টল করা দরকার।


আপনি প্রশ্নের বিপরীত অংশে এটি কীভাবে প্রয়োগ করবেন?
রাসেলপিয়ার্স

1
দুঃখিত, আমি প্রশ্নটি সঠিকভাবে পড়িনি। আমার ফাংশনটি কেবল তৃতীয় আনোভা টাইপ পরিচালনা সহজতর করবে। উপরের স্ট্যাটগুয়ের মতো, নির্দিষ্ট বৈপরীত্য পরীক্ষা করার সময় এসএস কোথায় খেলায় আসে তা আমি দেখতে পাই না।
sam_f
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.