Le metodologie crisp tradizionali, basate su soglie rigide e logica binaria, falliscono nel catturare la natura sfumata e contestuale del rischio creditizio, soprattutto in un mercato complesso come quello italiano, dove variabili qualitative – come la storia creditizia informale, il rapporto debito/reddito contestuale o la stabilità occupazionale in settori dinamici – richiedono una modellazione più flessibile. L’analisi fuzzy set offre una risposta sofisticata: trasforma l’incertezza in variabili di appartenenza, permettendo di rappresentare gradi di verità piuttosto che semplici yes/no. Questo approfondimento tecnico esplora, passo dopo passo, come progettare, implementare e ottimizzare un sistema fuzzy dedicato alla valutazione del rischio creditizio, con particolare attenzione all’adattamento al contesto italiano, integrando dati strutturati e giudizi di esperti locali, come richiamato nel Tier 2 dell’analisi fuzzy.

Perché la logica crisp non basta nel credito italiano
I modelli score tradizionali, fondati su soglie fisse – per esempio, un rapporto debito/reddito > 40% = rischio alto – ignorano la realtà: molti imprenditori del Mezzogiorno hanno redditi variabili ma buona affidabilità, mentre lavoratori dipendenti con rating medio-basso possono essere solvibili. La logica fuzzy, con funzioni di appartenenza (membership functions) e operatori t-norm/t-conorm, permette di modellare questi gradi intermedi. Ad esempio, un rapporto debito/reddito tra 35% e 50% può appartenere parzialmente all’insieme “moderatamente rischioso” e parzialmente a “solvibile”, con un grado di appartenenza calcolabile tramite funzioni trapezoidali adattate ai dati Banca d’Italia del 2023.

Fondamenti teorici: funzioni di appartenenza e aggregazione fuzzy
La scelta della funzione di appartenenza è critica. In contesti italiani, si preferiscono forme sigmoidali o trapezoidali con supporto centrato su valori chiave del portafoglio:
– Reddito: funzione trapezoidale con valore base 28.000€ (LIR media in Nord Italia), sopra dove > 45.000€ gradimento 0, sotto dove < 20.000€ gradimento 1.
– Rapporto debito/reddito: funzione trapezoidale con soglia inferiore 0, rapporto 0.3 = appartenenza 0, rapporto 0.5 = 0.7, sopra 0.7 = appartenenza 1.
– Storia creditizia: membership con gradiente decrescente dal 0% di ritardi > 6 mesi al 100% a 0%, con transizione lineare tra 1 e 3 ritardi.

L’aggregazione fuzzy combina queste variabili tramite operatore t-conorm max-min, che preserva la robustezza delle combinazioni. Per esempio, un profilo con reddito medio (0.6 di appartenenza) e rapporto 0.4 (0.7) genera un’aggregazione fuzzy del 0.7, superiore alla soglia classica 0.6, indicando un profilo più solvibile di quanto suggerirebbe un modello crisp.

Fase 1: identificazione e qualificazione delle variabili fuzzy
Obiettivo definire insiemi fuzzy per le tre variabili chiave: reddito, rapporto debito/reddito (d/R), storia creditizia (SCR).

  1. Reddito:
    • Definiamo l’insieme “Basso” come gradimento ≤ 32.000€ (μ = 1), “Medio” tra 32k-55k (μ crescente da 0.3 a 1), “Alto” > 55k (μ decrescente da 0.8 a 1).
    • Calibriamo con dati Banca d’Italia 2023: il 72% dei portafogli con d/R < 0.5 ha reddito medio-LIR, mentre > 0.7 appartiene a “Alto reddito”.
  2. Rapporto debito/reddito (d/R):
    • Insiemi: “Basso” d/R ≤ 0.4 (μ 0.7), “Medio” 0.4–0.7 (μ crescente 0.3–0.9), “Alto” > 0.7 (μ decrescente 0.5–1).
    • Flessibilità: in aree con costi della vita elevati (es. Roma, Milano), soglia “Medio” si sposta a d/R ≤ 0.5, riflettendo maggiore sensibilità.
  3. Storia creditizia (SCR):
    • Gradienza: 0 = nessun ritardo >6m, 0.3 per 1–3, 0.7 per >3, 1 >6m.
    • In regioni con maggiore informalità (es. Calabria), il “>3 ritardi” si raggiunge a d/R ≤ 0.6, per riflettere cultura del ritardo meno formalizzata.

    Queste membership functions sono calibrare con curve ROC su portafogli storici regionali, confrontando con benchmark Banca d’Italia per evitare bias.

    Fase 2: progettazione della base di regole fuzzy con approccio Mamdani
    Il modello Mamdani è preferito per la sua interpretabilità, tipica nel credit scoring italiano dove la spiegabilità è cruciale per compliance e fiducia.>

    1. Definiamo regole IF-THEN esplicite con linguaggio naturale e formalismo:
      • IF d/R è Basso AND reddito è Medio AND SCR è Alto THEN rischio = Basso (μ 0.85)
      • IF d/R è Alto AND reddito è Basso AND SCR è Basso THEN rischio = Alto (μ 0.9)
      • IF d/R è Medio AND SCR è Medio THEN rischio = Medio (μ 0.6)
      • IF d/R è Alto AND SCR è Alto THEN rischio = Moderato (μ 0.5)

    L’operatore t-norm prodotto (μ_A ∧ μ_B = μ_A × μ_B) garantisce una combinazione conservativa e robusta, evitando sovrastima del rischio in scenari misti.
    Fase 3: implementazione tecnica e integrazione con sistemi esistenti
    L’integrazione richiede un’API fuzzy engine che calcoli il grado di appartenenza aggregato per ogni profilo, esportando un punteggio fuzzy di rischio (0–1).>

    1. Architettura:
      • Backend: API REST in Java con libreria skfuzzy (https://github.com/matteo-b/skfuzzy), caricata su container Docker.
      • Frontend: interfaccia web in React con chiamata asincrona `/api/fuzzy-risk?dR=0.6&reddito=32000&socr=0.4`.
      • Database: PostgreSQL con schema ottimizzato per dati strutturati e membership functions salvataggi JSON.
    2. Preprocessing:
      • Normalizzazione dummy: d/R e reddito su scala 0–1, SCR binarizzato (0/1), gestione missing con imputazione mediana locale.
      • Encoding qualitativi: SCR trasformato in categorico con membership dirette, d/R e reddito codificati come float continuo.
    3. Calcolo fuzzy:
      • Script Python:
        “`python
        import skfuzzy as fuzz
        dR = 0.6; reddito = 32000; socr = 0.4
        dR_mem = fuzz.trapmf(dR, [0, 25000, 50000, 100000])
        red_mem = fuzz.trapmf(reddito, [20000, 40000, 70000, 120000])
        socr_mem = fuzz.trapmf(socr, [0, 0.3, 0.7, 1])
        rischio = fuzz.ifthen(dR_mem * red_mem * socr_mem, 0.85, 0.9)
        “`

      • Output: μ_rischio = 0.83, interpretabile come “probabilità stimata di insolvenza nel

Leave a Reply

Your email address will not be published. Required fields are marked *