[PYTHON] [Pour les débutants] Pour ceux qui sont arrêtés par leurs propres données du modèle de régression (modèles de statistiques (2ème fois))

[Pour les débutants] Pour ceux qui sont arrêtés par leurs propres données du modèle de régression (modèles de statistiques (2ème fois))

Presque un mémorandum

** Introduction aux modèles de statistiques (OLS) pour ceux qui sont coincés avec des exemples de données </ font> **

Ceci est un article d'introduction pour ceux qui ont essayé un échantillon de régression avec des statsmodels et sont bloqués avec leurs propres données.

Le cas supposé par ce script est un restaurant fictif (supposé être un bar ou un sky lounge), et les ventes sont supposées avoir des données de ventes fictives qui enregistrent les principales catégories de produits, le prix unitaire par client, le nombre de visiteurs, etc. Y a-t-il une tendance les jours où il y en a beaucoup? C'est un décor.


【environnement】 Linux: debian10.3 python: 3.7.3 pandas: 1.0.3 statsmodels: 0.11.1 jupyter-lab: 2.1.0

En supposant que vous ayez un fichier csv comme celui ci-dessous

Date,earnings,customer,earnings_customer,fortified_sweet,rum,brown_spirits,mojito_rebjito,cocktail,bar_food,cigar 2020-03-01,30000,5,6000,2,2,2,3,2,5,1

[1] Application du modèle et affichage du résumé (suite du temps précédent)

statsmodels



#Modèle de régression d'appel
model = sm.OLS(y, sm.add_constant(X))

#Créer un modèle
results = model.fit()

#Afficher les détails des résultats
print(results.summary())


                            OLS Regression Results                            
==============================================================================
Dep. Variable:               earnings   R-squared:                       0.930
Model:                            OLS   Adj. R-squared:                  0.921
Method:                 Least Squares   F-statistic:                     100.8
Date:                Sat, 09 May 2020   Prob (F-statistic):           2.50e-28
Time:                        01:09:38   Log-Likelihood:                -618.49
No. Observations:                  61   AIC:                             1253.
Df Residuals:                      53   BIC:                             1270.
Df Model:                           7                                         
Covariance Type:            nonrobust                                         
===================================================================================
                      coef    std err          t      P>|t|      [0.025      0.975]
-----------------------------------------------------------------------------------
const            -435.1552   2434.515     -0.179      0.859   -5318.173    4447.863
customer         5103.4245    617.184      8.269      0.000    3865.511    6341.338
fortified_sweet   844.1247    543.874      1.552      0.127    -246.747    1934.997
rum              -389.6465    440.184     -0.885      0.380   -1272.545     493.252
brown_spirits    1267.2019    581.664      2.179      0.034     100.532    2433.872
cocktail        -1766.9369    568.908     -3.106      0.003   -2908.022    -625.852
bar_food           74.3759    514.091      0.145      0.886    -956.760    1105.512
cigar            4420.0626    599.323      7.375      0.000    3217.972    5622.153
==============================================================================
Omnibus:                       16.459   Durbin-Watson:                   1.864
Prob(Omnibus):                  0.000   Jarque-Bera (JB):               24.107
Skew:                           0.971   Prob(JB):                     5.83e-06
Kurtosis:                       5.390   Cond. No.                         37.4
==============================================================================

Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

** En regardant une partie du résumé **

statsmodels



#Afficher les détails des résultats
print(results.summary())

Une partie du résumé

R-squared:                       0.930
Adj. R-squared:                  0.921
AIC:                             1253.

                      coef    std err          t      P>|t|      [0.025      0.975]
-----------------------------------------------------------------------------------

customer         5103.4245    617.184      8.269      0.000    3865.511    6341.338
fortified_sweet   844.1247    543.874      1.552      0.127    -246.747    1934.997
rum              -389.6465    440.184     -0.885      0.380   -1272.545     493.252
brown_spirits    1267.2019    581.664      2.179      0.034     100.532    2433.872
cocktail        -1766.9369    568.908     -3.106      0.003   -2908.022    -625.852
bar_food           74.3759    514.091      0.145      0.886    -956.760    1105.512
cigar            4420.0626    599.323      7.375      0.000    3217.972    5622.153

Lorsque le résumé est affiché, il y a quelque chose à regarder en premier.

Coefficient de détermination «R au carré» (plus il est proche de 1, plus la précision est élevée) "Adj. R-carré" Coefficient de décision ajusté en liberté (coefficient de décision lorsqu'il y a de nombreuses variables explicatives) -Dans ce cas, il existe de nombreuses variables explicatives, donc je jugerai par cette valeur.

"AIC" Dans quelle mesure le modèle convient-il? (Plus la valeur est petite, plus la précision est élevée.) ・ Il semble que la valeur numérique soit trop grande (faible précision)

Coefficient de régression "Coef" (plus la valeur est élevée, plus l'effet sur l'ensemble est important) ・ En regardant cela, il semble que «client» et «cigare» ont une grande influence.

「>|t|」(Le plus petit(À titre de référence, 0.Moins de 05), L'influence des variables n'est probablement pas accidentelle) ・ En regardant cela, il semble que ce n'est pas un hasard si la valeur du «cocktail» est faible en plus de «client» et «cigare».

** En regardant le résumé jusqu'à présent, il semble qu'il existe de nombreuses variables explicatives. ** **

On peut dire que "client" et "cigare" ont une grande influence sur les ventes. </ font>

En regardant la sortie du coefficient de régression, on peut dire que le résultat est presque comme prévu.

** En regardant la valeur de "AIC", il semble qu'il existe de nombreuses variables explicatives et la précision est faible. ** ** Je vais réduire les variables explicatives et recommencer l'analyse.

Les résultats de la réanalyse seront mis à jour à un autre moment.

customer_cigar.jpg

Si vous postez d'abord uniquement le graphique, il n'y a pas de légende, mais si vous regardez le graphique, la ligne bleuâtre est le mouvement du "client (le nombre d'invités en visite)" et la ligne rougeâtre est le mouvement du "cigare (fourni par le cigare)".

** Ci-dessus, [pour les débutants] C'était pour les personnes qui se sont arrêtées à leurs propres données du modèle de régression (modèles de statistiques (2ème fois)). ** **

Recommended Posts