title | breaks | robots | lang |
---|---|---|---|
Test file for hackmd-cli issue |
false |
noindex, nofollow |
de-CH |
-
add function to convert
administrative areas
tomunicipalities
and adaptcreate_bern_data()
accordingly- Übersicht über Verwaltungskreise
- evtl. könnte dafür der BFS-Webservice (siehe weiter unten) genutzt werden!
-
Bei Staatskanzlei BE anfragen, ob sie die Zahl der brieflich und an der Urne eingelangten E-Voting-Ausweiskarten von Auslandschweizerinnen und Auslandschweizern auch separiert nach Stimmkanal haben (vermutlich nicht...)
-
Gemäss Sebastian Fankhauser (E-Mail vom 2017-08-25) sind "ab dem Jahr 2019 erste Testversuche geplant für e-Election", sprich das Anbieten von E-Voting bei Wahlen. Sobald es soweit ist, sollte ein entsprechender Eintrag für
is_e_voting_available_for_elections
incantonal_characteristics
erstellt werden!
-
Seit der Abstimmung vom 5. Juni 2016 sind in Basel-Stadt Inlandschweizer mit einer Behinderung zum I-Voting zugelassen. Konkret können sich "Stimmberechtigte, welche eine IV-Rente (IV) oder eine Hilflosenentschädigung (HE) beziehen" bzw. "Stimmberechtigte, welche mit einem ärztlichen Attest belegen, dass sie die Stimme auf konventionellem Weg nicht ohne fremde Hilfe abgeben können" fürs I-Voting registrieren.
- Die Behinderten können zusätzlich auf kantonaler und Gemeindeebene elektronisch abstimmen! Damit stimmen streng genommen die Werte unter
referendum_level
(und allenfallselection_level
) seit dem 2016-06-05 dort nicht mehr, wo es auch Vorlagen auf Kantons- und Gemeindebene gab (mein Vorgänger hat diese Ebenen jeweils miteinbezogen, ohne allerdingsgroup
anzupassen, was nat. kreuzfalsch ist)! Zudem stimmt dort streng genommen auchis_entire_group_in_all_votes = TRUE
nicht! - Es könnte eine neue Ausprägung der Variable
group
geschaffen werden – etwa mit dem Code0
und einemgroup_name
à laSwiss citizens living abroad and handicapped Swiss citizens living in Switzerland
; allerdings wäre fraglich, ob bei diesen Einträgen auchis_preregistration_required
aufTRUE
gesetzt werden sollte (gilt ja nur für die behinderten InlandschweizerInnen). - Das grundsätzliche Problem der fehlenden Aufteilung der Zahlen zwischen AuslandschweizerInnen und behinderten InlandschweizerInnen wird dadurch nicht gelöst! - Am besten wäre, der Kanton würde uns detailliertere Ergebnisse bereitstellen inkl. der Aufschlüsselung der abgegebenen Stimmen nach
group
, sodass für BS jeweils 2 Einträge vorgenommen werden könnten: Einmal fürSwiss citizens living abroad
und einmal fürhandicapped Swiss citizens living in Switzerland
(mitgroup
-Code0
oder so).
- Die Behinderten können zusätzlich auf kantonaler und Gemeindeebene elektronisch abstimmen! Damit stimmen streng genommen die Werte unter
-
Der Kanton plant die Ausdehnung des E-Votings auf alle Stimmberechtigten:
Voraussichtlich bei der Abstimmung vom 4. März 2018 werden 50 Prozent der Stimmberechtigten elektronisch abstimmen können. Die Ausweitung auf alle Stimmberechtigten
soll bis 2019 erfolgen.soll "demnächst" erfolgen.-
Der Wechsel war scheinbar für den März 2018 geplant (S. 11).
-
Dabei wird ein Wechsel auf das E-Voting-System der Schweizerischen Post stattfinden.
-
Das Ganze hat offensichtlich noch nicht (Stand 2018-09-23) stattgefunden; es nahmen nach wie vor nur die behinderten InlandschweizerInnen elektronisch teil! Vielleicht hat die Verzögerung mit dem Rekurs des Kantons GE zu tun?
-
-
FR-Einträge anhand der PDF-Berichte zur E-Voting-Nutzung vervollständigen (
postal_votes
undelectorate
) und Leitfaden um Angaben zum Mapping der Zahlen erweitern.Offene Fragen und Beobachtungen:
- Zählen wir ungültige Stimmzettel in
postal_votes
mit oder nicht? (Die ZahlUngültig (Brieflich)
scheint (meist) inMöglichkeit per Vote électronique aber Brieflich abgestimmt
enthalten, ersichtlich etwa am Bericht vom2014-05-18
).
Im Bericht vom2010-11-28
istUngültig (Brieflich)
offenbar inBrieflich eingereichte Stimmzettel
enthalten, in jenem vom2010-09-26
hingegen nicht! - Bis zum
2013-11-24
istEingelegte Stimmzettel
kleiner alsVote électronique
plusMöglichkeit per Vote électronique aber Brieflich abgestimmt
. Woher stammen die restlichen Stimmzettel?- Es könnte mit der Aufhebung der Wassenaar-Übereinkunft (ab 2014) zusammenhängen, sodass sich
Eingelegte Stimmzettel
auf das gesamte Auslandschweizer-Elektorat bezieht und jene aus nicht-E-Voting-berechtigten Wassenaar-Staaten miteinbezieht. --> Am wahrscheinlichsten! Das bedeutete aber auch, dassis_wassenaar_corrected
aufFALSE
gesetzt werden müsste für die entsprechenden Einträge (momentan nicht der Fall)! - Es könnte auch sein, dass die Zahl
Ungültig (Brieflich)
bis dahin nicht inMöglichkeit per Vote électronique aber Brieflich abgestimmt
enthalten war und die zusätzliche DifferenzEingelegte Stimmzettel - Vote électronique + Möglichkeit per Vote électronique aber Brieflich abgestimmt + Ungültig (Brieflich)
auf leere Stimmzettel zurückzuführen ist.
Dafür spräche, dass in den Berichten vom2011-05-15
und2011-02-13
die SummeVote électronique + Möglichkeit per Vote électronique aber Brieflich abgestimmt + Ungültige und leere
genau der ZahlEingelegte Stimmzettel
entspricht. - In den Berichten vom
2010-11-28
und2010-09-26
ist neben der ZahlMöglichkeit per Vote électronique aber Brieflich abgestimmt
zusätzlich die ZahlBrieflich eingereichte Stimmzettel
aufgeführt (Differenz kommt offenbar aufgrund der Wassenaar-Staaten zustande). Diese Zahl ist für uns nicht relevant, richtig?
- Es könnte mit der Aufhebung der Wassenaar-Übereinkunft (ab 2014) zusammenhängen, sodass sich
- Angabe
Möglichkeit per Vote électronique aber Brieflich abgestimmt
fehlt in den Berichten vom2012-06-17
und2012-03-11
! - Mit der E-Voting-Wiederaufnahme am
2016-11-27
hat die Struktur des Berichtes völlig geändert. Im neuen Bericht sind keine expliziten Zahlen zur Anzahl brieflicher Stimmen mehr enthalten. Da aber in den 6 Berichten zuvorpostal_votes = votes - e_votes
war, sollte dies nicht weiterhin gelten? - Bericht fehlt gänzlich für folgendes Datum:
2013-03-03
- Zählen wir ungültige Stimmzettel in
-
Kommunale Daten hinterfragen! Wieso gibt es bspw. für 2016-02-28 zwei separate Registerdatensätze, einen für die föderal/kantonalen Abstimmungen (
cv201610
) und einen für die kommunalen Abstimmungen in Genf (cv201610_21
)?Vermutung: Die Registerdaten korrespondieren mit den Abstimmungszetteln, die wiederum separat gezählt werden, einmal für die föderal/kantonalen und einmal für die kommunalen Abstimmungen.
Würde das bedeuten, dass unsere Variablen
referendum_level
undelection_level
jeweils nicht ganz stimmen bzw. deren Werte teilweise korrigiert werden müssten? Glaube nicht (uff!), siehe bspw.:backup_data$data_main %>% dplyr::filter(canton == "Geneva" & date == "2016-11-27" & municipality == "Genève") %>% View()
Trotzdem den Code bei Gelegeneheit genau checken!
-
Kommunale Abstimmungen/Wahlen nachtragen
- REDACTED hat die Daten beim Kanton angefordert!
Nachdem die Daten eingetroffen sind:- Die Variable
source
der betreffenden Einträge in den auxiliary datasets aufData provided by the canton of Geneva
setzen! - Google worksheet
cantonal_auxiliary_dataset
undmunicipal_auxiliary_dataset
um entsprechende Einträge ergänzen. -
GE_filenames_and_vote_dates.csv
undGE_municipality_district_codes_and_names.csv
auf Basis der neuen Version des GE-Codebooks (Liste des variables et liste des votations.xlsx
) aktualisieren.GE_municipality_district_codes_and_names.csv
: im 2017-09-24-Datensatz hat Carouge die zweidistrict_code
s00
und01
; das ist äusserst suspekt, da Aufteilungen normalerweise in aufsteigenden Zahlen (01
und02
) erfolgen! -> De Faveri fragen!
- Unterstützung in
i_voting_dataset_add_new_data.Rmd
für separate kommunale Datensätze fertigstellen (Basis ist bereits gelegt).
- Die Variable
- An den folgenden Daten sind die
foreigners living in Switzerland
(sind in GE nur auf kommmunaler Ebene stimmberechtigt) in unseren Daten enthalten, sonst nicht:2010-11-28 2011-05-15 2011-11-27 2013-06-09 2013-09-22 2013-11-24 2015-04-19 2015-05-10
- Abklären, ob die Daten damit bis zum
2013-11-24
vollständig sind. - Die fehlenden AusländerInnen nachtragen (mit Sicherheit fehlen sie nach dem
2013-11-24
).
- Abklären, ob die Daten damit bis zum
- REDACTED hat die Daten beim Kanton angefordert!
-
Es scheint am
2011-11-27
die eidgenössische Wahl und am2012-06-17
die kantonale Wahl zu fehlen. Einfachtype
etc. anpassen und gut ist? -
Die kantonale und kommunale (Meyrin) Wahl vom
2011-05-15
fehlt bislang. -
Evtl. bei Auslandschweizern in GE die Ausprägung
"all"
inmunicipality
ersetzen durch"none"
undi_voting_dataset_add_new_data.Rmd
entsprechend anpassen. Vgl.I-Voting-Datensatz – REDACTEDs Fragen & Beobachtungen.md
.
-
Am 24. September 2017 werden die vier Gemeinden Goldach, Kirchberg, Rapperswil-Jona und Vilters-Wangs
sowie die Stadt St. Gallenin einer Pilotphase E-Voting anbieten nach dem Genfer System.- Zudem können alle St. Galler Auslandschweizer via Internet abstimmen.
- Die fünfte Pilotgemeinde Widnau steigt erst bei der nächsten Abstimmung ein, weil zusätzlich eine Wahl stattfindet. seit Juni 2018 ist E-Voting auch in Widnau möglich
-
REDACTED: Beim Kanton SG anfragen, ob die für uns relevanten Zahlen (insb. der Pilotgemeinden) zentral verfügbar sind; falls nicht, ob wir immerhin jene zu den Auslandschweizern haben könnten (sollten ja grundsätzlich gut organisiert sein wie der Einsatz von OneGov zeigt).
Evtl. unterREDACTED hat angefragtevoting@sg.ch
oder einfach bei der Staatskanzlei. -
Zahlen von Kirchberg überprüfen, sobald die Abstimmungsprotokolle per Mail eingetroffen sind
Beginnend mit dem Abstimmungstermin vom 23. September 2018 wird der Kanton Thurgau nach längerer Pause wieder E-Voting-Versuche für Auslandschweizer durchführen, basierend auf dem System der Post.
-
Man könnte beim Kanton bzw. dessen Statistikamt anfragen, ob detailliertere Zahlen zum elektronischen Stimmkanal vorhanden sind.
-
Zürich plant die flächendeckende Einführung von E-Voting für "ca. 2022".
-
Die Stadt Zürich führt seit Herbst 2014 im Auftrag des Kantons Zürich das Stimmregister der AuslandschweizerInnen.
Siehe das Faktenblatt – Vote électronique vom 05.04.2017 für weitere Informationen über die E-Voting-Ausweitungspläne der einzelnen Kantone.
-
2016-09-25
- GE: Einträge sind noch provisorisch...
-
2016-11-27
- GE: Einträge sind noch provisorisch...
-
2017-02-12
- GE: Einträge sind noch provisorisch...
-
2017-04-02
- NE: Daten fehlen (bislang nicht angefordert; kantonale Wahlen)
- gleich noch fragen, ob an den folgenden Daten tatsächlich kein E-Voting zur Verfügung stand (es existieren keine entsprechenden Seiten unter https://www.ne.ch/autorites/CHAN/CHAN/elections-votations/stat/Pages/*)
2006-02-12
(kommunale Abstimmung)2006-04-02
(kommunale Abstimmung)2006-06-11
(kommunale Wahlen)2006-08-27
(kommunale Wahl)2006-10-29
(kommunale Abstimmung)2007-02-04
(kommunale Wahl)2007-07-01
(kommunale Abstimmung)2007-09-23
(kommunale Abstimmungen & Wahlen)2007-12-09
(kommunale Abstimmungen)2008-09-28
(kommunale Abstimmungen)2009-06-21
(kommunale Abstimmung)2010-04-18
(kommunale Abstimmung)2010-06-20
(kommunale Abstimmung)2011-05-15
(kommunale Abstimmungen)2012-08-26
(kommunale Abstimmung)2012-10-14
(kantonale Wahl)2015-04-19
(kommunale Wahl)2016-04-03
(kommunale Abstimmung)2016-04-24
(kommunale Abstimmung)2016-10-23
(kommunale Wahlen)2017-06-18
(kommunale Wahl)
- gleich noch fragen, ob an den folgenden Daten tatsächlich kein E-Voting zur Verfügung stand (es existieren keine entsprechenden Seiten unter https://www.ne.ch/autorites/CHAN/CHAN/elections-votations/stat/Pages/*)
- NE: Daten fehlen (bislang nicht angefordert; kantonale Wahlen)
-
2017-05-21
- GE: Einträge sind noch provisorisch...
-
2017-09-24
- GE: Einträge sind noch provisorisch...
- FR
- beginnend mit dem
2017-09-24
können auch Inlandschweizer der Gemeinde Treyvaux e-voten; momentan haben wir nur einen Aggregatseintrag: ist bei diesemis_preregistration_required
nach wie vorFALSE
? - zudem gab es Wahlen in der Gemeinde Montagny; konnte dort e-votet werden? falls ja, Eintrag anpassen!
- beginnend mit dem
-
2018-03-04
- SG: Ausland-CH
- GE
-
2018-06-10
- SG: Ausland-CH
- alle
-
2018-09-23
- SG: Ausland-CH
- alle
-
2018-11-25
- SG: Ausland-CH
- alle
-
2019-02-10
- SG: Ausland-CH
- alle
-
2019-03-10
(Ständeratsersatzwahl in SG)- SG: Widnau
-
2019-05-19
- alle
cantonal_auxiliary_dataset
- komplettierte Kantone:
- NE
- komplettierte Kantone:
municipal_auxiliary_dataset
- komplettierte Kantone:
- NE
- komplettierte Kantone:
-
swissevote um Funktion ergänzen zur Überprüfung, ob Daten vollständig sind. Snippet:
googlesheet_data$data_auxiliary_cantonal %>% dplyr::filter(is_e_voting_available) %>% dplyr::group_by(canton) %>% dplyr::summarise(date, .groups = "drop") %>% dplyr::union(googlesheet_data$data_auxiliary_municipal %>% dplyr::filter(is_e_voting_available) %>% dplyr::group_by(canton) %>% dplyr::summarise(date, .groups = "drop")) %>% dplyr::setdiff(googlesheet_data$data_main %>% dplyr::group_by(canton) %>% dplyr::summarise(date, .groups = "drop"))
-
Ausstehende Überprüfung, ob unsere Zahlen korrekt
e_voting_electorate
zugeordnet wurden (stattelectorate
):- GE für die folgenden nicht-föderalen Abstimmungstermine (mangels BK-Zahlen kann kein Vergleich angestellt werden; angesichts der Höhe der Zahlen scheint es aber äusserst wahrscheinlich, dass die Zahlen
e_voting_electorate
und nichtelectorate
wiedergeben):2003-01-19 2003-11-30 2004-04-18 2004-06-13 2004-10-24 2005-04-24 2011-05-15 2011-11-27 2012-10-14 2012-11-04 2015-04-19 2015-05-10
- NE für die folgenden nicht-föderalen Abstimmungstermine (mangels BK-Zahlen kann kein Vergleich angestellt werden; angesichts der Höhe der Zahlen scheint es aber äusserst wahrscheinlich, dass die Zahlen
electorate
und nichte_voting_electorate
wiedergeben; sie wurden daher mittlerweileelectorate
zugeordnet):2005-10-30 2010-01-17 2011-06-19 2011-11-27 2013-04-14 2013-04-28 2013-05-19
- ZH für die folgenden nicht-föderalen Abstimmungstermine (mangels BK-Zahlen kann kein Vergleich angestellt werden; angesichts der Höhe der Zahlen scheint es aber äusserst wahrscheinlich, dass die Zahlen
e_voting_electorate
und nichtelectorate
wiedergeben):2005-10-30 2006-04-02 2007-11-25 2008-09-28 2010-04-25 2010-06-13 2011-09-04 2011-11-27
- GE für die folgenden nicht-föderalen Abstimmungstermine (mangels BK-Zahlen kann kein Vergleich angestellt werden; angesichts der Höhe der Zahlen scheint es aber äusserst wahrscheinlich, dass die Zahlen
-
Zusätzliche Validitätschecks
- Einsatz der folgenden R-Pakete prüfen:
validate
ensurer
assertr
- Blogpost über neuste Version: Data validation with the assertr package
- Intro-Vignette: Assertive R Programming with assertr
assertive
(kann als "Erweiterung" vonassertr
genutzt werden)- Intro-Vignette: Introduction (es gibt noch mehr Vignetten!)
main_dataset
is_entire_group_in_all_votes
je nach Kanton checken- Tabelle
cantonal_characteristics
dürfte hilfreich sein!
- Tabelle
- checken, dass
level
nie municipal einschliesst, wennmunicipality == "all" | is.na(municipality)
- überprüfen, ob
level
bei allen Einträgen konsistent ist (anhand vonallowed_group_*
in Tabellecantonal_characteristics
) - Vollständigkeit folgender Variablen checken:
group
date
system
level
type
nr_of_..._referendums
combined_level
undcombined_elected_power
(both are combinations of two seven-code variables)has_overlapping_aggregate
undis_overlapping_aggregate
data_auxiliary_cantonal
- GE: analog zu NE, wenn möglich ...
data_auxiliary_municipal
- GE: analog zu NE, wenn möglich ...
- Einsatz der folgenden R-Pakete prüfen:
-
In den meisten Kantonen dürfen AuslandschweizerInnen nicht an den Ständeratswahlen teilnehmen (da diese kantonalem Recht unterstehen und somit gewissermassen als kantonale Wahlen angesehen werden). In denjenigen Fällen, in denen die AuslandschweizerInnen aber teilnehmen dürfen, wäre es daher wünschenswert unter
comments
darauf hinzREDACTEDisen. Es sollte nun automatisch überprüft werden, ob dieser Kommentar jeweils gemacht wurde!
-
README.md
- auf Projektwebseite verweisen.
- interessante Infos etc. von Bundeskanzlei erwähnen/verlinken.
- evtl. kurzen Crashkurs zu Git und GitLab zusammenstellen (bzw. gute Quellen verlinken)
-
UPDATE_PROCEDURE.md
- um Hinweise zur Aktualisierung von
GE_filenames_and_vote_dates.csv
undGE_municipality_district_codes_and_names.csv
auf Basis neuer Versionen des GE-Codebooks (Liste des variables et liste des votations.xlsx
) ergänzen.- Alternative: Die notwendigen Daten (Tabellenblätter
Liste scrutins
undAnnexe 3
) direkt ausListe des variables et liste des votations.xlsx
einlesen, sodass keine separaten Subset-Tabellen mehr notwendig sind (Liste des variables et liste des votations.xlsx
müsste natürlich dennoch immer durch neuste Version ersetzt werden). Dies setzt allerdings voraus, dass das Format dieser beiden Tabellenblätter ausListe des variables et liste des votations.xlsx
über die Zeit stabil bleibt (was ich bezweifle; zudem hat es Fehler im "Original" (bspw derdistrict_code
vonCollonge-Bellerive
seit 2013), für welche jeweils Workarounds gefunden werden müssten)!
- Alternative: Die notwendigen Daten (Tabellenblätter
- um Hinweise zur Aktualisierung von
cantonal_characteristics
ergänzen- Eine Übersicht, ob AuslandschweizerInnen in Ständeratswahlen stimmberechtigt sind findet sich hier.
- um Hinweise zur Aktualisierung von Overview of political bodies by canton ergänzen
- Um Hinweise ergänzen, dass Angaben über Zahl, Ebene etc. der Referenden/Wahlen vielfach automatisch gescraped werden können. Oder noch besser: Dort, wo Scraping gegeben, dass gleich mittels passendem Code in den Aktualisierungsablauf integrieren...
- um Hinweise zur Aktualisierung von
-
COVERAGE.md
erstellen.- Dazu nötigen R-Code entweder in
i_voting_dataset_validation.Rmd
integrieren oder gleich ein eigenes Skript erstellen - Darin zu erfassen (möglichst automatisiert):
- vollständig erfasste Abstimmungstermine
- fehlende Daten (
NA
) --> die rot markierten Zellen im Google Sheet - Heatmap mit Einträgen pro Datum und Kanton
- Dazu nötigen R-Code entweder in
-
Markdown-Dokumente automatisch in PDFs umwandeln
- idealerweise mittels Pandoc
- das Eisvogel-Template sieht vielversprechend aus!
- idealerweise mittels Pandoc
i_voting_dataset_analysis.Rmd
aufteilen ini_voting_dataset_analysis_preparation.Rmd
und sowie separate Skripte je "Analysegegenstand" (welchei_voting_dataset_analysis_preparation.Rmd
sourcen);i_voting_dataset_analysis_template.Rmd
daran anpassen
-
Grafiken für REDACTED machen
e_votes_share
über die Zeit plotten nachgroup
(Inländer vs. Auslandschweizer) undcanton
municipality
-Scatterplot für die Kantone, bei denen es möglich ist (GE, NE, ZH)
-
Weitere Grafiken erstellen / ausbauen
- Aggregatseinträge in Heatmap
entries_per_canton_and_date
berücksichtigen - Grafik
scatterplot_e_votes_share
verbessern- feinere Unterteilung der Achsen
- Regressionslinie toggable machen
- Dropdown-Menü mit mehreren Arten von Regressionslinien bspw. LOESS vs. linear oder nach
canton
odergroup
etc. (wobei da evtl. small multiples besser wären)
- Aggregatseinträge in Heatmap
Update des Berichts Entwicklung des elektronischen Stimmkanals in den Kantonen Genf, Neuenburg und Zürich (A1F1)
. Erklärung der stark unterschiedlichen Nutzungsraten zwischen Gemeinden mittels eines Modells.
- Übersicht machen nach
level
, vgl.heat_map_entries_per_canton_and_date
- Alle nötigen Variablen generieren (vgl. A1F1, S. 23ff)
- checken, ob evtl. grundlegende "Updates" notwendig scheinen, bspw. "Grosser Unterbruch (2005- 2008)" -> gabs danach auch "grosse" Unterbrüche?
- Dummy für Umstellung von GE auf preregistration
- Aus Micha-Datensatz
- Die Variablen standardisieren (bzw. "studentisieren") ("z-transformation"). Dazu:
data_main %>% mutate_at(.vars = vars(...), .funs = . %>% scale() %>% as.vector())
- I-Voting-Nutzungsraten visualisieren (interaktiv und als statische Grafiken für Publikation exportieren)
- I-Voting-Nutzungsraten je Gemeinde (evtl. separate Grafik je Kanton)
- Aggregierte I-Voting-Nutzungsraten je Kanton; evtl. Streuung auch visualisieren, also Abweichungen der einzelnen Gemeinden gegenüber Aggregat
- "Versuchsübersicht" je Gemeinde visualisieren analog zu A1F1, Anhang B
- Problem: Wir haben bislang gar keine vollständige Erfassung aller nicht-E-Voting Abstimmungen auf Gemeindeebene!; Vermutung: Grafiken in Anhang B sind unvollständig (Stata-Code checken!)
- Grafik direkt in
i_voting_dataset_analysis_basic.Rmd
erstellen - Umsetzung:
- als Start- und Enddatum je Kanton immer min und max von
data_auxiliary_cantonal
nehmen - schauen, ob innerhalb obiger Periode "vergessene" Daten in
data_auxiliary_federal
oderdata_auxiliary_municipal
vorhanden
- als Start- und Enddatum je Kanton immer min und max von
- Modell spezifizieren, coden und laufen lassen
- Resultate tabellarisch exportieren
- Resultate visualisieren, z.b. auch als dotplot (vgl. A1F1, Abb. 5)
- relevante Missings systematisch auflisten und darauf hinweisen
- Komischer Effekt: Einwohnerzahl; Effekte sehr unterschiedlich je Kanton
- Interessant wäre, den dahinter stehenden Grund zu finden
-
Knitted
.Rmd
-Dateien als Webseiten ausliefern 🤘- Separates Repo für GitLab Pages einrichten (bspw.
knitted
nennen). - Als Group Page konfigurieren.
- knitr caching in allen
.Rmd
-Skripten einrichten - R-Markdown- oder Blogdown-Webseite aufsetzen.
- Knitted HTML-Dateien aller relevanten Inhalte (Grafiken, Codebook, Readme etc.) einbauen
- Abklären, ob wir den Datensatz auf "öffentlich" (Lesezugriff) schalten wollen oder nicht. Falls nicht, sollte die Dokumentation aussen vor gelassen werden, da sie ohne die Daten kaum Sinn macht...
- Nicht vergessen, gemeinsame Abhängigkeiten zu konfigurieren).
- Auch bei den Plotly-Graphs die Abhängigkeiten teilen (mittels dem
libdir
-Parameter vonhtmlwidgets::saveWidget()
; der Zukunftstauglichkeit halber idealerweise die aktuelle Plotly-Version an den Verzeichnisnamen anhängen).
- Die mittels Pandoc aus den Markdown-Dateien generierten PDFs an geeigneter Stelle verlinken ("als PDF herunterladen") 😉
- Separates Repo für GitLab Pages einrichten (bspw.
-
R-Markdown-Output-Formate in separater Datei
_output.yml
definieren, sodass sich ihn alle.Rmd
-Dateien teilen. -
Google-Sheets-Tabelle
cantonal_characteristics
vervollständigen- Infos:
- Angaben zum Ausländerstimmrecht der Eidgenössischen Migrationskommission
- Angaben zum Wahlmodus der Kantonsregierungen auf Wikipedia
- Evtl. die
characteristic
cantonal_election_procedure_judiciary
wieder entfernen, da es in allen Kantonen verschiedene Gerichte verschiedener Instanz gibt, deren Wahlverfahren sich womöglich unterscheiden? Evtl. wird aber sowieso jeweils nur max. ein "Gerichtstyp" (wie etwa die Bezirksgerichte, vgl. Bezirkswahlen im Kanton Zürich) direkt vom Volk gewählt und diecharacteristic
kann so beibehalten werden. Nähere Angaben dazu konnte ich bislang keine finden. Allgemeine Übersichten über die verschiedenen kantonalen Gerichte finden sich etwa unter folgenden Links:- Peter Bieri: Die Gerichte der Schweiz – eine Übersicht
- Gerichte Schweiz
- Die Gerichte in der Schweiz (zuunterst wird basierend auf der Wohngemeinde auf die kantonalen Webseiten verwiesen)
- Infos:
-
Kapitel 5.1 zu Missings im Codebook überdenken. Momentane Aussage
Missings are coded as N/A.
stimmt so nicht ganz, denn teilweise sind sie nicht explizit als
N/A
codiert, sondern schlicht leere Werte. Am einfachsten wäre, das durchgehend so zu handhaben und aufN/A
zu verzichten. Dafür müsste die Google-Sheets-Tabellemain_dataset
einmalig bereinigt werden. -
Abchecken, ob die mit
i_voting_dataset_add_new_data.Rmd
zu verarbeitenden Datensätze im Google Drive auch mittels des R-Paketsgoogledrive
eingelesen werden können. Das würde ein lokales Mounten des Google Drives überflüssig machen!
-
Zwei separate
level
-Variablenreferendum_level
undelection_level
schaffen und die Daten anpassen. Achtung: Systematisch vorgehen!- Codebook anpassen!
-
election_procedure
undelected_power
in den*_auxiliary_dataset
s umbenennen (analog zu Punkt 4) undi_voting_dataset_add_Geneva_data.Rmd
sowiei_voting_dataset_add_Neuchatel_data.Rmd
als deprecated markieren oder gleich entfernen. -
Jeweils drei separate Variablen schaffen à la
nr_of_federal_e_issues
undnr_of_cantonal_e_issues
sowietotal_nr_of_e_issues
(autogenerated). Achtung: Systematisch vorgehen!- Codebook anpassen!
-
Jeweils drei separate Variablen schaffen à la
federal_election_procedure
undfederal_elected_power
und die Daten anpassen. Achtung: Systematisch vorgehen!- Codebook anpassen!
-
i_voting_dataset_add_new_data.Rmd
fertigstellen. -
Leitfaden anpassen.
-
Ausprägung
0
="none"
für alle Variablen hinzufügen, in denen dies bislang durchNA
ausgedrückt wurde- Codebook anpassen!
- Google Sheet anpassen!
-
i_voting_dataset_add_new_data.Rmd
anpassen!
-
alle CSV-Dateien nach UTF-8, kommasepariert transformieren 🤘 und
i_voting_dataset_add_new_data.Rmd
anpassen -
is_e_voting_available
ausmunicipal_auxiliary_dataset
ini_voting_dataset_add_new_data.Rmd
berücksichtigen! -
Alles i.O., war ein Missverständnis!GE_municipality_district_codes_and_names.csv
abchecken: Bis auf Lancy sind allevoid_since
-Einträge umgekehrt wie diejenigen im GE-Codebook. Wer liegt falsch? -
i_voting_dataset_add_new_data.Rmd
erweitern, sodass automatisch ermittelt wird, obdata_new
bestehende Einträge ersetzt und falls ja, welche (Google-Sheets-Zeilennummern). -
Die
group
-Ausprägungen mit dem Zusatz from selected municipalities entfernen. Die darin enthaltene Info ist redundant (bereits inmunicipality
drin) und verkompliziert die Datenverarbeitung bloss (bspw. der Google-Sheet-Tabellecantonal_characteristics
) -
Zuerst abklären:
- in welchen Fällen, diese "Spezialgruppen" bislang zugeordnet wurden. Bspw. werden GE-Einträge vor 2016-11-27 nicht diesen "Spezialgruppen" zugeordnet (was aber intuitiv logisch wäre)! keine offensichtlichen Besonderheiten
- welche und wieviele Einträge betroffen sind. 17
- ob überhaupt immer konsequent von diesen "Spezialgruppen" Gebrauch gemacht wurde. offensichtlich nicht
-
Dann alles Relevante ändern:
- alle betroffenen group codes ändern im Google Sheet
main_dataset
- Codebook ändern
- Google Sheet
cantonal_characteristics
anpassen - Spaltenformeln anpassen im Google Sheet
main_dataset
- Funktionen und alles andere anpassen in R-Skripten
- alle betroffenen group codes ändern im Google Sheet
-
Variable electorate2 abschaffen. Das Codebook beschreibt die Variable wie folgt:
This is a special variable only relevant for Zurich. It gives the total electorate consisting of Swiss living in Switzerland and Swiss living abroad, even though Swiss abroad were not allowed to i-vote.
- Alle Einträge, die einen Wert unter
electorate2
aufweisen, haben gleichzeitigNA
inelectorate
. Die Zahlen können also ohne Weiteres "verschoben" werden. - Die Variable
is_matched_group
enthält bereits die Info, ob die Zahlen match exactly the denoted unit of analysis (sprich diegroup
). Untermatched_group_notes
finden sich auch jeweils Angaben zu entsprechenden Inkonsistenzen (bei den meisten Einträgen, die einen Wert unterelectorate2
aufweisen, der Fall). - Vorgehen:
- Werte in
electorate2
nachelectorate
verschieben -
column_types
anpassen in Funktionread_in_googlesheet
ini_voting_dataset_shared_code.Rmd
- Sicherstellen dass alle R-Skripte an allen weiteren relevanten Stellen angepasst wurden
- Werte in
- Alle Einträge, die einen Wert unter
-
Variable
votes
aufsplitten in die zwei Variablenvote_count_e_voting_electorate
undvote_count_total
, denn zumindest in den NE-Daten ist es immervote_count_total
! Die meisten anderen Zahlen inkl. jenen aus den BK-PDFs sollten hingegenvote_count_e_voting_electorate
sein. -
Vorgehen:
- im Google Sheet:
votes
invote_count_e_voting_electorate
umbenennen; allfällig betroffene Formeln anpassen - im Google Sheet: neue Variable
vote_count_total
erstellen; diejenigen Werte, welche nichtvote_count_e_voting_electorate
, sondernvote_count_total
wiedergeben, verschieben- Betroffene Kantone
- NE, non-aggregate
- GE, non-aggregate ab 2016-11-27
- Betroffene Kantone
- alle R-Skripte an allen betroffenen Stellen anpassen (col-types beim einlesen, ...)
- Codebook anpassen
- im Google Sheet:
-
Auch die Variablen
ballot_votes
undpostal_votes
aufsplitten wie oben -> dasselbe Problem! -
Vorgehen:
- im Google Sheet:
ballot/postal_votes
inballot/postal_votes_e_voting_electorate
umbenennen; allfällig betroffene Formeln anpassen - im Google Sheet: neue Variable
ballot/postal_votes_total
erstellen; diejenigen Werte, welche nichtballot/postal_votes_e_voting_electorate
, sonderntotal_ballot/postal_votes_total
wiedergeben, verschieben - alle R-Skripte an allen betroffenen Stellen anpassen (col-types beim einlesen, ...)
- Codebook anpassen
- im Google Sheet:
-
Der Konsistenz halber – und um etwaigen Missverständnissen vorzubeugen – die Variable
electorate
umbenennen intotal_electorate
-
Vorgehen:
- umbenennen im Google Sheet und abchecken, dass alle Formeln etc. weiterhin funktionieren
- umbenennen im CODEBOOK
- alle R-Skripte anpassen, wo nötig
-
Erfassung von Ständeratswahlen klären
-
Die Zuordnung als
federal
macht Probleme, bspw. bei 2. Ständerats-Wahlgängen, die nur in einzelnen Kantonen stattfinden, aber infederal_auxiliary_dataset
erfasst sind (und damit per Definition für alle Kantone gelten). Wenn am selben Datum in einem anderen Kanton Abstimmungen stattfinden, produziert das Skript (logischerweise) falsche Resultate (momentan der Fall bei GE am2011-11-27
)! -
Abhilfe: Neue Variable
limited_to_cantons
infederal_auxiliary_dataset
! 🎉 -
in
UPDATE_PROCEDURE.md
aufnehmen -
in
i_voting_dataset_add_new_data.Rmd
umsetzen (unter Determinetype
, Determineelection_level
und Determineis_entire_group_in_all_votes
)) -
Die Variablen
is_preregistration_required
undis_wassenaar_corrected
voncantonal_auxiliary_dataset
nachcantonal_characteristics
"verschieben" und alle R-Skripte entsprechend anpassen. -
Mail an Paolo De Faveri schreiben (auf franz. 😑; zuerst per E-Mail, evtl. Telefongespräch "anbieten") wegen:
- Am 2017-05-21 gabs in der GE-Gemeinde Troinex eine Wahl: E-Voting?
- Es fehlen uns die kommunalen Rohdatensätze vom 2016-09-25 (Meyrin und Vandoeuvres; siehe
GE_missing_files.csv
) sowie 2017-05-21 (Onex). - Im föderal-kantonalen Rohdatensatz vom 2017-09-24 (
cv201730
) finden sich zwei Einträge mit der undokumentierten Kombination ausmunicipality_code_2_digits == "08"
(votcom
;08
entsprichtCarouge
) unddistrict_code == "01"
(votarr
)! Das scheint ein Fehler. - Ich hätte gerne die aktualisierte Fassung des Codebooks (
Liste des variables et liste des votations.xlsx
)! Bei der letzten Anfrage (Mail vom 14. März 2018 mit Anhangdescr_vota.xlsx
) haben wir nur die TabelleDescriptifs fichiers
erhalten, es sollten allerdings ~10 Tabellen sein! Am besten das bisherige Codebook als "Beispiel" anhängen, damit klar ist, was gemeint ist sowie gleich auf das Mail vom 14. März 2018 antworten. - Der Daten der Abstimmung vom 2018-03-04
-
De Faveris Antwort beantworten
- zudem fragen:
-
bez. Auslandschweizer in den Stimmregisterdaten: Diese weisen die Ausprägung
46
in den Gemeinde-Variablen auf (VOTCOM
,CCOM
,DOMICOM
), allerdings erst ab dem2015-06-14
:(1) A partir du scrutin du 14.6.2015 (fichier v201540.sas7bdat).
Sind die Auslandschweizer in den vorhergehenden Daten schlicht nicht enthalten (weshalb nicht?)? Falls doch, wie lassen sie sich identifizieren?Vor2015-06-14
existieren offenbar jeweils separate Files nur für die Auslandschweizer (enden auf*_46.csv
) -
bez. Preregistration seit demAuslandschweizer sind automatisch registriert!, siehe hier2016-11-27
: Müssen sich auch Auslandschweizer speziell fürs E-Voting registrieren? Oder sind Sie mit dem Stimmregistereintrag automatisch auch fürs E-Voting registriert (Zahlen in den BK-PDFs deuten stark darauf hin!)? -
generell: der erste Genfer E-Voting-Versuch war am
2003-01-19
inAnières
, richtig? Davor gab es also noch keinerlei Termine mit E-Voting? -
generell: was haben diejenigen Einträge in den Rohdaten zu bedeuten, welche nur auf kommunaler Ebene stimmberechtigt sind (
QUALCOM = 1 & QUALCAN = 0 & QUALFED = 0
), aber keine Ausländer sind (CNAT <= 26
)? In den kommunalen Rohdaten vom2016-11-27
(cv201640_21
) sind dies bspw. 256 Einträge! Streng genommen müsste diese Kombo unmöglich sein... -
bez. kommunaler Abstimmung in Carouge vom
2009-06-21
: Ist es so, dass kein E-Voting verfügbar war (wir haben die zugehörige Datei nicht)? -
Es fehlen uns noch die Dateien zu folgenden kommunalen Abstimmungen, an denen jeweils E-Voting verfügbar war:
- Anières vom
2003-01-19
- Cologny vom
2003-11-30
- Carouge vom
2004-04-18
- Meyrin vom
2004-06-13
- Vandoeuvres vom
2004-10-24
.
- Anières vom
-
- zudem fragen:
-
Daten-Schema überarbeiten
- Variable
municipality_code_alt
restlos entfernen. - Variable
district
umbenennen: Im Falle von GE und ZH enthält sie die "Subgemeinde", also eine geografische Einheit unterhalb dermunicipality
, sonst ist sie leer -> der Namedistrict
(=Bezirk) ist daher kontraintuitiv! - Für alle Variablen, die sich schlicht aus den vorhandenen Daten ableiten lassen (
*_share
etc.) passende Funktionen zum R-Paket swissevote hinzufügen (sodass sie ad-hoc erzeigt werden können) und die Variablen restlos entfernen. - Die numerischen
*_code
-Variablen entfernen und durch ordentliche factors ersetzen (die*_code_name
Variablen). -> ACHTUNG: Gibt wohl ziemlich Arbeit!
- Variable
-
i_voting_dataset_add_new_data.Rmd
testen (Resultate mit bereits vorhandenen Einträgen vergleichen und auf Plausibilität prüfen).- BE testen
- GE testen
- fix unknown municipality in
2014-09-28
- klären, weshalb an folgenden Daten die Auslandschweizer fehlen:
2009-09-27
2009-11-29
2010-03-07
2010-09-26
2010-11-28
2011-02-13
2011-11-27
2012-03-11
2012-06-17
2012-09-23
2012-10-14
2012-11-04
2012-11-25
2013-03-03
2013-06-09
2013-09-22
2013-11-24
2014-02-09
2014-05-18
2014-09-28
2014-11-30
2015-03-08
höchstwahrscheinlich fehlen sie, weil Auslandschweizer auf kommunaler Ebene nicht stimmberechtigt sind und ihre Stimmen erst nach dem2015-03-08
per Gemeinde erfasst werden; Tatsache ist: sie fehlen auch in den Rohdaten-
i_voting_dataset_add_new_data.Rmd
erweitern, sodass die Auslandschweizer-Zahlen den OCSTAT-Excel-Tabellen entnommen werden.
-
- klären, weshalb an folgenden Daten die
foreigners living in Switzerland
fehlen:2011-11-27
,2013-06-09
,2013-09-22
,2013-11-24
sie fehlen, weil sie in separaten Datensätzen enthalten sind (und wir diese noch nicht haben) - check strange
Onex
double entry @2010-09-26
- check
2015-03-08
- die Ermittlung von
is_foreigner
in Funktionread_raw_geneva_dataset
kontrollieren!!! Scheint nicht zum gewünschten Resultat zu führen (haben evtl. auch die Auslandschweizer einecnat > 26
? das würde erklären, weshalb wir scheinbar keine Auslandschweizer in den neueren Datensätzen finden...- update: die Zahlen scheinen auch mit den BK-Auslandschweizer-Zahlen übereinzustimmen (zumindest am 2017-05-21)!) --> testen mit den 2017-05-21-Daten!
- check superstrange script results @
2011-11-27
- falsche Einträge haben alle
group == 4 & type == NA & *_level == 0
! - zudem:
type
und weitere Variablen stimmen nicht, da fälschlicherweise der 2. SR-Wahlgang von Zürich ausfederal_auxiliary_dataset
inkludiert wurde.
- falsche Einträge haben alle
- check why the
group == 4
entry @2015-06-14
,2016-02-28
,2016-06-05
hastype == NA & _level == 0
- check why elections from
2011-05-15
,2015-04-19
,2015-05-10
,2015-10-18
and2015-11-08
are missing (elections from2011-11-27
and2012-11-04
don't seem to be missing) - Resultate (
electorate
) mit den Zahlen ausGE_filenames_and_vote_dates.csv
vergleichen - Resultate mit den Zahlen aus den OCSTAT-Excel-Tabellen vergleichen
- double-check
is.na(country_canton_code)
filtering; evtl. (stattdessen)typelec
sowieìs_eligible_*
(mit)einbeziehen; Ziel: möglichst dieselben Zahlen wie bisherige Einträge (bzw. OCSTAT-Zahlen)! - double-check
votcorr == "A"
filtering -
problematic_dates
fixen, vgl.I-Voting-Datensatz – REDACTEDs Fragen & Beobachtungen.md
- fix unknown municipality in
- NE testen
-
Variablen-Reihenfolge in
main_dataset
überdenken/anpassen- in
main_dataset
- im Codebook
- in allen R-Skripten
- in
-
Parameterzahl reduzieren in den ganzen
determine_*()
-Funktionen ini_voting_dataset_add_new_data.Rmd
-
Verbleibende Validation-Checks erstellen, siehe oben.
- Die
cantonal_election_procedure_*
-Einträge aus der Tabellecantonal_characteristics
zur Datenvalidierung ini_voting_dataset_validation.Rmd
nutzen
- Die
-
In
i_voting_dataset_analysis.Rmd
nach dem Einlesen der Daten die Variablen vom Typinteger
nachfactor
(mit entsprechenden Labels) umwandeln, wo sinnvoll (u. a. für die Erstellung von Grafiken etc. nützlich). -
In
i_voting_dataset_add_new_data.Rmd
den BFS-Gemeindestand einlesen und die Daten automatisch um Bezirk und Bezirksnummer ergänzen (momentan istdistrict
nur für (einen Teil der) Einträge des Kantons Genf gesetzt)- Den jeweils neusten BFS-Gemeindestand einlesen, entweder über
.xls
-Datei (Problem: Kein Direktlink vorhanden; mögliche Alternative?) oder via Web Services R-Paket swissmuni benutzen! -
main_data
mit BFS-Gemeindestand viamunicipality_code
joinen, sprichmain_data
umdistrict
(bestehende Variable überschreiben) unddistrict_code
(neue Variable) ergänzen
- Den jeweils neusten BFS-Gemeindestand einlesen, entweder über
-
overlapping aggregates direkt in
i_voting_dataset_add_new_data.Rmd
generieren- in
cantonal_auxiliary_dataset
3 neue Spaltenoverlapping_aggregate_electorate
,overlapping_aggregate_vote_count
undoverlapping_aggregate_e_votes
erstellen und mit bisherigen Werten befüllen. Code:data_main %>% filter(is_overlapping_aggregate) %>% select(canton, date, e_voting_electorate, vote_count_e_voting_electorate, e_votes) %>% readr::write_csv(path = "/home/REDACTED/Schreibtisch/temp.csv")
- allen R-Code an neues Schema von
data_auxiliary_cantonal
anpassen -
generate_overlapping_aggregate()
fertigstellen- die Spalten
*__electorate
unde_votes
interaktiv befüllen (viaget_user_input()
) - den Rest automatisch befüllen
- die Spalten
-
generate_overlapping_aggregate()
beim Hinzufügen neuer Daten increate_geneva_data()
undcreate_neuchatel_data()
nutzen 🤘 - check
e_voting_electorate
sums automatically against the values from the Federal Chancellery; print warning if they differ!
- in
-
NE: in
i_voting_dataset_add_new_data.Rmd
direkt fehlende Einträge in den auxiliary datasets generieren aufbauend aufget_neuchatel_cantonal_vote_dates()
undget_neuchatel_municipal_vote_dates()
🤘- zuerst Overview of political bodies by canton aus
UPDATE_PROCEDURE.md
incantonal_characteristics
aufnehmen -
generate_neuchatel_municipal_auxiliary_data()
undgenerate_neuchatel_cantonal_auxiliary_data()
fertigstellen - Code anpassen, sodass (bei NE) nicht direkt abgebrochen wird, wenn
date
nicht vorhanden, sondern eben auxiliary datasets ergänzt werden, wenn möglich
- zuerst Overview of political bodies by canton aus
-
Die Variable
municipality_code_alt
taugt in der gegenwärtigen Form herzlich wenig, zumal sie bloss den BFS-Code einer einzigen ehemaligen Gemeinde von mehreren auflistet! Vgl. auch Notizen dazu inI-Voting-Datensatz – REDACTEDs Fragen & Beobachtungen.md
. Deshalb idealerweise: Ini_voting_dataset_add_new_data.Rmd
die Gemeindefusionen via Webservice GDE-Mutationen (siehe oben) handhaben.- ACHTUNG: Bei der am 2018-01-01 neu geschaffenen NE-Gemeinde "La Grande Béroche" gibt der Webservice die nur vorübergehend korrekte Gemeindebezeichnung (mit Bindestrich) zurück, in den NE-Rohdaten wird die Gemeinde aber bereits ohne Bindestrich geschrieben.
-
Auf das Gesamtelektorat bezogene Variablen (
total_electorate
etc.) für GE-Daten bevoris_preregistration_required == TRUE
befüllen, wo möglich (i_voting_dataset_add_new_data.Rmd
anpassen). -
Missings vereinheitlichen, siehe oben.
-
Weitere Grafiken in
i_voting_dataset_analysis.Rmd
erstellen/ausbauen, siehe oben.