Sito personale

Economia, finanza e dati, fatti per essere verificati.

audio attivo

LMG e PMVD più veloci

Perché una routine mia

LMG e PMVD dividono l’R² di una regressione fra predittori correlati facendo la media di quanto aggiunge ciascuno, su tutti gli ordini in cui i predittori possono entrare. Il modo esatto, nel pacchetto R relaimpo, passa per ogni sottoinsieme di predittori. Con i 28 determinanti della tesi era fuori portata, così ho scritto la mia, in MATLAB.

Tutti i sottoinsiemi (relaimpo): p · 2^pOrdinamenti campionati (la mia): N · p³, N = 10.000
10²10⁴10⁶10⁸10¹⁰10¹²51015202530predittori, pcosto asintotico, unità arbitrarie (scala logaritmica)p = 23: pareggiop = 28: la tesi10²10⁴10⁶10⁸10¹⁰10¹²51525predittori, pcosto asintotico, unità arbitrarie (scala logaritmica)p = 23: pareggiop = 28: la tesi

Fig. 1. Il costo del metodo esatto contro il mio, al crescere dei predittori. Il mio costa meno da p = 23. A p = 28, il caso della tesi, il metodo esatto costa circa 34 volte tanto.

Fonte: tesi, sezione 4.1.2 · Metodo: costo asintotico, tutti i sottoinsiemi O(p · 2^p) contro 10.000 ordinamenti campionati O(N · p³), costanti trascurate · Limite: conteggi di operazioni, non tempi misurati.

Una fattorizzazione per ordinamento

Per ogni ordinamento campionato la routine permuta la matrice di covarianza dei predittori e la fattorizza una volta sola (Cholesky). Una sostituzione in avanti dà un vettore u, e le somme progressive di u² sono l’R² del primo predittore, dei primi due, e così via fino a tutti: ogni R² sequenziale in una volta, senza invertire mai una matrice.

  1. Sxx_perm = Sxx.Value(current_set, current_set);

    la covarianza dei predittori, in questo ordinamento

  2. L_full = chol(Sxx_perm, 'lower');

    una sola fattorizzazione di Cholesky

  3. u_full = L_full \ Sxy_perm;

    una sostituzione in avanti, nessuna inversa

  4. seq_R2 = cumsum(u_full.^2).' * invSy2;

    tutti gli R² sequenziali dell’ordinamento, in una volta

Fig. 2. Il cuore del ciclo sugli ordinamenti, da lmgANDpmvd.m.

Fonte: la mia routine, righe da 66 a 73 · Metodo: Grömping (2006), formula 12, riscritta con un fattore di Cholesky · Limite: il ciclo gira in serie, il pool parallelo condivide solo le matrici.

Verificata, poi usata

  • 4,3 × 10⁻⁹la distanza massima da relaimpo sull’esempio di Grömping (5 predittori, tutti i 120 ordinamenti)
  • ≤ 0,0007l’errore delle quote LMG campionate rispetto a quelle esatte con 20 predittori, su cinque semi casuali
  • 0,17 sper 10.000 ordinamenti del modello della tesi, rifatto girare su un portatile a settembre 2026

Le verifiche stanno nel repository. Poi la routine è andata sul modello della tesi: 144 paesi, 29 regressori.

PMVDLMG
  • Sistema finanziario e inclusione
    43,9%
    37,0%
  • Istituzioni e politica
    19,2%
    17,8%
  • Fattori socio-culturali
    16,1%
    15,8%
  • Sviluppo e infrastrutture
    4,4%
    13,9%
  • Contesto macroeconomico
    13,7%
    11,7%
  • Economia illecita e rischio
    2,8%
    3,8%

Fig. 3. Dove va la varianza spiegata dell’adozione crypto, per famiglia di determinanti (R² = 0,503).

Fonte: tesi, tabella 3 · Metodo: LMG e PMVD, 10.000 ordinamenti campionati, 144 paesi · Limite: quote di varianza spiegata, non effetti causali. Con gli ordinamenti campionati PMVD non è stabile, LMG sì.

PMVD mette quasi tutto il suo peso su una manciata di ordinamenti, che il campionamento uniforme pesca di rado, quindi le sue quote si spostano da un’esecuzione all’altra: la concentrazione bancaria era al 34% nella tesi e al 29% rifacendo girare il codice. LMG resta ferma, al 26,75% e al 26,55%, ed è quella che la tesi legge.

Apri il repository su GitHub per approfondiregithub.com