# Is Outlier detection in two separate databases is equal to one combined database?

Suppose that we have two databases : Database_1 and Database_2 . Database_1 has 300 samples and Database_2 has 700 samples. Database_all is combination of two databases.

• Is finding outliers using abs(X-mean(X))>=1.9*std(X) in Database_all is equal to finding outliers separately in Database_1 and Database_2? In both cases we will remove same samples or not?

• Suppose that we will remove outliers with column 1 on above databases. In column 2 and 3 we have data that we want create a label for every sample like this (column_2_value-column_3_value)/mean(column_2) (mean(column_2) is average of all values in column 2) We want calculate this label for all samples after removing outliers. In this case we have same label values if we remove outliers from Database_all compare to calculate after removing outliers separately in Database_89 and Database_90?

Please mathematically prove this problem if you have time.

Thanks.

1. for the rule you're applying, identifying outliers separately is not the same as doing them combined.

Proof by counterexample:

X1:

0.9370 0.4682 1.5110 0.9823 0.7902 0.4803 2.6851 1.3149 0.8814 0.1704

^^^^


X2:

8.7947 9.5796 9.9795 9.7903 8.6101 9.5739 8.5613 9.5829 9.1885 7.6370

^^^^


The "outliers" in the individual groups are marked by ^^^^.

The combined data has no outliers.

For example, in R:

x1 =c(0.9370, 0.4682, 1.5110, 0.9823, 0.7902, 0.4803, 2.6851, 1.3149, 0.8814, 0.1704)
x2 =c(8.7947, 9.5796, 9.9795, 9.7903, 8.6101, 9.5739, 8.5613, 9.5829, 9.1885, 7.6370)

# x1 outliers at obs #:
which(abs(scale(x1)) >=1.9)
[1] 7

# x2 outliers at obs #:
which(abs(scale(x2)) >=1.9)
[1] 10

# combine data
x12=c(x1,x2)

# any combined-sample outliers?
any(abs(scale(x12)) >=1.9)
[1] FALSE

2. If I understood correctly (I found the wording confusing) the answer here is also no, since the answer in (1) was "no".