Skip to content
Extraits de code Groupes Projets
Valider dc7bcefc rédigé par Anzo's avatar Anzo
Parcourir les fichiers

updated stats

parent 2b81d33a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Fichier ajouté
...@@ -3,7 +3,10 @@ import graph ...@@ -3,7 +3,10 @@ import graph
from datetime import datetime from datetime import datetime
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import numpy as np import numpy as np
import stats
import scipy
import seaborn as sns import seaborn as sns
import csv
#shut up stupid warnings from not "the-most-up-to-date" libraries #shut up stupid warnings from not "the-most-up-to-date" libraries
import warnings import warnings
...@@ -43,6 +46,31 @@ def iteratives(N, seed, generator): ...@@ -43,6 +46,31 @@ def iteratives(N, seed, generator):
results[name] = res results[name] = res
return results return results
def write_stats(data, name):
fields=["name","quantil25", "quantil50", "quantil75", "mean"
, "variance", "skew", "exckurt"]
quantil25 = np.quantile(data,0.25)
quantil50 = np.quantile(data,0.5)
quantil75 = np.quantile(data,0.75)
mean = np.mean(data)
variance = np.var(data)
skew = scipy.stats.skew(data)
exckurt = scipy.stats.kurtosis(data) - 3
#write file
with open(name+'.csv', 'w', newline='') as csvfile:
datawriter = csv.DictWriter(csvfile, fieldnames=fields)
datawriter.writeheader()
datawriter.writerow({
"name" : name,
"quantil25" : str(quantil25),
"quantil50" : str(quantil50),
"quantil75" : str(quantil75),
"mean" : str(mean),
"variance" : str(variance),
"skew" : str(skew),
"exckurt" : str(exckurt)})
return
if __name__=="__main__": if __name__=="__main__":
##INIT PARAMS## ##INIT PARAMS##
N = 100 N = 100
...@@ -70,3 +98,6 @@ if __name__=="__main__": ...@@ -70,3 +98,6 @@ if __name__=="__main__":
graph.compare(0, RESOLUTION, seed graph.compare(0, RESOLUTION, seed
, iteratives([1000, 10, 100], seed, ParkMiller())) , iteratives([1000, 10, 100], seed, ParkMiller()))
print(stats.chisquared_uniform(data["ParkMiller"],N))
print(np.quantile(data["ParkMiller"],0.25))
write_stats(data["ParkMiller"],"ParkMiller")
"""
Module to calculate various value on an array
(Quantile, mean, etc..)
"""
import numpy as np
import scipy
def chisquared_uniform(arr, N):
"""
chisquared for uniform distrib
"""
_,counts = np.unique(arr, return_counts=True)
observed_freq = counts/N
#print(observed_freq)
expected_freq = np.full(shape=observed_freq.size,fill_value=1/N)
print(observed_freq),print(expected_freq)
print(np.sum(expected_freq), np.sum(observed_freq))
return scipy.stats.chisquare(observed_freq, expected_freq)
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter