විශ්ලේෂකයින් බොහෝ විට AB-පරීක්ෂණ විශ්ලේෂණය, අනාවැකි ආකෘති නිර්මාණය කිරීම හෝ ප්රවණතා නිරීක්ෂණය කිරීම වැනි ඔවුන්ගේ වැඩ කටයුතු අතරතුර දත්තවල පිටස්තරයින් හමුවෙයි. තීරණ සාමාන්යයෙන් නියැදි මධ්යන්යය මත පදනම් වේ, එය පිටස්තරයන්ට ඉතා සංවේදී වන අතර අගය නාටකාකාර ලෙස වෙනස් කළ හැකිය. එබැවින්, නිවැරදි තීරණයක් ගැනීම සඳහා පිටස්තරයින් කළමනාකරණය කිරීම ඉතා වැදගත් වේ.
අසාමාන්ය අගයන් සමඟ වැඩ කිරීම සඳහා සරල හා වේගවත් ප්රවේශයන් කිහිපයක් සලකා බලමු.
ප්රාථමික මෙට්රික් එකක් ලෙස සාමාන්ය ඇණවුම් අගයක් භාවිතා කරමින් ඔබට අත්හදා බැලීම් විශ්ලේෂණයක් සිදු කිරීමට අවශ්ය යැයි සිතන්න. අපි කියමු අපේ මෙට්රික් සාමාන්යයෙන් සාමාන්ය ව්යාප්තියක් තියෙනවා කියලා. එසේම, පරීක්ෂණ කණ්ඩායමේ මෙට්රික් ව්යාප්තිය පාලනයට වඩා වෙනස් බව අපි දනිමු. වෙනත් වචන වලින් කිවහොත්, පාලනයේ ව්යාප්තියේ මධ්යන්යය 10 වන අතර පරීක්ෂණයේදී 12 වේ. කණ්ඩායම් දෙකෙහිම සම්මත අපගමනය 3 වේ.
කෙසේ වෙතත්, සාම්පල දෙකෙහිම නියැදි මාධ්යයන් සහ නියැදි සම්මත අපගමනය වෙනස් කරන පිටස්තර ඇත.
import numpy as np N = 1000 mean_1 = 10 std_1 = 3 mean_2 = 12 std_2 = 3 x1 = np.concatenate((np.random.normal(mean_1, std_1, N), 10 * np.random.random_sample(50) + 20)) x2 = np.concatenate((np.random.normal(mean_2, std_2, N), 4 * np.random.random_sample(50) + 1))
මෙට්රික් සලකා බැලීමේදී දෙපැත්තෙන්ම පිටස්තරයන් තිබිය හැකි බව සැ.යු. ඔබේ මෙට්රික් එක පැත්තකින් පමණක් පිටස්තර තිබිය හැකි නම්, ඒ සඳහා ක්රම පහසුවෙන් පරිවර්තනය කළ හැකිය.
පහසුම ක්රමය නම් 5% ප්රතිශතයට පෙර සහ 95% ප්රතිශතයට පසුව සියලු නිරීක්ෂණ කපා හැරීමයි. මෙම අවස්ථාවෙහිදී, අපට කොන් එකක් ලෙස තොරතුරු වලින් 10% ක් අහිමි විය. කෙසේ වෙතත්, බෙදාහැරීම් වඩාත් සෑදී ඇති බව පෙනෙන අතර, නියැදි අවස්ථා බෙදාහැරීමේ අවස්ථාවන්ට සමීප වේ.
import numpy as np x1_5pct = np.percentile(x1, 5) x1_95pct = np.percentile(x1, 95) x1_cutted = [i for i in x1 if i > x1_5pct and i < x1_95pct] x2_5pct = np.percentile(x2, 5) x2_95pct = np.percentile(x2, 95) x2_cutted = [i for i in x2 if i > x2_5pct and i < x2_95pct]
තවත් ක්රමයක් වන්නේ නිශ්චිත පරාසයෙන් පිටත නිරීක්ෂණ බැහැර කිරීමයි. පහත් කලාපය අන්තර් කාර්තු පරාසයේ 25% ප්රතිශත අඩුවෙන් එකහමාරකට සමාන වන අතර ඉහළ කලාපය 75% ප්රතිශත සහ එක භාගයට සමාන වේ. මෙහිදී අපට අහිමි වන්නේ තොරතුරු වලින් 0.7% ක් පමණි. බෙදාහැරීම් මුල් එකට වඩා සෑදී ඇති බව පෙනේ. නියැදි අවස්ථා බෙදාහැරීමේ අවස්ථාවන්ට වඩා සමාන වේ.
import numpy as np low_band_1 = np.percentile(x1, 25) - 1.5 * np.std(x1) high_band_1 = np.percentile(x1, 75) + 1.5 * np.std(x1) x1_cutted = [i for i in x1 if i > low_band_1 and i < high_band_1] low_band_2 = np.percentile(x2, 25) - 1.5 * np.std(x2) high_band_2 = np.percentile(x2, 75) + 1.5 * np.std(x2) x2_cutted = [i for i in x2 if i > low_band_2 and i < high_band_2]
අප මෙහිදී සලකා බැලූ දෙවන ක්රමය වන්නේ bootstrap එකකි. මෙම ප්රවේශයේදී මධ්යන්යය උප නියැදි මධ්යන්යයක් ලෙස ගොඩනගා ඇත. අපගේ උදාහරණයේ දී, පාලන කණ්ඩායමේ මධ්යන්යය 10.35 ට සමාන වන අතර, පරීක්ෂණ කණ්ඩායම 11.78 වේ. අතිරේක දත්ත සැකසීමට සාපේක්ෂව එය තවමත් වඩා හොඳ ප්රතිඵලයකි.
import pandas as pd def create_bootstrap_samples( sample_list: np.array, sample_size: int, n_samples: int ): # create a list for sample means sample_means = [] # loop n_samples times for i in range(n_samples): # create a bootstrap sample of sample_size with replacement bootstrap_sample = pd.Series(sample_list).sample(n = sample_size, replace = True) # calculate the bootstrap sample mean sample_mean = bootstrap_sample.mean() # add this sample mean to the sample means list sample_means.append(sample_mean) return pd.Series(sample_means) (create_bootstrap_samples(x1, len(x1), 1000).mean(), create_bootstrap_samples(x2, len(x2), 1000).mean())
නිවැරදි තීරණයක් ගැනීම සඳහා පිටතින් හඳුනා ගැනීම සහ සැකසීම වැදගත් වේ. දැන්, අවම වශයෙන් වේගවත් හා සරල ප්රවේශ තුනක් විශ්ලේෂණයට පෙර දත්ත පරීක්ෂා කිරීමට ඔබට උපකාර කළ හැක.
කෙසේ වෙතත්, අනාවරණය කරගත් පිටස්තරයන් අසාමාන්ය අගයන් සහ නව්යතා ආචරණය සඳහා ලක්ෂණයක් විය හැකි බව මතක තබා ගැනීම අත්යවශ්ය වේ. නමුත් එය වෙනත් කතාවකි :)