111 lines
2.7 KiB
ReStructuredText
111 lines
2.7 KiB
ReStructuredText
|
Présentation des outils de statistiques de pyMath
|
||
|
=================================================
|
||
|
|
||
|
La partie statistique de pyMath est un module python qui permet generer des données statistiques et de les analyser pour un niveau collège - début de lycée.
|
||
|
|
||
|
Analyse des données
|
||
|
-------------------
|
||
|
|
||
|
La gestion des données statistiques se fait à travers 2 classes: *Dataset* (ensemble de données) et *WeightedDataset* (ensemble de données pondérées).
|
||
|
|
||
|
.. code-block:: python
|
||
|
|
||
|
>>> from pytmath import Dataset, WeightedDataset
|
||
|
>>> d = Dataset([1, 3, 4, 2, 4, 1], data_name = "Points")
|
||
|
>>> print(d)
|
||
|
[1, 3, 4, 2, 4, 1]
|
||
|
>>> w = WeightedDataset({1:3, 2:4, 3:5}, data_name = "Nombre de frères", weight_name = "Effectifs" )
|
||
|
>>> print(w)
|
||
|
{1:3, 2:4, 3:5}
|
||
|
|
||
|
Le passage du *Dataset* à *WeightedDataset* revient à compter les effectifs de chaque classe (il n'est pas encore possible de définir des classes sous forme d'intervals).
|
||
|
|
||
|
.. code-block:: python
|
||
|
|
||
|
>>> W = WeightedDataset(d)
|
||
|
>>> print(W)
|
||
|
{1: 2, 2: 1, 3: 1, 4: 2}
|
||
|
|
||
|
Une fois les données définies, on peut calculer les indicateurs statistiques suivants:
|
||
|
|
||
|
- L'effectif total (ou la pondération totale):
|
||
|
|
||
|
.. code-block:: python
|
||
|
|
||
|
>>> d.effectif_total()
|
||
|
6
|
||
|
>>> w.effectif_total()
|
||
|
12
|
||
|
|
||
|
- La somme:
|
||
|
|
||
|
.. code-block:: python
|
||
|
|
||
|
>>> d.sum()
|
||
|
15
|
||
|
>>> w.sum() #/!\ c'est une somme pondérée
|
||
|
26
|
||
|
|
||
|
- La moyenne:
|
||
|
|
||
|
.. code-block:: python
|
||
|
|
||
|
>>> d.mean()
|
||
|
2.5
|
||
|
>>> w.mean()
|
||
|
2.17
|
||
|
|
||
|
- La variance et l'écart-type (sd):
|
||
|
|
||
|
.. code-block:: python
|
||
|
|
||
|
>>> d.variance()
|
||
|
1.58
|
||
|
>>> d.sd()
|
||
|
1.26
|
||
|
>>> w.variance()
|
||
|
0.64
|
||
|
>>> w.sd()
|
||
|
0.8
|
||
|
|
||
|
- Les quartiles et les valeurs extrèmes:
|
||
|
|
||
|
.. code-block:: python
|
||
|
|
||
|
>>> max(d)
|
||
|
4
|
||
|
>>> d.quartiles() #(min, Q1, Me, Q3, Max)
|
||
|
(1, 3, 3, 4, 4)
|
||
|
>>> d.quartile(1) # Q1
|
||
|
3
|
||
|
>>> min(w)
|
||
|
1
|
||
|
>>> w.quartiles() #(min, Q1, Me, Q3, Max)
|
||
|
(1, 1.5, 2, 3, 3)
|
||
|
>>> w.quartile(2) #Me
|
||
|
2
|
||
|
|
||
|
Enfin une fonction rudimentaire a été ajouté pour présenter ces données dans un tableau formaté pour Latex
|
||
|
|
||
|
.. code-block:: python
|
||
|
|
||
|
>>> print(d.tabular_latex())
|
||
|
\begin{tabular}{|c|*{6}{c|}}
|
||
|
\hline
|
||
|
1 & 3 & 4 & 2 & 4 & 1 \\
|
||
|
\hline
|
||
|
\end{tabular}
|
||
|
>>> print(w.tabular_latex())
|
||
|
\begin{tabular}{|c|*{3}{c|}}
|
||
|
\hline
|
||
|
Nombre de frères & 1 & 2 & 3 \\
|
||
|
\hline
|
||
|
Effectifs & 3 & 4 & 5 \\
|
||
|
\hline
|
||
|
\end{tabular}
|
||
|
|
||
|
|
||
|
Générer des données aléatoirement
|
||
|
---------------------------------
|
||
|
|