Benutzer:Rüdiger/LQFB

Aus Piratenwiki
Wechseln zu: Navigation, Suche

Quellen

Street Dog Statistiken

Sebastian Jabbusch Magisterarbeit

Sockenpuppen

Stellen wir einmal den Verdacht in den Raum, daß jemand die Kontrolle über etliche Accounts erhalten hat, und jetzt mit diesen Sockenpuppen Abstimmungen manipuliert. Dise Accounts würden dann im LQFB ein ähnliches Verhalten zeigen. In einer geeigneten Statistik würden sie als Gruppe auftauchen, die ein "ungewöhnliches" Verhalten zeigt. Eine Schwierigkeit wäre es, sie von einem normalen politischen "Flügel" zu unterscheiden.

Vorgehen

Wir nehmen den DB Dump vom 12.10 und beschränken uns auf die letzten 300 abgeschlossenen Themen. Also alle zwischen lfpp.de/t1758 und lfpp.de/t2852.

Dann definieren wir uns eine "politische Entfernungen" zwischen je zwei Accounts: Die Summe der absolute Abweichungen zwischen je zwei Stimmen (Enthaltungen zählen wie ein Ja/Nein Paar) zur gleichen Initiative geteilt durch die Anzahl aller von beiden abgestimmten Initiativen. Dabei berücksichtigen wir sowohl die direkt abgegebenen Stimmen, als auch jene durch Delegation.

Haben zwei Accounts einen Abstand von 0, haben sie zu den gleichen Inis gleich abgestimmt. Sie sind soetwas wie "politische Zwillinge" - oder Sockenpuppen.

Ein Abstand von 2 deutet an, daß fast immer genau gegensätzlich abgestimmt wurde, bzw es sehr viele Inis gibt, die nur von einem der beiden Accounts abgestimmt wurden.

Vorbereitung

Wir sammeln zunächst alle abgegebenen Stimmen

create table ext_all_votes as
select member_id,weight,issue_id,initiative_id,grade,delegated
from (
select dvo.member_id, dvo.weight,dvo.issue_id,v.initiative_id, v.grade, 1 delegated
from delegating_voter dvo join vote v on dvo.issue_id=v.issue_id and  v.member_id =dvo.delegate_member_ids[array_length(dvo.delegate_member_ids,1)]
and dvo.issue_id>=1758
union
select dv.member_id, dv.weight, dv.issue_id, v.initiative_id, v.grade, 0 delegated
from direct_voter dv join vote v  on dv.issue_id=v.issue_id and dv.member_id=v.member_id
and dv.issue_id>=1758
) Sub
order by initiative_id,member_id

Und prüfen einmal was wir haben

select count(1) votes, count(distinct member_id) member, avg(weight) weight, count(distinct issue_id) issues, count(distinct initiative_id)inis, avg(grade) grade, avg(delegated) delegated
from ext_all_votes 


Votes	Member	Weight				Issues	Inis	Grade					delegated
206538	3310	1.8563896232170351	300		506		0.38269470993231269791	0.46331909866465250947

Die 300 Themen bestanden also aus 506 Inis und wurden von 3310 Accounts abgestimmt. Ca 46% aller Stimmen wurden von Delegierten abgegeben.

Dann aggregieren wir nach Accounts

create  table ext_member_stat
as
select member_id, count(1) votes, avg(weight*1.0) weight, sum(delegated) delegated
from ext_all_votes 
group by member_id
order by 1

Und schauen uns einmal kurz an, wieviele Accounts wieviele Stimmen abgegeben haben:

select votes, count(1) member, avg(votes) votes, avg(weight) weight, avg(delegated) delegated
from ext_member_stat 
group by votes
order by 1

Rudi-membernachvotes.png

Rudi-memberCumunachvotes.png

20% aller Accounts haben also nur ein oder zwei von 506 Inis abgestimmt.

50% aller Accounts haben also nur 16 mal oder weniger von 506 Inis abgestimmt.

Die Suche

Wir berechnen die Abstände mit:

create table ext_member2member
as
select m1, m2, (diff +2.0*(ems1.votes+ems2.votes-2.0*c))/(1.0*ems1.votes+ems2.votes-c) dist, (diff*1.0/c) dist2, diff, c,ems1.votes votes1, ems2.votes votes2
from (
select v1.member_id m1, v2.member_id m2, sum(abs(v1.grade-v2.grade)) diff, count(1) c
from ext_all_votes  v1 join ext_all_votes  v2 on v1.initiative_id=v2.initiative_id
and v1.member_id<v2.member_id 
group by v1.member_id, v2.member_id ) Sub
join ext_member_stat ems1 on m1=ems1.member_id 
join ext_member_stat ems2 on m2=ems2.member_id 

