paint-brush
Ús del mètode d'estratificació per a l'anàlisi de l'experimentper@nataliaogneva
33,187 lectures
33,187 lectures

Ús del mètode d'estratificació per a l'anàlisi de l'experiment

per 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
ca-flagCA
Llegeix aquesta història a Català!
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
CA

Massa Llarg; Per llegir

El mostreig estratificat és una tècnica potent per augmentar l'eficiència de l'experiment i la sensibilitat mètrica en l'anàlisi de dades. En agrupar el vostre públic i dividir-los amb pesos específics, podeu optimitzar els experiments, reduir la variància i millorar la fiabilitat dels resultats.

Company Mentioned

Mention Thumbnail
Empirical
featured image - Ús del mètode d'estratificació per a l'anàlisi de l'experiment
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.


Qualsevol experiment implica una compensació entre resultats ràpids i sensibilitat mètrica. Si la mètrica escollida és àmplia pel que fa a la variància, haurem d'esperar molt de temps per garantir que els resultats de l'experiment siguin precisos. Considerem un mètode per ajudar els analistes a augmentar els seus experiments sense perdre massa temps o sensibilitat mètrica.


Formulació del problema

Suposem que realitzem un experiment estàndard per provar un nou algorisme de classificació, amb la durada de la sessió com a mètrica principal. A més, tingueu en compte que el nostre públic es pot classificar aproximadament en tres grups: 1 milió d'adolescents, 2 milions d'usuaris de 18 a 45 anys i 3 milions d'usuaris de 45 anys o més. La resposta a un nou algorisme de classificació variaria significativament entre aquests grups de públic. Aquesta gran variació redueix la sensibilitat de la mètrica.


És a dir, la població es pot dividir en tres estrats, que es descriuen a continuació:

image


Diguem que cada component té una distribució normal. Aleshores, la mètrica principal de la població també té una distribució normal.

image

Mètode d'estratificació

Dividim aleatòriament tots els usuaris de la població en un disseny experimental clàssic sense tenir en compte les diferències entre els nostres usuaris. Per tant, considerem la mostra amb el valor esperat i la variància següents.

image


Una altra manera és dividir aleatòriament dins de cada estrat segons el pes de l'estrat a la població general.

image

En aquest cas, el valor esperat i la variància són els següents.

image


El valor esperat és el mateix que a la primera selecció. Tanmateix, la variància és menor, cosa que garanteix una major sensibilitat mètrica.

Ara, considerem el mètode de Neyman . Suggereixen dividir els usuaris aleatòriament dins de cada estrat amb pesos específics.

image

Per tant, el valor esperat i la variància són iguals als següents en aquest cas.

image

El valor esperat és igual al valor esperat en el primer cas de manera asimptòtica. Tanmateix, la variació és molt menor.

Prova empírica

Hem demostrat l'eficiència d'aquest mètode teòricament. Simulem mostres i testem empíricament el mètode d'estratificació.

Considerem tres casos:

  • totes les estrats amb mitjanes i variàncies iguals,
  • totes les estrats amb mitjanes diferents i variacions iguals,
  • totes les estrats amb mitjanes iguals i diferents variacions.

Aplicarem els tres mètodes en tots els casos i traçarem un histograma i un diagrama de caixa per comparar-los.

Preparació del codi

Primer, creem una classe en Python que simuli la nostra població general que consta de tres estrats.

 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]


A continuació, afegim funcions per als tres mètodes de mostreig descrits a la part teòrica.

 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


A més, per a la part empírica, sempre necessitem una funció per simular el procés d'experimentació.

 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


Resultats de la simulació

Si mirem la població general, on tots els nostres estrats tenen els mateixos valors i variàncies, s'espera que els resultats dels tres mètodes siguin més o menys iguals.

image

Mitjanes diferents i variacions iguals van obtenir resultats més emocionants. L'ús de l'estratificació redueix dràsticament la variància.

image

En casos amb mitjanes iguals i variàncies diferents, veiem una reducció de la variància en el mètode de Neyman.

image

Conclusió

Ara, podeu aplicar el mètode d'estratificació per reduir la variància de la mètrica i augmentar l'experiment si agrupeu el vostre públic i els dividiu tècnicament de manera aleatòria dins de cada clúster amb pesos específics.

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

About Author

Natalia Ogneva HackerNoon profile picture
Natalia Ogneva@nataliaogneva
Statistics lover

Etiquetes penjant

AQUEST ARTICLE VA SER PRESENTAT A...

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