paint-brush
Synag derňewi üçin stratifikasiýa usulyny ulanmaktarapyndan@nataliaogneva
33,187 oka
33,187 oka

Synag derňewi üçin stratifikasiýa usulyny ulanmak

tarapyndan Natalia Ogneva
Natalia Ogneva HackerNoon profile picture

Natalia Ogneva

@nataliaogneva

Statistics lover

8 min read2024/04/19
Read on Terminal Reader
Read this story in a terminal
Print this story
Read this story w/o Javascript
Read this story w/o Javascript
tldt arrow
tk-flagTK
Bu hekaýany türkmenlerde okaň!
en-flagEN
Read this story in the original language, English!
ln-flagLN
Tanga lisolo oyo na lingala!
lo-flagLO
ອ່ານເລື່ອງນີ້ເປັນພາສາລາວ!
ps-flagPS
دا کیسه په پښتو ژبه ولولئ!
lt-flagLT
Skaitykite šią istoriją lietuvių kalba!
hr-flagHR
Pročitajte ovu priču na hrvatskom!
lv-flagLV
Izlasi šo stāstu latviešu valodā!
ht-flagHT
Li istwa sa a an kreyòl ayisyen!
hu-flagHU
Olvasd el ezt a történetet magyarul!
hy-flagHY
Կարդացեք այս պատմությունը հայերեն։
uk-flagUK
Читайте цю історію українською!
mg-flagMG
Vakio amin'ny teny malagasy ity tantara ity!
More
TK

Örän uzyn; Okamak

Gatnaşykly nusga alma, maglumatlaryň derňewinde synag netijeliligini we ölçeg duýgurlygyny ýokarlandyrmak üçin güýçli usuldyr. Tomaşaçylaryňyzy jemläp, olary belli bir agramlar bilen bölüp, synaglary optimizirläp, tapawudyny azaldyp we netijeleriň ygtybarlylygyny ýokarlandyryp bilersiňiz.

Company Mentioned

Mention Thumbnail
Empirical
featured image - Synag derňewi üçin stratifikasiýa usulyny ulanmak
Natalia Ogneva HackerNoon profile picture
Natalia Ogneva

Natalia Ogneva

@nataliaogneva

Statistics lover

0-item

STORY’S CREDIBILITY

Original Reporting

Original Reporting

This story contains new, firsthand information uncovered by the writer.


Islendik synag, çalt netijeler bilen metrik duýgurlygyň arasynda söwdany öz içine alýar. Saýlanan ölçeg tapawutlylygy taýdan giň bolsa, synagyň netijeleriniň dogrudygyny anyklamak üçin köp wagt garaşmalydyrys. Analitiklere gaty köp wagt ýa-da ölçeg duýgurlygyny ýitirmän tejribelerini güýçlendirmek üçin bir usuly gözden geçireliň.


Meseläni düzmek

Esasy reýting algoritmini barlamak üçin adaty synag geçirýäris, sessiýanyň uzynlygy esasy ölçeg hökmünde. Mundan başga-da, diňleýjilerimizi takmynan üç topara bölüp boljakdygyny göz öňünde tutuň: 1 million ýetginjek, 18-45 ýaş aralygyndaky 2 million ulanyjy we 45 we ondan ýokary ýaşly 3 million ulanyjy. Täze reýting algoritmine jogap bu diňleýjiler toparlarynyň arasynda ep-esli üýtgäp biler. Bu giň üýtgeşiklik metrikanyň duýgurlygyny peseldýär.


Başgaça aýdylanda, ilaty aşakda beýan edilen üç gatlaga bölmek bolar:

image


Her bir komponentiň adaty paýlanyşy bar diýeliň. Soňra, ilat üçin esasy ölçeg hem adaty paýlanyşa eýe.

image

Gatnaşyk usuly

Ulanyjylarymyzyň arasyndaky tapawudy göz öňünde tutman, ähli ulanyjylary klassiki synag dizaýnynda tötänleýin bölýäris . Şeýlelik bilen, nusgany aşakdaky garaşylýan baha we üýtgeşiklik bilen göz öňünde tutýarys.

image


Başga bir ýol, umumy gatlakdaky gatlagyň agramyna görä her gatyň içinde tötänleýin bölünmekdir .

image

Bu ýagdaýda garaşylýan baha we üýtgeşiklik aşakdakylardyr.

image


Garaşylýan baha birinji saýlawdaky ýalydyr. Şeýle-de bolsa, has ýokary ölçeg duýgurlygyny kepillendirýän üýtgeşiklik az.

Indi, Neýmanyň usulyna seredeliň. Ulanyjylary her gatyň içinde belli bir agram bilen tötänleýin bölmegi maslahat berýärler.

image

Şeýlelik bilen, garaşylýan baha we üýtgeşiklik bu ýagdaýda aşakdakylara deňdir.

image

Garaşylýan baha asimptotiki ýagdaýda birinji ýagdaýda garaşylýan baha deňdir. Şeýle-de bolsa, tapawut has az.

Empirik synag

Bu usulyň netijeliligini teoretiki taýdan subut etdik. Geliň, nusgalary simulasiýa edeliň we stratifikasiýa usulyny empirik synagdan geçireliň.

Üç meselä seredeliň:

  • deň serişdeleri we dürli görnüşleri bolan ähli gatlaklar,
  • dürli serişdeleri we deň ölçegleri bolan ähli gatlaklar,
  • deň serişdeleri we dürli görnüşleri bolan ähli gatlaklar.

