দুটি অধিক নমুনার মধ্যে মধ্যমদের মধ্যে পার্থক্যের জন্য হাইপোথিসিস পরীক্ষা


12

প্রশ্ন

তিন গ্রুপের পরীক্ষার স্কোরগুলি আর-তে পৃথক ভেক্টর হিসাবে সংরক্ষণ করা হয়েছে

set.seed(1)
group1 <- rnorm(100, mean = 75, sd = 10)
group2 <- rnorm(100, mean = 85, sd = 10)
group3 <- rnorm(100, mean = 95, sd = 10)

আমি জানতে চাই যে এই গ্রুপগুলির মধ্যে মধ্যমদের মধ্যে কোনও উল্লেখযোগ্য পার্থক্য রয়েছে কিনা । আমি জানি যে আমি উইলকক্সন টেস্ট ব্যবহার করে গ্রুপ 1 বনাম গ্রুপ 2 পরীক্ষা করতে পারলাম।

wilcox.test(group1, group2)

তবে এটি একবারে মাত্র দুটি গ্রুপের তুলনা করে এবং আমি তিনটি একই সাথে তুলনা করতে চাই। আমি একটি পরিসংখ্যান পরীক্ষা চাই যে 0.05 তাত্পর্য স্তরে এপি মান দেয়। কেউ দয়া করে সাহায্য করতে পারেন?

# 1 সম্পাদনা করুন - মেজাজের মাঝারি পরীক্ষা

ব্যবহারকারী হাইবারনেটিংয়ের প্রস্তাবিত উত্তর অনুসরণ করে আমি মুডের মাঝারি পরীক্ষার চেষ্টা করেছি।

median.test <- function(x, y){
    z <- c(x, y)
    g <- rep(1:2, c(length(x), length(y)))
    m <- median(z)
    fisher.test(z < m, g)$p.value
}

median.test(group1, group2)

যাইহোক, এই পদ্ধতির সাহায্যে আমাকে একবারে কেবলমাত্র দুটি গ্রুপের মধ্যমদের মধ্যে একটি গুরুত্বপূর্ণ পার্থক্য পরীক্ষা করতে সহায়তা করে। তিনটি মধ্যস্থতাদের একসাথে তুলনা করতে কীভাবে এটি ব্যবহার করবেন তা সম্পর্কে আমি নিশ্চিত নই।

# 2 সম্পাদনা করুন - ক্রুসকল-ওয়ালিস পরীক্ষা

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

kruskal.test(list(group1, group2, group3))

সম্পাদনা # 3

ব্যবহারকারী গ্রেগ স্নো তাঁর উত্তরে সহায়কভাবে নোট করেছেন যে ক্রুসকল-ওয়ালিস পরীক্ষা ততক্ষণ যথাযথ অনুমান করা যা এটিকে মাধ্যমেরও একটি পরীক্ষা করে তোলে appropriate


ইতিমধ্যে এই সাইটে বেশ কয়েকটি অনুরূপ প্রশ্ন রয়েছে been জন্য দেখুন দয়া করে median test। আমার নিজের উত্তর / মন্তব্যগুলি এখানে
ttnphns

একই সাথে তিনটির মধ্যস্থদের তুলনা করতে, সামান্য পরিবর্তিত আর কোডের জন্য আমার সম্পাদনা দেখুন।
হাইবারনেটিং

উত্তর:


4

কুরস্কাল-ওয়ালিস পরীক্ষাটিও ব্যবহার করা যেতে পারে, কারণ এটি একটি নন-প্যারামেট্রিক আনোভা। অতিরিক্তভাবে, এটি প্রায়শই মুডের মাঝারি পরীক্ষার চেয়ে আরও শক্তিশালী বলে মনে করা হয় । এটি আর -তে স্ট্যাটাস প্যাকেজে ক্রুসাল.স্টেস্ট ফাংশন ব্যবহার করে আর এ প্রয়োগ করা যেতে পারে

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


1
কয়েকটি বিষয় পরিষ্কার করা। 1) কৃস্কাল-ওয়ালিস মিডিয়েনদের পরীক্ষা নয়, যদি না গ্রুপগুলিতে পর্যবেক্ষণ বিতরণ নির্দিষ্ট অনুমানের সাথে মিলিত হয়। আপনি যদি সত্যই মিডিয়ানদের তুলনা করতে চান তবে এটি উপযুক্ত পরীক্ষা নাও হতে পারে। এমন একটি পরীক্ষা বাছাই করা ভাল যা আপনি যে অনুমানটিকে পরীক্ষা করতে আগ্রহী তা আসলে পরীক্ষা করে। 2) কৃষকল-ওয়ালিস কোনও "আনোভা" নয়। অর্থাৎ এটি বৈকল্পিকতা নয়। 3) এই উত্তরে "মানে" এর উল্লেখটি ভুল।
সাল মঙ্গিয়াফিকো

10

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

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

