[PYTHON] Wahrscheinlichkeitsstatistik in Pokemon (Nichtkorrelationstest) - Gibt es eine Korrelation zwischen CP, Gewicht und Größe von Koiking?

pokemon go

Überblick

Gewinner des Buzzword Award 2016 ** Pokemon GO **: Ausruf: Habt ihr alle viel Pokemon gefangen und gespielt: Frage:

Übrigens, in Pokemon GO,

** Es gibt unterschiedliche Merkmalswerte = Einzelwerte (unterschiedliche Werte für jedes Individuum) ** für jedes gefangene Pokémon. Ich habe mich immer gefragt, wie diese einzelnen Werte verteilt sind oder in welcher Beziehung sie zueinander stehen. ** **. Nun, ich wollte nur herausfinden (Schweiß)

Daher bestätigte ich in diesem Artikel ** unter Verwendung der einzelnen Wertdaten von Koiking, die ich tatsächlich gefangen habe, die Frage, ob es eine Korrelation (kann gesagt werden, dass es keine gibt) zwischen jedem Parameter von CP / Gewicht / Größe durch einen Nichtkorrelationstest. **: Fisch:

Dieser Artikel wurde mit der Absicht geschrieben, Ihnen zu sagen, dass ** "Sie können statistische Analysen mit vertrauten Daten durchführen" auf unterhaltsame Weise, damit ich schwierige Begriffe und Ideen so weit wie möglich vermeide. ** **. In letzter Zeit ist das Gebiet der Datenwissenschaft populär geworden, und ich denke, dass einige Leute an dieser Art von Analyse interessiert sind. Ich hoffe, dass Sie dies als Gelegenheit nutzen, um Statistiken zu studieren.

Bevor Sie mit dem Kommentar beginnen

Zielgruppe dieses Artikels

Experimentierumgebung

Verwendete Sprache

Eigentlich kann diese Analyse mit Excel durchgeführt werden, aber ** Ich denke, ich werde versuchen, ein Skript mit Python zu schreiben. ** Python-Version ist 3.5.0.

Ich denke, die Entwicklungsumgebung kann alles sein, aber ich habe es hauptsächlich mit Sublime Text 3 und dem Terminal gemacht, an das ich gewöhnt bin.

Zu verwendende Daten

Dieses Mal habe ich die Koi King-Daten ($ n = 100 $) verwendet, die ich von Sommer bis Herbst 2016 in meinem Haus und in Tokio Kagurazaka gefangen habe: fishing_pole_and_fish: Verwenden Sie die folgende Methode, um Daten zu erfassen.

  1. Fang Pokemon
  2. Geben Sie den ungefähren Ortsnamen ein, der im Namen erfasst ist
  3. Machen Sie einen Screenshot auf dem Bildschirm zur Bestätigung der einzelnen Werte
  4. Zum Arzt schicken
  5. Geben Sie die Daten manuell ein, indem Sie sich den Screenshot ansehen

Nein, es war eine analoge Methode, also war es ziemlich schwierig (lacht) Es ist praktisch, mit Google Photo oder Dropbox eine Synchronisierung mit dem Computer durchzuführen und den eindeutigen Wert der so gesammelten Bilder manuell einzugeben (ich wünschte, Deep Learning könnte den Wert automatisch lesen ...).

screenshots.png

Die eingegebenen Daten werden im CSV-Format gespeichert. Wenn Sie die von mir gesammelten Daten verwenden möchten, gehen Sie bitte zu hier. Die Spaltenstruktur der CSV-Daten ist wie folgt.

In dieser Analyse werden nur die Spalten ** CP, Gewicht und Höhe ** verwendet.

Voraussetzungen

Ursprünglich sind verschiedene "Voraussetzungen" erforderlich, um mit der statistischen Methode zu analysieren, aber dieses Mal ignoriere ich viele davon und schreibe es mit dem Gefühl, "es vorerst zu versuchen". Verzeihen Sie mir bitte.

Analyse Methode

Beginnen wir nun mit der Analyse des Hauptthemas. Nehmen wir zunächst die CSV-Daten auf und zeichnen sie einmal im Streudiagramm auf: Skalen: Dieses Mal werden die gelesenen Daten mithilfe der Python-Bibliothek Pandas in einen Datenrahmentyp konvertiert.

from pandas.tools.plotting import scatter_matrix
import matplotlib.pyplot as plt
import pandas as pd

data = pd.read_csv("magikarp.csv")
print(data.describe())

plt.figure()
scatter_matrix(data)
plt.savefig("image.png ")

Das Streudiagramm jeder Variablen sieht folgendermaßen aus.

image.png

Bei Koiking zeigen Gewicht und Größe eine ziemlich saubere lineare Verteilung. Von ziemlich kleinen bis zu riesigen Koikes scheint es ökologisch verteilt zu sein und fast die gleiche Realität wie echte Fische zu haben: Lächeln:

Andererseits weiß ich nicht wenig über CP ... Betrachtet man das Histogramm, so ist der CP von 10 deutlich groß, und es scheint, dass es keinen Unterschied in der Anzahl der Personen im CP anderer Bereiche gibt. In Pokemon GO beträgt der niedrigste CP 10, und in schwachen Pokemon wie Koi King ist die Häufigkeit des Auftretens von CP10-Personen hoch. Sie haben sicherlich das Gefühl, dass Sie tatsächlich spielen: Tröpfchen:

