আরোহী ক্রম অনুসারে স্বতন্ত্র পরীক্ষাগুলি থেকে উত্পন্ন পি-মানগুলির একটি তালিকা দেওয়া, একাধিক পরীক্ষার সংশোধনের জন্য বেনজামিনী-হচবার্গ পদ্ধতি ব্যবহার করতে পারেন । প্রতিটি পি-মানের জন্য, বেনজামিনী-হচবার্গ পদ্ধতি আপনাকে প্রতিটি পি-মানগুলির জন্য মিথ্যা আবিষ্কারের হার (এফডিআর) গণনা করতে দেয়। এটি হ'ল পি-মানগুলির বাছাই করা তালিকার প্রতিটি "পজিশনে" আপনাকে জানাবে যেগুলির অনুপাতটি নাল অনুমানের মিথ্যা প্রত্যাখ্যান হওয়ার সম্ভাবনা রয়েছে।
আমার প্রশ্ন হ'ল এই এফডিআর মানগুলি কি " কিউ-মান ", বা " সংশোধিত পি-মান " বা পুরোপুরি অন্য কিছু হিসাবে উল্লেখ করা যেতে পারে ?
সম্পাদনা 2010-07-12: আমি সংশোধন পদ্ধতিটি আমরা ব্যবহার করছি আরও পুরোপুরি বর্ণনা করতে চাই। প্রথমত, আমরা পরীক্ষার ফলাফলগুলিকে ক্রমবর্ধমান ক্রম অনুসারে তাদের অ-সংশোধন করা মূল পি-মান অনুসারে বাছাই করি। তারপরে, আমরা তালিকাটির উপরে পুনরাবৃত্তি করি, "এফডিআর প্রত্যাশিত হিসাবে আমি কী ব্যাখ্যা করছি তা গণনা করে আমরা যদি এই তালিকাটির পূর্বে নাল অনুমান এবং প্রত্যাখ্যানের সমান একটি আলফা সহ বিএইচ সংশোধন ব্যবহার করে" পরীক্ষার পূর্বে সমস্ত পরীক্ষাগুলি প্রত্যাখ্যান করি তবে , সম্পর্কিত পুনরাবৃত্তির জন্য অ-সংশোধিত পি-মান। এরপরে আমরা একঘেয়েত্ব রক্ষার জন্য আমাদের "কিউ-মান", যা সংশোধন করা হয়েছে তার সর্বাধিক (পুনরাবৃত্তি i - 1) এ সর্বাধিক সংশোধিত মান (বর্তমান সময়ে মান) এ বা গ্রহণ করি as
নীচে কিছু পাইথন কোড রয়েছে যা এই পদ্ধতিটি উপস্থাপন করে:
def calc_benjamini_hochberg_corrections(p_values, num_total_tests):
"""
Calculates the Benjamini-Hochberg correction for multiple hypothesis
testing from a list of p-values *sorted in ascending order*.
See
http://en.wikipedia.org/wiki/False_discovery_rate#Independent_tests
for more detail on the theory behind the correction.
**NOTE:** This is a generator, not a function. It will yield values
until all calculations have completed.
:Parameters:
- `p_values`: a list or iterable of p-values sorted in ascending
order
- `num_total_tests`: the total number of tests (p-values)
"""
prev_bh_value = 0
for i, p_value in enumerate(p_values):
bh_value = p_value * num_total_tests / (i + 1)
# Sometimes this correction can give values greater than 1,
# so we set those values at 1
bh_value = min(bh_value, 1)
# To preserve monotonicity in the values, we take the
# maximum of the previous value or this one, so that we
# don't yield a value less than the previous.
bh_value = max(bh_value, prev_bh_value)
prev_bh_value = bh_value
yield bh_value