Das Problem mit 12-10 ist Es ist ein Problem, den Korrelationskoeffizienten zwischen der selbständigen Stimmenquote und der Wohneigentumsquote zu testen. Das Material ist ziemlich alt (Parlamentswahlen 1983 !!), aber es ist interessant, dass je mehr Sie ein Haus besitzen, desto mehr scheint die LDP einen Vorteil zu haben.
Anstatt es nur zu lösen, habe ich beschlossen, das Diagramm mit Pandas und Matplotlib anzuzeigen.
Ich habe die erforderlichen Bibliotheken von http://www.lfd.uci.edu/~gohlke/pythonlibs/ heruntergeladen. Manchmal hat es nicht funktioniert, wenn ich es mit pip install eingesetzt habe.
%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
S.65 Fügen Sie aus Tabelle 3.13 kontinuierlich Daten in csv ein. Laden Sie die fertige CSV-Datei (mit dem Namen table_3_13.csv) wie unten gezeigt in den Datenrahmen.
df = pd.read_csv('table_3_13.csv', encoding='shift-jis')
#Wenn das Ergebnis verstümmelt aussieht, überprüfen Sie die Codierung.
df
Ich konnte es so lesen.
Ein einfaches Diagramm wird wie folgt angezeigt.
d = df[0:47] #Ich habe die Ergebnisse von Hokkaido nur auf Okinawa eingegrenzt.
#Wenn man sich die Grafik ansieht, scheint es eine gewisse Korrelation zu geben.
plt.xlabel(d.columns[1])
plt.ylabel(d.columns[2])
plt.scatter(d[[1]], d[[2]])
plt.show()
Es scheint eine Korrelation zwischen der Wohneigentumsquote und der LDP-Stimmenquote zu bestehen.
#Fügen Sie jedem Element Buchstaben hinzu
fig, ax = plt.subplots(figsize=(15,15)) #Wenn die Grafik bis zu einem gewissen Grad nicht groß ist, kann der Name der Präfektur nicht angezeigt werden.
df.plot(1, 2, kind='scatter', ax=ax)
for k, v in df.iterrows():
ax.annotate(v[0], xy=(v[1], v[2]), size=12) #v[0]Präfekturname, v[1]Ist die private Abstimmungsrate, v[2]Die Wohneigentumsquote ist in enthalten.
plt.show()
Auf einen Blick sehen Sie, dass der Anteil der Hausbesitzer in ländlichen Gebieten höher zu sein scheint.
Pandas können einfach mit der Corr-Methode berechnet werden. Es war so.
d.corr()
LDP-Stimmenquote | Eigenheimverhältnis | |
---|---|---|
LDP-Stimmenquote | 1.000000 | 0.638782 |
Eigenheimverhältnis | 0.638782 | 1.000000 |
Ein Test wird durchgeführt, um festzustellen, wie wahrscheinlich der berechnete Korrelationskoeffizient ist. Hier verwenden wir die Fisher-Z-Transformation als Test des Korrelationskoeffizienten. Die z-Konvertierung von Fisher sieht folgendermaßen aus:
Wenn es eine zweidimensionale Normalbevölkerung gibt und der Bevölkerungskorrelationskoeffizient $ \ rho $ und der Stichprobenkorrelationskoeffizient $ r $ beträgt,
Setzen Sie $ \ rho = 0.0 $ und berechnen Sie mit Python wie folgt.
n=48 #Die Anzahl der Daten
r = 0.638782
rho = 0.0
z= 0.5*np.log((1+r)/(1-r))
eta = 0.5* np.log((1+rho)/(1-rho))
Z = np.sqrt(n-3)*(z-eta)
print("Z=",Z) #Z= 5.07216324479
Andererseits wird die Hypothese zurückgewiesen, da $ Z_ {0,025} = 1,96 $, offensichtlich $ Z_ {0,025} <Z $. Daher kann nicht gesagt werden, dass keine Korrelation besteht (Signifikanzniveau 0,05).
Wenn Sie es in Python wie i) mit $ \ rho = 0.5 $ schreiben, sieht es so aus.
n=48 #Die Anzahl der Daten
r = 0.638782
rho = 0.5
z= 0.5*np.log((1+r)/(1-r))
eta = 0.5* np.log((1+rho)/(1-rho))
Z = np.sqrt(n-3)*(z-eta)
print("Z=",Z)
Für das erhaltene $ z = 1,39 $ wird die Nullhypothese nicht von $ Z_ {0,025} = 1,96> 1,39 $ verworfen. Daher kann der Populationskorrelationskoeffizient 0,5 betragen. (Signifikanzniveau 0,05)
Eigentlich wollte ich die Karte von Japan mit Geopandas malen, aber ich konnte sie nicht auf win10 installieren. Versuchen Sie es erneut, sobald Sie wissen, wie es geht.
Der Wert von $ Z $, wenn der Bereich der Verteilungsfunktion $ a $ wird, kann durch die folgende Funktion erhalten werden.
stats.norm.ppf(a)
Dieses Mal beträgt das Vorherrschaftsniveau beider Schultern 0,05. Berechnen Sie also wie folgt.
stats.norm.ppf(1-0.025) #1.959963984540054
$ Z_ {0.025} = 1.96 $ ist bekannt, entspricht aber in etwa dem obigen Ergebnis.
Recommended Posts