Als nächstes finden Sie den Korrelationskoeffizienten ($ \ alpha $) dieser Variablen. ** Dieser Wert ist ein Index, der angibt, ob eine lineare Beziehung zwischen Variablen besteht. Je näher der Absolutwert an 1 liegt, desto stärker ist die lineare Beziehung zwischen einzelnen Werten **. Der Korrelationskoeffizient verwendet die "corr" -Funktion von "dataframe". Dies ist eine großartige Funktion, mit der die Phasenbeziehung zwischen allen Variablen im Datenrahmen berechnet wird.

print(data.corr())
#>               CP    Weight    Height
#> CP      1.000000  0.010724  0.086286
#> Weight  0.010724  1.000000  0.865564
#> Height  0.086286  0.865564  1.000000

Bei Betrachtung des obigen Diagramms wurde bestätigt, dass die Werte wie erwartet waren. Sie können sehen, dass der Korrelationskoeffizient zwischen Gewicht und Größe 0,866 beträgt, was ziemlich stark ist **. Andererseits ist der Korrelationskoeffizient von CP auf den ersten Blick nicht so groß, und es scheint ein wenig nicht überzeugend zu sein, zu sagen, dass er "korreliert" ist.

Überprüfen Sie daher abschließend durch ** Nichtkorrelationstest, ob diese Korrelationskoeffizienten signifikant sind. ** **. Im Nichtkorrelationstest wird eine Hypothese (Nullhypothese) aufgestellt, dass "der erhaltene Korrelationskoeffizient 0 ist", während "die Wahrscheinlichkeit, dass der Korrelationskoeffizient versehentlich 0 ist, extrem niedrig ist" signifikant ist. Durch Ermitteln der Wahrscheinlichkeit ist es eine Methode, um zu bestätigen, ob es sich um einen wirklich aussagekräftigen Korrelationskoeffizienten handelt. Diesmal

Nullhypothese $ H_0: \ alpha = 0 $ Oppositionshypothese $ H_1: \ alpha \ neq 0 $

Es wird getestet als. Scipy hat die Funktion "pearsonr" zum Durchführen eines Tests unter Verwendung des "Pearson-Produkt-Moment-Korrelationskoeffizienten" (es gibt mehrere andere Arten von nicht korrelierten Tests), sodass diese für jede Kombination von Variablen verwendet werden kann. Ausführen und testen. Bei zwei entsprechenden Variablen wird ein Korrelationskoeffizient von $ r $ und eine Signifikanzwahrscheinlichkeit von $ p $ zurückgegeben.

from scipy.stats import pearsonr
...
r, p = pearsonr(data.Height, data.Weight) #Größe und Gewicht
# r, p = pearsonr(data.Height, data.CP) #Höhe und CP
# r, p = pearsonr(data.Weight, data.CP) #Gewicht und CP
print('Korrelationskoeffizient r= {r}'.format(r=r))
print('Signifikanzwahrscheinlichkeit p= {p}'.format(p=p))
print('Signifikanzwahrscheinlichkeit p> 0.05: {result}'.format(result=(p > 0.05)))

Das Ergebnis des Tests ist wie folgt. Wenn diesmal die Signifikanzwahrscheinlichkeit $ p $ kleiner als $ 0.05 $ ist (True im Ergebnis), wird $ H_0 $ mit der Angabe" Es gibt keine Korrelation bei $ \ alpha = 0 $ "übernommen, andernfalls $ H_0 $ Ist abgelehnt.

Gewicht und Höhe


>Korrelationskoeffizient r: 0.8655637883468845
>Signifikanzwahrscheinlichkeit p: 1.7019782502122307e-31
>Signifikanzwahrscheinlichkeit p> 0.05: False #Von Bedeutung

Wiederum erwies es sich erwartungsgemäß als signifikante Korrelation.

Höhe und CP


>Korrelationskoeffizient r: 0.0862864395740605
>Signifikanzwahrscheinlichkeit p: 0.39090582918188466
>Signifikanzwahrscheinlichkeit p> 0.05: True #Nicht signifikant

Gewicht und CP


>Korrelationskoeffizient r: 0.01072432286085844
>Signifikanzwahrscheinlichkeit p: 0.915233564101408
>Signifikanzwahrscheinlichkeit p> 0.05: True

Andererseits war CP auch bis zum Ende wie erwartet. Die Frage, ob es sinnvoll ist, die Korrelation zwischen CP und anderen Variablen zu untersuchen, ist klarer, aber es war nur ein einfaches Beispiel, aber diese Methode kann die Erscheinungsparameter des Spiels bis zu einem gewissen Grad vorhersagen. Wussten Sie das?

Zusammenfassung

Es war also super einfach, aber ich habe versucht, eine Korrelationsanalyse mit Pokemon-Daten durchzuführen. Da die Verteilung der Daten diesmal die Verteilung der Parameter des Spiels ist, kann es interessant sein, die Parameter zu schätzen, indem Aufzeichnungen in anderen Pokémon oder anderen Spielen geführt werden. Möglicherweise kann sich die Verteilung der einzelnen Werte in anderen Pokémon als Koiking erheblich unterscheiden.

Dieses Mal habe ich es zu einem Nichtkorrelationstest gemacht, aber ich möchte etwas anderes Ähnliches tun, also möchte ich irgendwo eine Fortsetzung schreiben. Bis dahin muss ich mehr Statistiken studieren ...

Verweise

Recommended Posts

Wahrscheinlichkeitsstatistik in Pokemon (Nichtkorrelationstest) - Gibt es eine Korrelation zwischen CP, Gewicht und Größe von Koiking?
[Kostenlose Recherche] Gibt es einen Zusammenhang zwischen Wikipedia-Updates und Trends?
Unterschied zwischen == und ist in Python
Gibt es ein besonderes in scipy? ??
Zusammenfassung der Wahrscheinlichkeitsverteilungen, die häufig in Statistiken und Datenanalysen vorkommen