insert into ext_member2member (m1,m2,dist,dist2,diff,c, votes1,votes2)
select m2, m1,dist, dist2,diff, c, votes2, votes1
from ext_member2member where m1<m2
select round(dist),1), count(1) recs, count(distinct m1) members, avg(dist) dist, avg(dist2) dist2, avg(diff) diff, avg(c) c,avg(votes1) votes, avg(votes2) votes2
from ext_member2member 
group by round(dist,1)
order by 1

Rudi-dist.png

Rudi-memberdist.png

Uns fallen die 668 Accounts auf, die einen politischen Zwilling mit (fast) identischem Abtsimmungsverhalten haben. Dies sind mögliche Sockenpuppen.

select m1, count(1) recs, count(distinct m2) members, avg(dist) dist, avg(dist2) dist2, avg(diff) diff, avg(c) c,avg(votes1) votes, avg(votes2) votes2
from ext_member2member where m1<>m2 and dist<=0.05
group by m1
order by 2 desc,6 desc

Ganz oben haben wir eine Gruppe von 26 Accounts, die einen Superdelegierten mit weit über 100 eingehenden Delgationen.

Es folgen 18 Accounts (und zwei 17er Gruppen) die alle nur einmal abgestimmt haben.

Dann 16 Accounts mit einem Superdelegierten mit weit über 100 eingehenden Delegationen.

Dann wieder einige 11er/10er Gruppen mit nur einer Stimmabgabe.

Dann eine 8er Gruppe eines Delegierten mit mehr als 50 eingehenden Delegationen. Wieder Gruppen mit nur einer Stimmabgabe.

Und noch eine 6er Gruppe, bei der der Delegierte mehr als 50 Delegationen hat.

Später bei den Gruppengrößen von 5 oder kleiner kommen noch einige offensichtliche Delegierte, und einige Accounts mit bis zu 3 Stimmabgaben.

Wenn bis zu 20% aller Delegierenden eines Delegierten, nie oder fast nie selber abstimmen und dabei von ihrem Delegierten abweichen, möchte ich eigentlich nicht von Sockenpuppen reden. Die vollständige Delegation ist in einer Liquid Democracy ein vorgesehenes und legitimes Verhalten der Teilnehmer. Das es bei Delegierten mit "Promi Faktor" auftritt ist zu erwarten.

Schauen wir uns also die Accounts mit weniger als 3 Stimmabgaben und politischem Zwilling an:

create table ext_puppen
as
select m1, count(1) recs, count(distinct m2) members, avg(dist) dist, avg(dist2) dist2, avg(diff) diff, avg(c) c,avg(votes1) votes, avg(votes2) votes2
from ext_member2member where m1<>m2 and dist<=0.05 and votes1<=3
group by m1
order by 2 desc, 8 desc 

Und bei welchen Inis abgestimmt wurde, wobei mehr als 3% der Stimmen auf unsere potentiellen Sockenpuppen entffallen

select *
from (
 select issue_id, initiative_id, count(1) member, avg(weight) weight, avg(grade) grade, (select positive_votes+negative_votes from initiative where id=eav.initiative_id) ini_votes
 from ext_all_votes eav join ext_puppen ep on eav.member_id=ep.m1 
 group by issue_id, initiative_id )Sub
 where member*1.0/ini_votes>=.03
 order by 3 desc

24 mal mit uneinheitlicher Stimmabgabe bei lfpp.de/t1867 (~400 Stimmen)

23 überwiegend für lfpp.de/t1890

14 mal uneinheitlich bei lfpp.de/t2682

10 mal überwiegend für lfpp.de/t1927

Bei 97 anderen Initiativen entfielen weniger als 3% aller Stimmen auf die potentiellen Sockenpuppen.

Die Stimmabgabe unserer potentiellen Sockenpuppen liegt damit im Trend der allgmeinen Nutzerschaft, oder hatte mit einen Einfluß von weniger als 3% auf das Ergebnis.

Damit folgere ich, daß es keine Sockenpuppen mit nennenswertem Einfluss im Bundes LQFB gibt.

Was wie Sockenpuppen aussieht, sind entweder "delegate and forget" Accounts, die aber an normale Superdelgierte delegieren, oder aber Accounts mit sehr wenig Abstimmungen, die entweder bei der einzelnen Ini kaum abstimmen, oder aber im Trend abstimmen.

Feature Ideen

Delegationsempfehler

Mit vergleichbaren Abstimmungsverhalten

