ফিশারের সঠিক পরীক্ষাটি অ-ইউনিফর্মের পি-মান দেয়


12

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

আমার সেটআপটি হ'ল: (সেটআপ 1, প্রান্তিক স্থির নয়)
0 এবং 1 এর দুটি নমুনা এলোমেলোভাবে আর এ উত্পন্ন হয় Each প্রতিটি নমুনা এন = 500, 0 এবং 1 নমুনার সম্ভাবনা সমান। তারপরে আমি ফিশারের সঠিক পরীক্ষার সাথে প্রতিটি নমুনায় 0/1 এর অনুপাতগুলি তুলনা করি (ঠিক fisher.test; একই ফলাফল সহ অন্যান্য সফ্টওয়্যারও চেষ্টা করেছি)। স্যাম্পলিং এবং পরীক্ষা 30,000 বার পুনরাবৃত্তি হয়। ফলাফলের p-মানগুলি এইভাবে বিতরণ করা হয়: পি মান বিতরণ

সমস্ত পি-মানগুলির গড়টি 0.55 এর কাছাকাছি, 0.0577 এ 5 তম শতাংশ। এমনকি বিতরণটি ডানদিকে বিচ্ছিন্ন প্রদর্শিত হবে।

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

ধন্যবাদ!


হালনাগাদ:

মাইকেল এম 0 এবং 1 এর প্রান্তিক মানগুলি ঠিক করার পরামর্শ দিয়েছিলেন এখন পি-মানগুলি অনেক সুন্দর বিতরণ দেয় - দুর্ভাগ্যক্রমে, এটি অভিন্ন নয়, বা আমি স্বীকৃত অন্য কোনও আকারের নয়:

p-vals w প্রান্তিক প্রান্তিক

আসল আর কোড যুক্ত করুন: (সেটআপ 2, প্রান্তিক স্থির)

samples=c(rep(1,500),rep(2,500))
alleles=c(rep(0,500),rep(1,500))
p=NULL
for(i in 1:30000){
  alleles=sample(alleles)
  p[i]=fisher.test(samples,alleles)$p.value
}
hist(p,breaks=50,col="grey",xlab="p-values",main="")

চূড়ান্ত সম্পাদনা:
মন্তব্যগুলিতে whuber পয়েন্ট হিসাবে, অঞ্চলগুলি কেবল বিনিংয়ের কারণে বিকৃত দেখায়। আমি সেটআপ 1 (ফ্রি মার্জিনাল) এবং সেটআপ 2 (স্থির মার্জিনাল) এর কিউকিউ প্লটগুলি সংযুক্ত করছি। অনুরূপ প্লটগুলি নীচে গ্লেনের সিমুলেশনগুলিতে দেখা যায় এবং বাস্তবে এই সমস্ত ফলাফলগুলি অভিন্ন বলে মনে হয়। সাহায্যের জন্য ধন্যবাদ!

pval-qqplot


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

1
আপনার আর কোডটি দেখার জন্য এটি কার্যকর হতে পারে।
কনজিগেটপায়ার

1
@ গ্লেনটি কোড থেকে আমার কাছে মনে হচ্ছে যে প্রতিটি পুনরাবৃত্তির ক্ষেত্রে উভয় নমুনায় 0 এবং 1s সমান সংখ্যক থাকে (অর্থাত নাল অনুমান করা উচিত) বা আমি কি ভুল?
বিডিওনোভিচ

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

2
নির্দিষ্ট বিতরণ
বাদে

উত্তর:


10

সমস্যাটি হ'ল ডেটাটি আলাদা এবং হিস্টোগ্রামগুলি প্রতারণামূলক হতে পারে। আমি কিউকিপ্লাটসের সাথে একটি সিমুলেশন কোড করেছিলাম যা আনুমানিক ইউনিফর্ম বিতরণ দেখায়।

library(lattice)
set.seed(5545)
TotalNo=300
TotalYes=450

pvalueChi=rep(NA,10000)
pvalueFish=rep(NA,10000)

for(i in 1:10000){
  MaleAndNo=rbinom(1,TotalNo,.3)
  FemaleAndNo=TotalNo-MaleAndNo
  MaleAndYes=rbinom(1,TotalYes,.3)
  FemaleAndYes=TotalYes-MaleAndYes
  x=matrix(c(MaleAndNo,FemaleAndNo,MaleAndYes,FemaleAndYes),nrow=2,ncol=2)
  pvalueChi[i]=chisq.test(x)$p.value
  pvalueFish[i]=fisher.test(x)$p.value
}

dat=data.frame(pvalue=c(pvalueChi,pvalueFish),type=rep(c('Chi-Squared','Fishers'),each=10000))
histogram(~pvalue|type,data=dat,breaks=10)
qqmath(~pvalue|type,data=dat,distribution=qunif,
       panel = function(x, ...) {
         panel.qqmathline(x, ...)
         panel.qqmath(x, ...)
       })

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন


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

দুর্দান্ত পয়েন্ট @ হুবার, আমি কিউকিপ্লিট দিয়ে আপডেট করব।
গ্লেন

2
@ শুভ, গ্লেন, অনেক ধন্যবাদ! আসলে বিনাইনটি ছলনাময়ী ছিল, কারণ কেবল গ্লেনের হিস্টোগ্রামকে আরও বিরতিতে বিভক্ত করা আমার জন্য অনুরূপ প্যাটার্ন দিয়েছে। এবং আমি আমার অনুকরণের সাথে লিনিয়ার এম্পিরিকাল সিডিএফ / কিউকিউ পাই, সুতরাং সমস্যাটি সমাধান হয়েছে বলে মনে হচ্ছে।
0-10

@ জিউড: আপনি যদি উদাহরণস্বরূপ QQplot যোগ করতে পারেন, তবে এমনকি উভয় অনুকরণের জন্য এটি অত্যন্ত প্রশংসা হবে?
মাইকেল এম

কিউকিউ প্লটগুলি সত্যই সহায়তা করে - আপনাকে ধন্যবাদ। যদিও আপনি নিজের উত্তরের প্রথম অনুচ্ছেদটি পরিবর্তন করতে চান না? আপনি কি এখনও বজায় রাখছেন যে সিমুলেশনটিতে সমস্যা আছে এবং পি-মান বিতরণে একটি "স্পাইক" আছে?
whuber
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.