Le problème avec 12-10 est C'est un problème de tester le coefficient de corrélation entre le taux de vote autonome et le taux d'accession à la propriété. Le matériel est assez ancien (élection générale de 1983 !!), mais il est intéressant de noter que plus vous possédez une maison, plus le LDP sera avantageux.
Donc, au lieu de simplement le résoudre, j'ai décidé d'afficher le graphique en utilisant pandas et matplotlib.
J'ai téléchargé les bibliothèques nécessaires depuis http://www.lfd.uci.edu/~gohlke/pythonlibs/. Parfois, cela ne fonctionnait pas lorsque je le mettais avec pip install.
%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
p.65 À partir du tableau 3.13, insérez régulièrement les données dans csv. Chargez le fichier csv terminé (nommé table_3_13.csv) dans le dataframe comme indiqué ci-dessous.
df = pd.read_csv('table_3_13.csv', encoding='shift-jis')
#Si le résultat semble déformé, vérifiez l'encodage.
df
J'ai pu le lire comme ça.
Un graphique simple s'affiche comme suit.
d = df[0:47] #J'ai réduit les résultats de Hokkaido à Okinawa uniquement.
#En regardant le graphique, il semble qu'il existe une corrélation.
plt.xlabel(d.columns[1])
plt.ylabel(d.columns[2])
plt.scatter(d[[1]], d[[2]])
plt.show()
Il semble y avoir une corrélation entre le taux d'accession à la propriété et le taux de vote LDP.
#Ajouter des lettres à chaque élément
fig, ax = plt.subplots(figsize=(15,15)) #Si le graphique n'est pas assez grand dans une certaine mesure, le nom de la préfecture ne peut pas être vu.
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]Nom de la préfecture, v[1]Le taux de vote privé, v[2]Le taux d'accession à la propriété est inclus dans.
plt.show()
En un coup d'œil, vous pouvez voir que le ratio de propriétaires semble plus élevé dans les zones rurales.
les pandas peuvent être facilement calculés en utilisant la méthode corr. C'était comme ça.
d.corr()
Taux de vote LDP | Ratio de propriété | |
---|---|---|
Taux de vote LDP | 1.000000 | 0.638782 |
Ratio de propriété | 0.638782 | 1.000000 |
Un test est effectué pour voir la probabilité du coefficient de corrélation calculé. Ici, nous utilisons la transformée en z de Fisher comme test du coefficient de corrélation. La conversion z de Fisher ressemble à ceci:
Lorsqu'il existe une population normale bidimensionnelle et que le coefficient de corrélation de population est $ \ rho $ et que le coefficient de corrélation de l'échantillon est $ r
Définissez $ \ rho = 0.0 $ et calculez avec python comme suit.
n=48 #Le nombre de données
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
Par contre, puisque $ Z_ {0,025} = 1,96 $, évidemment $ Z_ {0,025} <Z $, l'hypothèse est rejetée. Par conséquent, on ne peut pas dire qu'il n'y a pas de corrélation (niveau de signification 0,05).
Si vous l'écrivez en python de la même manière que i) avec $ \ rho = 0.5 $, cela ressemble à ceci.
n=48 #Le nombre de données
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)
Pour le $ z = 1,39 $ obtenu, l'hypothèse nulle n'est pas rejetée à partir de $ Z_ {0,025} = 1,96> 1,39 $. Par conséquent, le coefficient de corrélation de population peut être de 0,5. (Niveau de signification 0,05)
En fait, je voulais peindre la carte du Japon en utilisant des géopandas, mais je n'ai pas réussi à l'installer sur win10. Une fois que vous savez comment procéder, réessayez.
La valeur de $ Z $ lorsque l'aire de la fonction de distribution devient $ a $ peut être obtenue par la fonction suivante.
stats.norm.ppf(a)
Cette fois, le niveau de prédominance des deux épaules est de 0,05, alors calculez comme suit.
stats.norm.ppf(1-0.025) #1.959963984540054
$ Z_ {0.025} = 1.96 $ est bien connu, mais c'est à peu près le même que le résultat ci-dessus.