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.1.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.1-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: my_lib_lunati-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 e62ddeefb27e63c1c708c14c1a80da37b249a1b543d2117c22cece783f19d97c
MD5 83767a0ff0089dca4770cd035f4150ee
BLAKE2b-256 ccae43a923b04becaf789c272bec5b8985bb9a35cb05c29f7668689ed758dd72

See more details on using hashes here.

File details

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

File metadata

  • Download URL: my_lib_lunati-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 820f72e7ae93595181660c48b1549eced14234c0c2e119514da0cc4819f7e2b0
MD5 6945e4022ad0f8251d1e912f0a3425dd
BLAKE2b-256 61fc11215d6e7a8d5fc1985b93632700e274fac89c5638548164c11fd044c5d9

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