Abstimmungsanomalien bei Änderungen der russischen Verfassung. Teil 2

Link zum ersten Teil



Das Hauptziel des zweiten Teils ist es, das Phänomen der Massenzeichnung (Erfindung) von Abstimmungsergebnissen anhand spezifischer Beispiele im Detail zu untersuchen.



Wie im ersten Teil werden alle Berechnungen, Visualisierungen und Datenanalysen in Google Colab bereitgestellt, das über diesen Google Colab-Link verfügbar ist .





Warum ist es wichtig, Wahldaten massiv zu analysieren?



95 . .



-, 14 . .



-, ( ) 78 . - 8.8 . -.



.



, RUElectionData "". . .



— , . . , IT - .



, “” () . , .



“” , . . , .



:



  1. , . 327 19 , 25 . 19 . .
  2. “” . , , , 2014 2014 .
  3. 2000-2018 .


. , . . .



.



:



10 46 12 91.0 10 90.0 ( ):







43 43 79%, 78%, 75%, 74.8% 74% ( ):







60 , 72 21 '' 79.0%, 5 78.0% 4 78.9% ( ):







76 № 2 85 14 '' 75.0% 8 74.9% ( ):







22 , ‘’ 80%, 79%, 78%, 77% 75% ( ):















































, , . , , SOS .



, . () ( ):





, -, '' '' ( ):





.





, 71.1% 85.6%. (duplicates) - ds. min_n_duplicates, . total_duplicates . get_duplicates:



def get_duplicates(dq,col_name='yes_pct',min_n_duplicates=3):
       ds=pd.DataFrame(dq[col_name].values.round(1), 
       columns= [col_name]).groupby(col_name).size().to_frame('size') 
       ds=ds[ds['size']>=min_n_duplicates].sort_values(ascending=False,by='size')
       total_duplicates=ds['size'].sum()
       ds.reset_index(level=0, inplace=True)
       return total_duplicates,ds 


ds 5 №5 (size () ):





:





0.1%, . - dr : ( ) total_duplicates, pct_duplicates prob_duplicates.





, , .



, 5%. , 9%, ‘’ 7%.



n_levels=50 (10 ). n_stations=40 , n_identicals=10 , :



def get_p(n_identicals=10,n_stations=40,n_levels=50):
    bin_coeff=special.binom(n_stations, n_identicals)              
    prob=bin_coeff*(1/n_levels)**n_identicals*
   ((n_levels-1)/n_levels)**(n_stations-n_identicals)  
    return prob


, . c get_prob_duplicates:




from scipy.special import factorial
def multinomial_coeff(c): return factorial(c.sum()) / factorial(c).prod()

def get_prob_duplicates(duplicates=[10,5],n_stations=40,n_levels=50):
    n_duplicates=len(duplicates)
    sum_duplicates=sum(duplicates)
    coeffs = np.array(duplicates+[n_stations-sum_duplicates])
    mc=multinomial_coeff(coeffs)  
    prob=mc*(n_levels-n_duplicates)**(n_stations-sum_duplicates)/
    n_levels**n_stations
    return prob


. , .



, . , 0.1%.



, n_levels n_stations, , .





“” .



. .



(numpy.round(1)), 0 9. plot_first_digit . :









.



.



.



‘’ x-np.floor(x) :



yes_pct.apply(lambda x: x-np.floor(x)).hist(bins=25,grid=True)




.

x-np.round(x) :



yes_pct.apply(lambda x: x-np.round(x)).hist(bins=25,grid=True)




, . , ( -!). .



82.0% ( ), N=1021. 0.82*1021=838.2, 838. 838/1021=81.97%.



, ±1/(2N) . , . . .



, . ‘’ 100%-’’. . , .



,



. . . .



, , 2014 , 2014 , 2014 , 16 2014. . .



“”.



, , , 3 2014 . wikipedia :



-: 10 319 723 (88,7%)

-: 500 279 (4,3%)

: 372 301 (3,2%)



: 15 845 575

: 11 634 412

: 442 108 (3,8%)



:

10 , 0,00001%. , 88.70000% ~ 1/10000.



10 319 723/11 634 412 100=88.70000 %

372 301/11 634 412
100=3.10000 %

442 108/11 634 412*100=3.80000%



(1/10000)^3 = 10^(-12).



, 16 2014 (wikipedia).



: 306 258

: 274 101

« »: 262 041



274 101 306 258 — 274101/306258 = 89.500%, «» 262041 274 101 95.600%.



, , .



~ 300 000, 0,001%. , 89,500% 95,600% (1/100)^2 = 0.0001, 10 0.001 .



-.



. ( ) ‘’ ( “”) . - . . — .





, 2000 2020 2008 .





. , , . , .



. , . , () . , .



: , .



, . -, . , .



- , , . .



, , . , .



1: 50% 371 . (c )





2: 260 33 , - ( ) . 259 .



№ 259 ( 32%, "" 50.79%, "" 48.37%),№ 260 (33, 44.48, 55.11 )



(64.84%) 260 (33.5%). =64.8%-33.5=31%.



, , 259 260 ( ) , .





3: , 1108 850/1219=70%.

, 482/1219=40%. , =70-40=30%. , 7.36, « . . ».



, ( ) . , 30% 50% - - /, . , , .



, 80 90 55 . “”:"Our power comes from the perception of our power".



IT , - . ", ".



: « , , , » III; " , , ; , — » ; « , — » .



-.



, , . , - ( ), .



?



, .



, c № 2236 . -. , 99% – «».





. , . .



, , , . .



. , 2020 , .



, , .



, . , “ ”. .



Die Offenheit und Zugänglichkeit der Daten sowie die Reproduzierbarkeit der Analyseergebnisse sind wichtig. Mit der Veröffentlichung von zwei Teilen dieses Artikels habe ich genau dieses Ziel verfolgt. Wenn der Leser den Schlussfolgerungen nicht zustimmt oder dem mathematischen Modell, auf dessen Grundlage die Daten interpretiert werden, nicht vertraut, kann er anhand der angegebenen Daten und des angegebenen Codes ein eigenes Modell erstellen.




All Articles