Üç usulyň hemmesini ähli ýagdaýlarda ulanarys we deňeşdirmek üçin gistogramma we gutujyk düzeris.

Kod taýýarlamak

Ilki bilen, Pythonda üç gatdan ybarat umumy ilatymyzy şekillendirýän synp döredeliň.

 class GeneralPopulation: def __init__(self, means: [float], stds: [float], sizes: [int], random_state: int = 15 ): """ Initializes our General Population and saves the given distributions :param means: List of expectations for normal distributions :param stds: List of standard deviations for normal distributions :param sizes: How many objects will be in each strata :param random_state: Parameter fixing randomness. Needed so that when conducting experiment repeatedly with the same input parameters, the results remained the same """ self.strats = [st.norm(mean, std) for mean, std in zip(means, stds)] self._sample(sizes) self.random_state = random_state def _sample(self, sizes): """Creates a general population sample as a mixture of strata :param sizes: List with sample sizes of the corresponding normal distributions """ self.strats_samples = [rv.rvs(size) for rv, size in zip(self.strats, sizes)] self.general_samples = np.hstack(self.strats_samples) self.N = self.general_samples.shape[0] # number of strata self.count_strats = len(sizes) # ratios for every strata in GP self.ws = [size/self.N for size in sizes] # ME and Std for GP self.m = np.mean(self.general_samples) self.sigma = np.std(self.general_samples) # ME and std for all strata self.ms = [np.mean(strat_sample) for strat_sample in self.strats_samples] self.sigmas = [np.std(strat_sample) for strat_sample in self.strats_samples]


Soň bolsa, teoretiki bölümde beýan edilen üç nusga alma usuly üçin funksiýalary goşalyň.

 def random_subsampling(self, size): """Creates a random subset of the entire population :param sizes: subsample size """ rc = np.random.choice(self.general_samples, size=size) return rc def proportional_subsampling(self, size): """Creates a subsample with the number of elements, proportional shares of strata :param sizes: subsample size """ self.strats_size_proport = [int(np.floor(size*w)) for w in self.ws] rc = [] for k in range(len(self.strats_size_proport)): rc.append(np.random.choice(self.strats_samples[k], size=self.strats_size_proport[k])) return rc def optimal_subsampling(self, size): """Creates a subsample with the optimal number of elements relative to strata :param sizes: subsample size """ sum_denom = 0 for k in range(self.count_strats): sum_denom += self.ws[k] * self.sigmas[k] self.strats_size_optimal = [int(np.floor((size*w*sigma)/sum_denom)) for w, sigma in zip(self.ws, self.sigmas)] if 0 in self.strats_size_optimal: raise ValueError('Strats size is 0, please change variance of smallest strat!') rc = [] for k in range(len(self.strats_size_optimal)): rc.append(np.random.choice(self.strats_samples[k], size=self.strats_size_optimal[k])) return rc


Mundan başga-da, empirik bölüm üçin synag synagyny simulirlemek üçin elmydama bir funksiýa gerek.

 def run_experiments(self, n_sub, subsampling_method, n_experiments=1000): """Conducts a series of experiments and saves the results :param n_sub: size of sample :param subsampling_method: method for creating a subsample :param n_experiments: number of experiment starts """ means_s = [] if(len(self.general_samples)<100): n_sub = 20 if(subsampling_method == 'random_subsampling'): for n in range(n_experiments): rc = self.random_subsampling(n_sub) mean = rc.sum()/len(rc) means_s.append(mean) else: for n in range(n_experiments): if(subsampling_method == 'proportional_subsampling'): rc = self.proportional_subsampling(n_sub) elif(subsampling_method == 'optimal_subsampling'): rc = self.optimal_subsampling(n_sub) strats_mean = [] for k in range(len(rc)): strats_mean.append(sum(rc[k])/len(rc[k])) # Mean for a mixture means_s.append(sum([w_k*mean_k for w_k, mean_k in zip(self.ws, strats_mean)])) return means_s


Simulýasiýa netijeleri

Strhli gatlaklarymyzyň birmeňzeş gymmatlyklary we tapawutlary bolan umumy ilata seretsek, üç usulyň hem netijeleriniň deň ýa-da az bolmagyna garaşylýar.

image

Dürli serişdeler we deň tapawutlar has gyzykly netijeleri gazandy. Gatnaşyklary ulanmak tapawudy düýpgöter azaldar.

image

Deň serişdesi we dürli dürlüligi bolan ýagdaýlarda, Neýmanyň usulynyň üýtgemeginiň azalýandygyny görýäris.

image

Netije

Indi, metrik üýtgeýşini azaltmak we diňleýjileriňizi birleşdirseňiz we tehniki taýdan her bir toparyň içinde belli bir agram bilen tötänleýin bölseňiz, tejribe güýçlendirmek üçin stratifikasiýa usulyny ulanyp bilersiňiz!

L O A D I N G
. . . comments & more!

About Author

Natalia Ogneva HackerNoon profile picture
Natalia Ogneva@nataliaogneva
Statistics lover

HANG TAGS

BU madda öňe sürüldi...

Permanent on Arweave
Read on Terminal Reader
Read this story in a terminal
 Terminal
Read this story w/o Javascript
Read this story w/o Javascript
 Lite

Mentioned in this story

companies
X REMOVE AD