Skip to main content

Una libreria Python per l'analisi dati con fit lineari e test statistici.

Project description


my-lib-lunati

PyPI version License: MIT

Una libreria Python leggera e focalizzata per le operazioni comuni di analisi dati in contesti scientifici e sperimentali. Esegui fit lineari pesati e non, calcola la bontà del fit con il Chi Quadro e confronta misure in modo statisticamente robusto con un'API semplice e intuitiva.

Questa libreria è stata creata per essere uno strumento pratico e di facile utilizzo, ideale per l'analisi rapida di dati in ambienti come Jupyter Notebooks, Google Colab o script personali.

Caratteristiche Principali

  • Fit Lineari Multipli:
    • Pesato: Ideale quando si conoscono le incertezze su ogni punto dati (calcola_fit_lineare_pesato).
    • Semplice: Utile quando le incertezze non sono note e vengono stimate dalla dispersione dei dati (calcola_fit_lineare_semplice).
    • Bayesiano: Fornisce un'analisi completa della posterior probability per i parametri del fit (calcola_fit_bayesiano).
  • Valutazione della Bontà del Fit:
    • Calcola il Chi Quadro ($\chi^2$), i gradi di libertà, il Chi Quadro ridotto e il p-value per determinare quantitativamente la qualità del fit (calcola_chi_quadro).
  • Test Statistici:
    • Test di Compatibilità: Confronta due misure sperimentali (es. un valore misurato e uno teorico) e ne calcola la compatibilità tramite z-score (test_compatibilita).
  • Funzioni Helper:
    • Stampa i risultati in tabelle formattate e di facile lettura.

Installazione

Puoi installare my-lib-lunati direttamente da PyPI usando pip. È consigliabile farlo all'interno di un ambiente virtuale.

pip install my-lib-lunati

La libreria dipende da numpy e scipy, che verranno installati automaticamente se non già presenti.

Guida Rapida (Quickstart)

Ecco un esempio completo che mostra un tipico flusso di lavoro in meno di 20 righe di codice.

import numpy as np
import my_lib_lunati as mll

# --- 1. Dati Sperimentali di Esempio ---
# Immaginiamo di aver misurato la relazione tra due variabili
x_data = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y_data = np.array([3.4, 5.6, 7.9, 10.1, 12.4, 14.6, 17.0, 18.9])
y_error = np.array([0.4, 0.5, 0.4, 0.6, 0.5, 0.5, 0.6, 0.7])


# --- 2. Eseguire il Fit Lineare Pesato ---
# Usiamo il fit pesato perché conosciamo gli errori sui punti y
risultati_fit = mll.calcola_fit_lineare_pesato(x_data, y_data, y_error)


# --- 3. Stampare i Risultati del Fit ---
# La funzione helper formatta l'output in modo chiaro
mll.stampa_risultati_fit(risultati_fit, titolo="--- Fit Lineare dei Dati Sperimentali ---")


# --- 4. Valutare la Bontà del Fit (Test del Chi Quadro) ---
# Prima calcoliamo i valori y predetti dal nostro modello
m_fit = risultati_fit['pendenza']
q_fit = risultati_fit['intercetta']
y_predetti = m_fit * x_data + q_fit

# Ora eseguiamo il test del Chi Quadro (2 parametri liberi: m e q)
risultati_chi2 = mll.calcola_chi_quadro(y_data, y_predetti, y_error, num_parametri_fit=2)
mll.stampa_chi_quadro(risultati_chi2)

Output dell'esempio:

--- Fit Lineare dei Dati Sperimentali ---
Pendenza (m)      = 2.531061 ± 0.128863
Intercetta (q)    = 0.9413 ± 0.6380
Covarianza (m,q)   = -0.077382
========================================

--- TEST DI BONTÀ DEL FIT (CHI QUADRO) ---
Chi Quadro (χ²)               : 5.861
Gradi di Libertà (dof)        : 6
Chi Quadro Ridotto (χ²/dof)   : 0.977
p-value                       : 0.4390

Interpretazione: Chi^2 ridotto ≈ 1. Modello e dati sono compatibili.
=============================================

Documentazione e API

La libreria è documentata direttamente nel codice tramite docstring dettagliate. Per ottenere informazioni su qualsiasi funzione, i suoi parametri e i valori restituiti, usa la funzione help() nell'interprete Python:

import my_lib_lunati as mll

# Ottieni aiuto sulla funzione del fit pesato
help(mll.calcola_fit_lineare_pesato)

# Ottieni aiuto sulla funzione del Chi Quadro
help(mll.calcola_chi_quadro)

Contribuire

Le contribuzioni sono benvenute! Se trovi un bug o hai un'idea per una nuova funzionalità, per favore apri una "Issue" sulla pagina GitHub del progetto.

Licenza

Questo progetto è rilasciato sotto la Licenza MIT. Vedi il file LICENSE per maggiori dettagli.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

my_lib_lunati-0.1.2.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

my_lib_lunati-0.1.2-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file my_lib_lunati-0.1.2.tar.gz.

File metadata

  • Download URL: my_lib_lunati-0.1.2.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for my_lib_lunati-0.1.2.tar.gz
Algorithm Hash digest
SHA256 39c2e3f5c176b3d4a36033c8d91b506423b13b66684fc5372affe1a82499e4ba
MD5 99d43241b958920f1a45a9ccd9c2c1fc
BLAKE2b-256 11898a51744f56aee334431aa307b1cb66e54bbd3d714433f49f2e02323426c2

See more details on using hashes here.

File details

Details for the file my_lib_lunati-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: my_lib_lunati-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for my_lib_lunati-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f70cc220c8c43925208610dcb7ca5751dc9941b0a4f7e2fee2455542538d0783
MD5 2fd721bc8b5895b4feac39ac4dcb596b
BLAKE2b-256 f5b1c8256ffd1f6508acdfbac143ca32dfd30f21c60ba616636fbca90a08a702

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page