Creare la tabella del chi quadrato in Python

Questo codice utilizza la libreria scipy.stats per calcolare i valori critici del chi quadrato e li organizza in una tabella utilizzando pandas. I valori sono arrotondati a due cifre decimali per una visualizzazione più chiara.

import pandas as pd
import numpy as np
from scipy.stats import chi2

# Definire i gradi di libertà e i livelli di significatività
degrees_of_freedom_extended = np.arange(1, 41)
alpha_values_extended = [0.5, 0.25, 0.1, 0.05, 0.025, 0.01, 0.005, 0.001]

# Costruire la tabella con i nuovi parametri
chi_square_table_extended = pd.DataFrame({
    f'α = {alpha}': [round(chi2.ppf(1 - alpha, df), 2) for df in degrees_of_freedom_extended]
    for alpha in alpha_values_extended
}, index=degrees_of_freedom_extended)

chi_square_table_extended.index.name = 'Degrees of Freedom'

# Visualizzare la tabella
chi_square_table_extended

Ecco la spiegazione dettagliata del codice.

Per prima cosa importo le librerie necessarie al programma.

import pandas as pd
import numpy as np
from scipy.stats import chi2

Il codice utilizza tre moduli esterni:

  • `pandas` viene utilizzato per creare e gestire la tabella in formato DataFrame.
  • `numpy` serve per creare un array dei gradi di libertà.
  • `scipy.stats.chi2` fornisce la distribuzione del chi quadrato e viene utilizzata per calcolare i valori critici.

Poi definisco i parametri della tabella: i gradi di libertà e i livelli di significatività.

degrees_of_freedom_extended = np.arange(1, 41)
alpha_values_extended = [0.5, 0.25, 0.1, 0.05, 0.025, 0.01, 0.005, 0.001]

Nella variabile `degrees_of_freedom_extended` creo un array che va da 1 a 40 usando la funzione np.arange(1, 41). Questi rappresentano i gradi di libertà per la tabella.

Nella variabile `alpha_values_extended` memorizzo una lista che contiene i livelli di significatività ( α ) che voglio considerare.

A questo punto costruisco la tabella:

chi_square_table_extended = pd.DataFrame({
f'α = {alpha}': [round(chi2.ppf(1 - alpha, df), 2) for df in degrees_of_freedom_extended]
for alpha in alpha_values_extended
}, index=degrees_of_freedom_extended)

Questa parte del codice crea un DataFrame utilizzando `pandas`.

La struttura della tabella è costruita con un dictionary comprehension, dove:

  • Le chiavi del dizionario sono i nomi delle colonne, formattate come `α = {alpha}` per indicare il livello di significatività.
  • I valori delle colonne sono generati tramite una lista che calcola i valori critici per ogni grado di libertà usando `chi2.ppf(1 - alpha, df)`.
  • `chi2.ppf(1 - alpha, df)` calcola il valore critico del chi quadrato per un dato livello di significatività e grado di libertà.
  • `round(..., 2)` arrotonda ogni valore a due cifre decimali.
  • `index=degrees_of_freedom_extended` imposta l'indice del DataFrame come l'array dei gradi di libertà.

Assegno il nome `"Degrees of Freedom"` all'indice del DataFrame per indicare chiaramente che le righe rappresentano i gradi di libertà.

chi_square_table_extended.index.name = 'Degrees of Freedom'

Infine, visualizzo la tabella che ho appena creato

chi_square_table_extended

Questa riga mostra il DataFrame creato. In un ambiente interattivo (come un notebook Jupyter), questa istruzione visualizza la tabella del chi quadrato in formato tabellare.

Il codice crea una tabella dei valori critici del chi quadrato per diversi gradi di libertà (da 1 a 40) e livelli di significatività ( α ) specifici, arrotondando i valori a due cifre decimali per migliorare la leggibilità.

E così via.

 

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base
  1. Il linguaggio Python
  2. Come installare Python sul PC
  3. Come scrivere un programma in Python
  4. Come usare Python in modalità interattiva
  5. Le variabili
  6. I numeri
  7. Gli operatori logici
  8. Le strutture iterative ( o cicli )
  9. Le strutture condizionali
  10. Le eccezioni
  11. I file in python
  12. Le classi
  13. I moduli