![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Analitikler köplenç AB-synag derňewi, çaklaýyş modellerini döretmek ýa-da yzarlamak tendensiýalary ýaly maglumatlaryň dowamynda köplenç çykyş edýärler. Kararlar, adatça, çykýanlara gaty duýgur we bahasyny düýpgöter üýtgedip biljek ortaça nusga esaslanýar. Şeýlelik bilen, dogry karar bermek üçin çykyş edýänleri dolandyrmak gaty möhümdir.
Adaty bolmadyk gymmatlyklar bilen işlemek üçin birnäçe ýönekeý we çalt çemeleşmä seredeliň.
Esasy ölçeg hökmünde ortaça sargyt bahasyny ulanyp, synag derňewini geçirmelidigini göz öňüne getiriň. Metrikimiziň adatça adaty paýlanyşy bar diýeliň. Şeýle hem, synag toparyndaky ölçeg paýlanyşynyň dolandyryşdakydan tapawutlydygyny bilýäris. Başgaça aýdylanda, gözegçilikde paýlanyşyň ortaça 10, synagda bolsa 12-dir. Iki toparda standart gyşarmak 3.
Şeýle-de bolsa, iki nusgada-da nusga serişdelerini we nusga standart gyşarmany gözden geçirýänler bar.
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))
Metrik göz öňünde tutulanda , iki tarapdanam çykyş edip biler. Ölçegiňizde diňe bir tarapdan çykyş edip bilýän bolsa, usullar aňsatlyk bilen üýtgedilip bilner.
Iň aňsat usul , 5% göterimden öň we 95% göterimden soň ähli gözegçilikleri kesmekdir. Bu ýagdaýda maglumatlaryň 10% -ini ýitirdik. Şeýle-de bolsa, paýlamalar has emele gelýär we nusga pursatlary paýlaýyş pursatlaryna has ýakyn.
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]
Anotherene bir usul, gözegçilikleri belli bir çäkden çykarmakdyr. Pes zolak, toparara aralygyň 25% minus minusynyň ýarysyna, ýokary zolak bolsa 75% göterim we ýarysyna deňdir. Bu ýerde maglumatlaryň diňe 0.7% -ini ýitireris. Paýlamalar ilkibaşdan has emele gelýär. Mysal pursatlary paýlanyş pursatlaryna hasam deňdir.
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]
Bu ýerde göz öňünde tutan ikinji usulymyz, bootstrap. Bu çemeleşmede, ortaça nusgalar ýaly gurulýar. Mysal üçin, gözegçilik toparyndaky ortaça 10.35, synag topary bolsa 11,78 deňdir. Goşmaça maglumatlary gaýtadan işlemek bilen deňeşdirilende has gowy netije.
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())
Dogry karar bermek üçin daşarky kesgitlemek we gaýtadan işlemek möhümdir. Indi, azyndan üç çalt we gönümel çemeleşme, derňewden ozal maglumatlary barlamaga kömek edip biler.
Şeýle-de bolsa, ýüze çykarylanlaryň adaty bolmadyk gymmatlyklar we täzelik effekti bolup biljekdigini ýatdan çykarmaly däldiris. Anotheröne başga bir hekaýa :)