[PYTHON] Calcul du nombre d'associations de Klamer

Je n'ai pas trouvé de module pour calculer le nombre d'associations Klamer en Python, alors je l'ai fait moi-même. Pour la méthode de calcul, je me suis référé à ici.

cramerV.py


# -*- coding: utf-8 -*-

import numpy as np


def cramersV(x, y):
    """
    Calc Cramer's V.

    Parameters
    ----------
    x : {numpy.ndarray, pandas.Series}
    y : {numpy.ndarray, pandas.Series}
    """
    table = np.array(pd.crosstab(x, y)).astype(np.float32)
    n = table.sum()
    colsum = table.sum(axis=0)
    rowsum = table.sum(axis=1)
    expect = np.outer(rowsum, colsum) / n
    chisq = np.sum((table - expect) ** 2 / expect)
    return np.sqrt(chisq / (n * (np.min(table.shape) - 1)))


if __name__ == "__main__":
    import pandas as pd
    data = pd.DataFrame(
        {'science': ['like', 'like', 'like', 'like', 'like', 'like', 'like',
                     'like', 'like', 'like', 'like', 'like', 'like', 'like',
                     'like', 'like', 'like', 'like', 'like', 'like', 'like',
                     'like', 'like', 'like', 'like', 'like', 'like', 'like',
                     'like', 'like', 'like', 'dislike', 'dislike', 'dislike',
                     'dislike', 'dislike', 'dislike', 'dislike', 'dislike',
                     'dislike', 'dislike', 'dislike', 'dislike', 'dislike',
                     'dislike', 'dislike', 'dislike', 'dislike', 'dislike',
                     'dislike'],
         'math': ['like', 'like', 'like', 'like', 'like', 'like', 'like',
                  'like', 'like', 'like', 'like', 'like', 'like', 'like',
                  'like', 'like', 'like', 'like', 'like', 'like', 'like',
                  'like', 'like', 'like', 'dislike', 'dislike', 'dislike',
                  'dislike', 'dislike', 'dislike', 'dislike', 'like', 'like',
                  'like', 'like', 'like', 'like', 'dislike', 'dislike',
                  'dislike', 'dislike', 'dislike', 'dislike', 'dislike',
                  'dislike', 'dislike', 'dislike', 'dislike', 'dislike',
                  'dislike']})
    print cramersV(data['science'], data['math'])

Recommended Posts

Calcul du nombre d'associations de Klamer
10. Compter le nombre de lignes
Obtenez le nombre de chiffres
Calculez le nombre de changements
Calcul du nombre minimum de voix requis à partir du taux de vote
Obtenez le nombre de vues de Qiita
Obtenez le nombre d'abonnés Youtube
Compter / vérifier le nombre d'appels de méthode.
Compter le nombre de caractères avec écho
À propos de la précision de la méthode de calcul du rapport de circonférence d'Archimède
Calculez le nombre total de combinaisons avec python
Divisez la chaîne de caractères en le nombre de caractères spécifié
Trouvez le nombre de jours dans un mois
Minimisez le nombre de polissages en optimisant la combinaison
Déterminez le nombre de classes à l'aide de la formule Starges
Calcul de l'itinéraire le plus court selon la méthode de Monte Carlo
Le début de cif2cell
Comment connaître le numéro de port du service xinetd
Découvrez la bonne efficacité de calcul de la vectorisation en Python
[Python] Un programme qui compte le nombre de vallées
Projecet Euler 12 Trouvez le nombre de fractions sans diviser.
Comment obtenir le nombre de chiffres en Python
Le sens de soi
le zen de Python
Essayez d'estimer le nombre de likes sur Twitter
L'histoire de sys.path.append ()
Prédire le nombre de personnes infectées par COVID-19 avec Prophet
Obtenir la taille (nombre d'éléments) de Union Find en Python
[Résumé de 27 langues] Méthode de calcul des chiffres de contrôle de mon numéro
Gérez le numéro de version du package de requirements.txt avec pip-tools
[Python] Obtenez le nombre de vues de tous les articles publiés
Concept de raisonnement bayésien (3) ... Calcul des points de changement dans le nombre d'emails reçus par PyMC3
Visualisez le nombre de plaintes des compagnies d'assurance-vie
La vengeance des types: la vengeance des types
Clustering G-means qui détermine automatiquement le nombre de clusters
Comment trouver le nombre optimal de clusters pour les k-moyennes
Maya | Découvrez le nombre de polygones dans l'objet sélectionné
Examiner la plage d'erreur dans le nombre de décès dus à la pneumonie
[Python] Fonctionnalisation de la formule de Heron et calcul de la surface maximale
Comptez le nombre de caractères dans le texte dans le presse-papiers sur Mac
Obtenez le nombre d'éléments spécifiques dans la liste python
Python --Trouvez le nombre de groupes dans l'expression regex
Comment calculer la quantité de calcul appris de ABC134-D
Essayez d'améliorer la précision de l'estimation du nombre de Twitter
[Homologie] Comptez le nombre de trous dans les données avec Python
Comment augmenter le nombre d'images de jeux de données d'apprentissage automatique
Visualisons le nombre de personnes infectées par le virus corona avec matplotlib
[Baies non paramétriques] Estimation du nombre de clusters à l'aide du processus Diricle
Obtenez le nombre d'occurrences pour chaque élément de la liste
Méthode d'approximation numérique lorsque le calcul de la dérivée est gênant
Aligner la version de chromedriver_binary
Grattage du résultat de "Schedule-kun"
L'histoire de la construction de Zabbix 4.4
Comparez les polices de jupyter-themes
Expliquez le code de Tensorflow_in_ROS
Réutiliser les résultats du clustering
Calcul de similitude par MinHash