LQFB Bugtracker Das kann Feature kann man nur ausprobieren, wenn man sich den DB Dump lädt, und in einen PostgreSQL Server einspielt. Dann die vorgeschlagene Prozedur anlegen und mit der eigenen member_id und einer area_id aufrufen.

ggf Schalter ob nur "direct_voter" oder auch die transitiv weiterdelegierten Votes

Nach Abstimmung zu kontroversen Inis

[ http://dev.liquidfeedback.org/trac/lf/ticket/1240 LQFB Bugtracker ]

Kann man vermutlich auch asynchron anbieten. Sich also irgendeinen Code basteln, der da statisches HTML (oder Wiki) generiert, daß man mal einfach irgendwo hinlegt.

Liste der Top Delegierten

[ http://dev.liquidfeedback.org/trac/lf/ticket/1309 LQFB Bugtracker ]

Auf den PTs

Welche Annahmewahrscheinlichkeit haben die im LQFB entwickelten Anträge auf den Parteitagen ? 100% ist es nicht.


Chemnitz

LQFB BPT Anträge In Prozent (als Bruch)
ok ok 20 77% (20/26)
ok abgelehnt 6 33 %
nein ok 3 30% (3/10)
nein abgelehnt 7 70%
Quorum nicht erreicht ok 3 100% (3/3)
Quorum nicht erreicht abgelehnt 0 0%
ohne LQFB ok 9 56% (9/16)
Ohne LQFB abgelehnt 7 44%

Mit Dank an Sebastian



Offenbach

Gruppe Anträge davon in Offenbach angenommen Erfolgsquote
Antragsfabrik 21 8 38%
LQFB angenommen 17 9 53%
3 oder mehr Antragsteller 9 4 44%
Antrag von AG 4 3 75%
LQFB abgelehnt oder Quorum ne 4 0 0%
von Einzel Pirat 39 17 44% (8 Anträge von 17 zurückgezogen!)
mehr als eine Gruppe 8 6 75%
Alle Anträge in Offenbach 79 33 42%


Quelle waren die beiden inoffiziellen Ergebnislisten die hier http://wiki.piratenpartei.de/Bundesparteitag_2011.2 verlinkt sind. Danach bin ich durch das Antragsportal gesurft, um mir die entsprechenden Infos zusammen zu suchen. Datei:Bpt20112.ods

LPTNDS in Delmenhorst

Hauptquelle waren die Ergebnisse des ELWS Verfahrens aus NDS:Landesparteitag/2012.3 , die ich anhand des Protokolls ergänzt habe. Es wurden bis kurz vor Beginn des LPTs Anträge eingereicht, was teilweise auf Missmut stieß. Anträge die während des LPTs heftig bearbeitet wurden, habe ich nicht in die Auswertung aufgenommen, da mich ja primär der Weg vor einem PT interessiert.

Mein Arbeitssheet (Open Office) liegt hier Datei:NDS-LPT-2012.3-ELWS-extended.ods

Gruppe Anträge davon behandelt davon angenommen ELWS Meinungsbild
Die zuerst eingereichten P001-P060 60 14 11 (78%) 71%
Die zweiten P061-P120 60 20 17 (85%) 75%
Die dritten P121-P180 60 21 19 (90%) 71%
Die zuletzt eingereichten P181-P240 60 21 18 (85%) 75%
Alle Anträge 240 77 65 (84%) 73%

Zu Beginn der Veranstaltung wurden Anträge im Losverfahren auf die TO gesetzt. Nach der Auszählung wurde im zweiten Teil das ELWS Verfahren angewendet.

Gruppe Anträge davon behandelt davon angenommen ELWS Meinungsbild
Los . 28 19 (67%) 74%
ELWS . 48 46 (95%) 89%

LQFB Inis habe ich nur für die behandelten Anträge rausgesucht

Gruppe Anträge davon behandelt davon angenommen ELWS Meinungsbild
Im LQFB abgelehnt oder Quorum n.e. . 4 3 (75%) 77%
Im LQFB angenommen . 27 24 (88%) 86%

Da zweitweise die TO gelost wurde, kann man das EWLS Meinungsbild ebenfalls zur Gruppenbildung nutzen:

Gruppe Anträge davon behandelt davon angenommen ELWS Meinungsbild
ELWS Meinungsbild >=85% 59 57 55 (96%) 90%
65%<=ELWS Meinungsbild <85% 107 10 6 (60%) 76%
ELWS Meinungsbild <65% 69 9 4 (44%) 56%

Nach Typus des/der Antragssteller

Gruppe Anträge davon behandelt davon angenommen ELWS Meinungsbild
AG 21 9 8 (88%) 80%
Sonstige Gruppen 39 14 10 (71%) 84%
Einzel Piraten 175 53 45 (84%) 72%