প্রথমে পার্থক্যটির একটি পরিমাপ চয়ন করুন, 3 টির মধ্যে সবচেয়ে বড় বিয়োগফল 3 এর মধ্যে সবচেয়ে ছোট (অথবা 3 টি মিডিয়ান বা এমএডি ইত্যাদির ভিন্নতা)

আসল তথ্যটির জন্য এখন আপনার স্ট্যাটটি গণনা করুন।

এক সেট সমস্ত ডেটা পুল করুন এবং এলোমেলোভাবে মানগুলিকে 3 টি গ্রুপে বিভক্ত করুন

মূল হিসাবে একই মাপ এবং একই পরিসংখ্যান গণনা।

বহুবার পুনরাবৃত্তি করুন (যেমন 9998)

প্রকৃত তথ্য থেকে পরিসংখ্যানগুলি কীভাবে আপনার পরীক্ষার জন্য সমস্ত পরিসংখ্যান বিতরণের সাথে তুলনা করে তা তুলনা করুন।


আসুন আমরা বলি যে আমি উইলকক্স পরীক্ষার জন্য প্রয়োজনীয় কঠোর অনুমানগুলি তৈরি করতে ইচ্ছুক যা এটি এটিকে মাধ্যমের একটি পরীক্ষাও করে তুলবে। তার জন্য কি আমি উপরে লিখেছি আর কোড পরিবর্তন প্রয়োজন? এটি কি কৃস্কাল-ওয়ালিস পরীক্ষার জন্যও করা যেতে পারে?
আলেকজান্ডার

1
@ আলেকজান্ডার, আপনি যদি এই অনুমানগুলি করতে রাজি হন তবে আর কোডটি ঠিক আছে এবং কৃষকলাল ওয়ালিসও ঠিক আছে। তবে আপনি যদি তখন সেই অনুমানগুলি করতে রাজি হন t.testএবং aovসম্ভবত ভালও হয়ে উঠবেন।
গ্রেগ স্নো

+1 টি। আপনি যদি কথা বলছেন তবে কি Wilcoxon sum-rank test"উইলকক্স "টিকে সেই নামে রূপান্তর করতে আপনার আপত্তি হবে না?
ttnphns

তৈরি পয়েন্টগুলির জন্য @ গ্রেগসনো +1 ... তবে আমি 'উইলকক্স' দ্বারা ধরে নিয়েছি আপনি ফ্র্যাঙ্ক উইলকক্সনের নাম অনুসারে পরীক্ষাটি বোঝাচ্ছেন। (এই বিভ্রান্তি দুর্ভাগ্যক্রমে আর দ্বারা মিশ্রিত, যা - বিভ্রান্তিমূলকভাবে --টিকে সংশ্লিষ্ট পরীক্ষাকে ডেকে আনে wilcox.test)। আপনি সম্পাদনা করতে পারেন?
গ্লেন_বি -রিনস্টেট মনিকা

8

মুডের মিডিয়ান টেস্টটি একটি ননপ্যারমেট্রিক টেস্ট যা দুই বা ততোধিক জনসংখ্যার মধ্যস্থতার সাম্যের পরীক্ষা করতে ব্যবহৃত হয়। আপনার প্রশ্নের আর অংশের জন্য এখানে দেখুন । একটি সম্পর্কিত প্রশ্ন এখানে দেখুন । এছাড়াও থেকে এখানে :

মুডের মিডিয়ান টেস্ট হ'ল হাতছাড়া করা সবচেয়ে সহজ: সামগ্রিক মিডিয়ান (সমস্ত উপাত্তের) তৈরি করে কাজ করুন এবং প্রতিটি গ্রুপের মধ্যকারের উপরে এবং নীচে কতগুলি মান রয়েছে তা গণনা করুন। গোষ্ঠীগুলি যদি একই রকম হয় তবে পর্যবেক্ষণগুলি প্রতিটি গ্রুপের সামগ্রিক মিডিয়ানের উপরে এবং নীচের চেয়ে কমপক্ষে 50-50 হওয়া উচিত ... নীচের-মধ্যমা এবং উপরের-মধ্যম গণনাগুলি ... দ্বি-মুখী টেবিল গঠন করে, যা তারপরে চি-স্কোয়ার টেস্ট ব্যবহার করে বিশ্লেষণ করা হয়। মেজাজের মিডিয়ান টেস্টটি দুটি বা আরও বেশি গোষ্ঠীতে সাধারণীকরণ করা সাইন টেস্টের মতো।

সম্পাদনা করুন: তিনটি গোষ্ঠীর জন্য, আপনি যে সংযুক্ত আমার সাথে সংযুক্ত আর কোডের এই সাধারণ সাধারণকরণটি বিবেচনা করতে পারেন:

median.test2 <- function(x, y, z) {
  a <- c(x, y, z)
  g <- rep(1:3, c(length(x), length(y), length(z)))
  m <- median(a)
  fisher.test(a < m, g)$p.value
}

