paint-brush
Fikarohana Outlier: Inona no tokony ho fantatraony@nataliaogneva
54,579 HENOINA
54,579 HENOINA

Fikarohana Outlier: Inona no tokony ho fantatrao

ny Natalia Ogneva4m2024/04/23
Read on Terminal Reader
Read this story w/o Javascript

Lava loatra; Mamaky

Matetika ny mpandinika dia mahita zavatra tsy fantatra amin'ny angon-drakitra mandritra ny asany. Ny fanapahan-kevitra dia matetika mifototra amin'ny santionany midika, izay tena saro-pady amin'ny outliers. Zava-dehibe ny mitantana ireo olona tsy manan-kialofana mba handraisana fanapahan-kevitra tsara. Andeha isika handinika fomba tsotra sy haingana maromaro amin'ny fiasana amin'ny soatoavina tsy mahazatra.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Fikarohana Outlier: Inona no tokony ho fantatrao
Natalia Ogneva HackerNoon profile picture

Matetika ny mpandinika dia sendra tsy misy dikany amin'ny angon-drakitra mandritra ny asany, toy ny mandritra ny famakafakana AB-test, mamorona modely vinavina, na fanaraha-maso ny fironana. Ny fanapahan-kevitra dia matetika mifototra amin'ny santionany midika, izay tena saro-pady ny outliers ary afaka manova be ny sandany. Noho izany, zava-dehibe ny mitantana ny outliers mba handraisana fanapahan-kevitra tsara.


Andeha isika handinika fomba tsotra sy haingana maromaro amin'ny fiasana amin'ny soatoavina tsy mahazatra.

Famolavolana olana

Alaivo sary an-tsaina hoe mila manao famakafakana andrana ianao amin'ny fampiasana ny sandan'ny filaharana antonony ho metrika voalohany. Andeha hatao hoe manana fizarana ara-dalàna ny metrika ataontsika. Fantatray koa fa ny fizarana metrika ao amin'ny vondrona fitsapana dia tsy mitovy amin'ny an'ny fanaraha-maso. Raha lazaina amin'ny teny hafa, ny salan'ny fizarana amin'ny fanaraha-maso dia 10, ary amin'ny fitsapana dia 12. Ny fivilian-dàlana mahazatra amin'ny vondrona roa dia 3.


Na izany aza, ireo santionany roa ireo dia manana santionany izay manodina ny santionany sy ny santionany fivilian-dàlana.

 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))

NB fa ny fiheverana ny metrika dia mety hisy fiantraikany amin'ny andaniny roa. Raha toa ka tsy misy afa-tsy amin'ny lafiny iray ny metrikao, dia azo ovaina mora foana ny fomba hanaovana izany.

Tapaho ny rambony

Ny fomba tsotra indrindra dia ny manapaka ny fandinihana rehetra alohan'ny 5% isan-jato ary aorian'ny 95% isan-jato . Amin'ity tranga ity, very ny 10%-n'ny fampahalalana ho mpisoloky. Na izany aza, ny fizarana dia toa miforona kokoa, ary ny fotoana santionany dia akaiky kokoa ny fotoana fizarana.

 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]


Ny fomba iray hafa dia ny manilika ny fandinihana ivelan'ny faritra manokana . Ny tarika ambany dia mitovy amin'ny 25% isan-jato raha latsaka ny antsasaky ny isan'ny interquartile, ary ny tarika avo dia mitovy amin'ny 75% isan-jato miampy ny antsasany. Eto, 0,7%-n'ny vaovao ihany no ho very. Ny fizarana dia toa miforona kokoa noho ny voalohany. Ny fotoana santionany dia mitovy kokoa amin'ny fotoana fizarana.

 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

Ny fomba faharoa nodinihintsika teto dia bootstrap. Amin'ity fomba ity, ny mean dia amboarina ho toy ny mean of subsamples. Amin'ny ohatra ataontsika, ny salan'isa ao amin'ny vondrona mpanara-maso dia mitovy amin'ny 10.35, ary ny vondrona fitsapana dia 11.78. Mbola vokatra tsara kokoa izany raha oharina amin'ny fanodinana data fanampiny.

 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())

Famaranana

Zava-dehibe amin'ny fandraisana fanapahan-kevitra tsara ny fitadiavana sy ny fanodinana ivelany. Ankehitriny, fara fahakeliny fomba telo haingana sy mahitsy afaka manampy anao hanamarina ny angona alohan'ny famakafakana.


Na izany aza, ilaina ny mitadidy fa ny outliers hita dia mety ho sanda tsy mahazatra ary endri-javatra ho an'ny vokatra vaovao. Fa tantara hafa io :)