[PYTHON] Étudier la relation entre les dépenses de crème glacée et la température

Analyse des données Les débutants ont étudié les pandas en étudiant la relation entre les dépenses de crème glacée par ménage et la température. (Je peux voir le résultat en quelque sorte ...) La référence était "[Introduction à l'analyse des données par Python](https://www.amazon.co.jp/Python%E3%81%AB%E3%82%88%E3%82%8B%E3%83%" 87% E3% 83% BC% E3% 82% BF% E8% A7% A3% E6% 9E% 90% E5% 85% A5% E9% 96% 80-% E5% B1% B1% E5% 86% 85 -% E9% 95% B7% E6% 89% BF / dp / 4274222888 / ref = sr_1_3? __ mk_ja_JP =% E3% 82% AB% E3% 82% BF% E3% 82% AB% E3% 83% 8A & mots-clés = Python + % E3% 83% 87% E3% 83% BC% E3% 82% BF% E8% A7% A3% E6% 9E% 90 & qid = 1583399806 & sr = 8-3) "et les deux sites suivants.

Statistiques d'Icecream BIZ Température moyenne mensuelle de l'Agence météorologique

J'ai utilisé les données 2018 publiées sur le site ci-dessus.

Récupérer des données avec le web scraping

import pandas as pd
import math
import matplotlib.pyplot as plt
import statsmodels.api as sm
ice_url = 'http://www.icecream.or.jp/biz/data/expenditures.html'
temp_url = 'http://www.data.jma.go.jp/obd/stats/etrn/view/monthly_s3.php?%20prec_no=44&block_no=47662'
ice = pd.read_html(ice_url)[0] 
temp = pd.read_html(temp_url)[0]
# [0]Spécifie la première table de
ice_2018 = ice.iloc[1:13, 5].astype(float)
temp_2018 = temp.iloc[144, 1:13].astype(float)
#Extraire uniquement les données 2018 et les convertir en type numérique
month = pd.DataFrame([i for i in range(13)])
#Avoir n mois prêt

Vous avez maintenant les dépenses de crème glacée 2018 par ménage et la température mensuelle moyenne.

Trouvez la corrélation

icecream = pd.concat([month, ice_2018, temp_2018], axis=1)[1:]
#Combinez n mois, dépenses de glace et température moyenne
x_data, y_data = icecream[144], icecream[5]
avetem, aveex = x_data.sum() / 12, y_data.sum() / 12
#Température moyenne annuelle(avetem)Et les dépenses de crème glacée(aveex)A été demandé

Le coefficient de corrélation est exprimé comme suit en utilisant la covariance $ S_ {xy} $ et ainsi de suite.

r = \frac{S_{xy}}{\sqrt{S_{xx}S_{yy}}}

Selon cette formule, le coefficient de corrélation $ r $ a été honnêtement calculé comme suit. (Je pense qu'il y a un meilleur moyen)

for i in range(len(icecream)):
    ex = icecream.iloc[i,1] - aveex
    tem = icecream.iloc[i,2] - avetem
    extem += ex*tem
    ex0 += ex**2
    tem0 += tem**2
extem0 = math.sqrt(ex0)*math.sqrt(tem0)
r = extem / extem0
# r = 0.8955143151163499

Ce résultat montre qu'il existe une forte corrélation entre les dépenses de crème glacée et la température.

analyse de régression

Enfin, faisons une analyse de régression à l'aide de pandas ols.

X = sm.add_constant(x_data) #Il semble nécessaire de trouver une section
model = sm.OLS(y_data, X)
results = model.fit()
a, b = results.params[0], results.params[1]
# a:Coupe, b:Inclinaison
plt.plot(x_data, a+b*x_data)
plt.scatter(icecream[144], icecream[5])

ice_temp.png

En conséquence, une droite de régression comme le montre la figure a été obtenue.

Je vois, quand il fait chaud, je veux manger de la glace.

Recommended Posts

Étudier la relation entre les dépenses de crème glacée et la température
La relation subtile entre Gentoo et pip
À propos de la relation entre Git et GitHub
Examiner la relation entre TensorFlow et Keras pendant la période de transition
[Statistiques] Visualisons la relation entre la distribution normale et la distribution du chi carré.
Examiner la relation entre deux variables (2)
Examiner la relation entre deux variables (1)
J'ai étudié la relation entre le LSTM avec état de Keras et l'état caché
Relation entre netfilter, firewalld, iptables et nftables
Visualisons la relation entre le salaire moyen et l'industrie avec des données XBRL et seaborn! (7/10)
Quelle est la différence entre «pip» et «conda»?
Relation entre la conversion des types de données Firestore et Go
Résumé des différences entre PHP et Python
La réponse de "1/2" est différente entre python2 et 3
À propos de la différence entre "==" et "is" en python
À propos de la différence entre PostgreSQL su et sudo
Quelle est la différence entre Unix et Linux?
Étude de la relation entre le prétraitement de la voix et la précision de la transcription dans l'API Google Cloud Speech