1
পরীক্ষার নামকরণের জন্য +1। আমি জানতাম না যে মেডিয়ান টেস্টকে মুডের পরীক্ষাও বলা হয়।
ttnphns

+1 এটির জন্য আমাকে সাহায্য করার জন্য ধন্যবাদ, আমি সত্যিই এটির প্রশংসা করি!
আলেকজান্ডার

আমি জানি mood.medtestR.AideMemoire প্যাকেজে আর.এর বেশ কয়েকটি বাস্তবায়ন সাধারণ টেস্ট হিসাবে দেখা যায়, এটি ছোট নমুনা মাপের জন্য ডিফল্টরূপে ফিশার সঠিক পরীক্ষা ব্যবহার করে। median_testমুদ্রা প্যাকেজের মধ্যে ফাংশন একটি asymptotic পরীক্ষা প্রদান বা মন্টে কার্লো ব্যবহার করতে পারেন।
সাল মঙ্গিয়াফিকো

0

আমি জানি যে এটি বেশ দেরি হয়ে গেছে, তবে আমি মুডের মিডিয়ান টেস্টের জন্য একটি ভাল প্যাকেজটি খুঁজে পাইনি, তাই আমি আর এটিকে একটি ফাংশন করার জন্য এটি নিজের উপর নিয়েছিলাম যাতে কৌশলটি মনে হয়।

#Mood's median test for a data frame with one column containing data (d),
#and another containing a factor/grouping variable (f)

moods.median = function(d,f) {

    #make a new matrix data frame
    m = cbind(f,d)
    colnames(m) = c("group", "value")


    #get the names of the factors/groups
    facs = unique(f)

    #count the number of factors/groups
    factorN = length(unique(f))


    #Make a 2 by K table that will be saved to the global environment by using "<<-":
    #2 rows (number of values > overall median & number of values <= overall median)
    #K-many columns for each level of the factor
    MoodsMedianTable <<- matrix(NA, nrow = 2, ncol = factorN)

    rownames(MoodsMedianTable) <<- c("> overall median", "<= overall median")
    colnames(MoodsMedianTable) <<- c(facs[1:factorN])
    colnames(MoodsMedianTable) <<- paste("Factor: ",colnames(MoodsMedianTable))


    #get the overall median
    overallmedian = median(d)



    #put the following into the 2 by K table:
    for(j in 1:factorN){ #for each factor level

        g = facs[j] #assign a temporary "group name"


        #count the number of observations in the factor that are greater than
        #the overall median and save it to the table
        MoodsMedianTable[1,j] <<- sum(m[,2][ which(m[,1]==g)] > overallmedian)


        #count the number of observations in the factor that are less than
        # or equal to the overall median and save it to the table
        MoodsMedianTable[2,j] <<- sum(m[,2][ which(m[,1]==g)] <= overallmedian)

    }


    #percent of cells with expected values less than 5
    percLT5 = ((sum(chisq.test(MoodsMedianTable)$expected < 5)) /
        (length(chisq.test(MoodsMedianTable)$expected)))


    #if >20% of cells have expected values less than 5
    #then give chi-squared stat, df, and Fisher's exact p.value
    if (percLT5 > 0.2) {
        return(list(
            "Chi-squared" = chisq.test(MoodsMedianTable)$statistic,
            "df" = chisq.test(MoodsMedianTable)$parameter,
            "Fisher's exact p.value" = fisher.test(MoodsMedianTable)$p.value))

    }


    #if <= 20% of cells have expected values less than 5
    #then give chi-squared stat, df, and chi-squared p.value
    if (percLT5 <= 0.2) {
        return(list(
            "Chi-squared" = chisq.test(MoodsMedianTable)$statistic,
            "df" = chisq.test(MoodsMedianTable)$parameter,
            "Chi-squared p.value" = chisq.test(MoodsMedianTable)$p.value))

    }

}

ওপির প্রশ্নের জন্য, আপনি প্রথমে আপনার তিনটি গ্রুপের ভেক্টরগুলির সাথে মিলিত "গ্রুপ" ভেরিয়েবলের সাথে মানগুলি ধরে রাখতে একটি নতুন ডেটা ফ্রেম তৈরি করতে এটি চালাবেন।

require(reshape2)
df = cbind(group1, group2, group3)
df = melt(df)
colnames(df) = c("observation", "group", "value")

এবং এর সাথে মুডের মাঝারি পরীক্ষার জন্য ফাংশনটি চালান moods.median(df$value, df$group)


দেখে মনে হয় কুরস্কাল-ওয়ালিস পরীক্ষাটিই এর উত্তর ছিল। ওপিতে 3 টি গ্রুপ সহ একটি সমাধান দরকার। এটি প্রদর্শিত হয় যে ttnphns ইতিমধ্যে মেজাজ পরীক্ষার জন্য আর কোড সরবরাহ করেছে।
মাইকেল আর চেরনিক

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