Femminicidi, un problema degli anziani?

A mia memoria, non era mai successo che un problema sociale attirasse un’attenzione così enorme come quella suscitata dal dramma di Giulia Cecchettin, e al tempo stesso fosse così poco studiato, almeno in Italia. Il fatto che quasi tutti abbiano un’opinione sulle cause e sui rimedi, non deve ingannarci: in realtà non sappiamo quasi nulla, se per “sapere” intendiamo conoscere chi sono le vittime, quali sono le cause, quali possono essere i rimedi efficaci.

Finora, quasi tutte le analisi del fenomeno si sono basate su dati molto aggregati, senza riuscire a scendere nel dettaglio – caso per caso, individuo per individuo – come sarebbe necessario se vogliamo cominciare a capire. Per questo meritano una speciale riconoscenza le donne dell’associazione Non Una Di Meno (NUDM), che da alcuni anni raccolgono in un database tutte le informazioni disponibili su ogni evento in cui una donna viene uccisa, indipendentemente dal fatto che l’omicidio possa essere classificato come femminicidio oppure no (al momento non esiste una definizione statistica condivisa e facile da applicare).

Sono andato a curiosare nel database, che descrive i 110 casi del 2023, e ho provato a fare alcuni calcoli, confrontando i profili di tre insiemi: le donne uccise, i loro uccisori, la popolazione italiana di almeno 10 anni. Ed ecco alcuni risultati.

Cominciamo da quella che considero la maggiore sorpresa: l’età media. Come la maggior parte delle persone che – a titolo di curiosità – ho interrogato in questi giorni, pensavo che le fasce di età a maggiore rischio fossero quelle intorno ai 20-30 anni, o tutt’al più fino ai 40. Ebbene, niente di più sbagliato. Nella fascia 20-40 anni rientra solo 1 donna uccisa su 4. La fascia a maggiore rischio è la fascia delle donne con almeno 60 anni, e il rischio aumenta passando alla fascia delle ultra-70enni. E infatti l’età media di tutte le donne uccise è 53 anni, e quella dei loro assassini (quasi tutti maschi) è 54 anni, entrambe maggiori dell’età media degli italiani  che è di 46 anni (50 se escludiamo i bambini).

In concreto, questo significa che il rischio di essere uccisa di una donna anziana è maggiore di quello di una donna giovane o adulta. Si potrebbe pensare che questo sia dovuto al fatto che, nelle uccisioni di donne, rientrano anche i casi che non configurano un femminicidio. Ma ripetendo il calcolo per i soli femminicidi in base a due definizioni e a due dataset diversi (è stato pubblicato anche un secondo dataset, molto meno ricco), il risultato non cambia, anzi si rafforza: il rischio di essere uccisa di una anziana di almeno 60 anni è del 46% più alto di quello di una donna sotto i 60, e quello di una donna di almeno 70 anni è del 69% più alto di quello di una donna sotto i 70. In breve: il caso di Giulia non è in nessun modo tipico.

Ma questa non è l’unica sorpresa. Nel database di NUDM ci sono molte altre informazioni che, in teoria, potrebbero aiutarci a costruire un profilo tipico delle vittime e dei loro assassini. Ebbene, quel che si scopre facendo i confronti con la popolazione, è che un tale profilo non c’è, anche se – su alcune variabili – emerge una qualche specificità del campione dei femminicidi (lo chiamo così per brevità). I 108 casi registrati sono avvenuti in quasi tutte le regioni; in comuni piccoli, medi e grandi; gli autori del delitto sono operai, impiegati, dirigenti, commercianti, pensionati, disoccupati, tutti in proporzioni comparabili a quelle della popolazione maschile generale.

Solo su alcuni particolari aspetti, è possibile rintracciare scostamenti – talora grandi, talora al limite della significatività statistica – fra il campione e la popolazione. Uno scostamento macroscopico, ma forse non sorprendente, è che metà degli aggressori o si suicida (oltre 1 su 3) o è comunque in una condizione di devianza nel senso tecnico del termine (precedenti penali, prostituzione, problemi psichiatrici, vagabondaggio, eccetera). Un secondo scostamento riguarda la nazionalità delle vittime e degli aggressori. In entrambi i casi sono sovrarappresentate le persone di nazionalità straniera, ma con una importante asimmetria: nel campione il rischio che una donna italiana sia uccisa da uno straniero è quasi 7 volte più alto del rischio opposto, ossia che una donna straniera sia uccisa da un italiano.

Prendere spunto da questi dati per fare affermazioni generali sulle radici dei femminicidi sarebbe una mossa avventata. Però, forse, una piccola considerazione possiamo farla: la visione che abbiamo dei femminicidi è molto stereotipata. Il caso della giovane donna vittima di un partner possessivo, ma per il resto “normale”, è decisamente minoritario. Le donne di meno di 40 anni uccise dal partner o dall’ex sono 20 su 110, e scendono a 16 se trascuriamo i casi in cui l’aggressore è un deviante o si suicida. In altre parole: i casi analoghi a quelli di Giulia e Filippo, anche a voler considerare tutta la fascia di età fino ai 40 anni, riguardano circa il 15% delle uccisioni di donne. E tutto il resto?

Sul resto dobbiamo indagare e riflettere, sapendo però che – al centro – ci sono le donne che attraversano “il terzo tempo” della loro vita, come lo ha chiamato Lidia Ravera in un suo libro recente sulla vecchiaia. Un gruppo sociale al quale, notava fin dagli anni ’80 un’altra scrittrice – Natalia Ginzburg – la nostra società riserva una sola, ipocrita, cortesia, quella di chiamarle anziane anziché vecchie.




Dieci buoni motivi per non credere (troppo) ai sondaggi – 1. Effetto “bandwagon”.

In senso letterale il termine inglese bandwagon indica il carro che trasporta la banda musicale in una parata. Salire sul carro della banda è dunque gratificante poiché permette di condividere il centro dell’attrazione del pubblico. Salire sul carro (del vincitore) è una delle principali conseguenze del cosiddetto clima di opinione politico-elettorale, che ha avuto un notevole successo negli ultimi anni per analizzare l’orientamento e il comportamento di voto anche nel nostro paese.

L’idea di fondo è che il clima abbia un certo effetto anche sulle opinioni di voto espresse da (alcuni) degli intervistati, soprattutto da quelli indecisi, che tenderebbero nei sondaggi pre-elettorali ad indicare (mentendo) il partito o la coalizione che gode di maggior appeal, oppure a sottacere il loro futuro appoggio al partito “perdente”. Si tratta di una sorta di “spirale del silenzio demoscopico” per cui alcuni elettori, condizionati appunto dal clima di opinione elettorale prevalente, non osano dichiarare apertamente la propria scelta minoritaria nelle interviste, salvo poi farlo nel segreto della cabina elettorale.

Nei sondaggi post-voto accade a volte l’esatto opposto: elettori non completamente convinti della propria scelta elettorale, tendono a dichiarare (mentendo) di aver votato il partito o il candidato vincente, salendo in pratica “sul carro del vincitore”.

Il concetto di clima di opinione elettorale ha subìto una ripresa di interesse nell’ultimo decennio in Italia soprattutto per due motivi.

Il primo è legato alla progressiva perdita di rilevanza delle appartenenze politico-sociali, che caratterizzavano la sostanziale stabilità e polarizzazione dell’elettorato italiano nel secondo dopoguerra. Le motivazioni di voto erano attribuibili per una vasta quota di elettori al cosiddetto “voto di appartenenza”, demarcato per questo da un forte livello di fedeltà, una “fedeltà pesante” frutto del radicamento delle tradizionali sub-culture cattolica e social-comunista.

Durante gli anni del successo di Berlusconi, a questa si è sostituita una sorta di “fedeltà leggera”, cioè da un tipo di vicinanza politica (e fedeltà di voto) legata allo schieramento bipolare (pro o contro Berlusconi). Ma anche questo nuovo tipo di fedeltà è terminata, lasciando il posto, da almeno un decennio, ad una inedita volatilità elettorale, scelte piuttosto superficiali veicolate dalle sensazioni collettive del momento, dai discorsi dei leader politici, alle quali si può presto rinunciare senza per questo sentirsi un traditore (l’elettore liquido ben descritto da Bauman).

Il secondo motivo riguarda la capacità di questo concetto di ben adattarsi alla trasformazione delle antiche campagne elettorali nelle attuali campagne permanenti, in cui l’impatto delle dinamiche di opinione – continuamente sollecitate dal rapporto sondaggi-consenso come fattore decisivo sia per l’esercizio della leadership che per le decisioni di governo – tende ad assumere un peso rilevante sia di medio ma perfino di breve periodo, favorendo la costruzione di “micro-cicli di opinione”, che rappresentano a volte un punto di riferimento essenziale per lo stesso comportamento elettorale della popolazione. Non contano più dunque le appartenenze, o i più stabili atteggiamenti, contano le emozioni del momento, nell’elettore liquido, conta il clima di opinione sempre più fluido e intercambiabile, cui il cittadino provvisoriamente si adatta.

Una volta che un particolare clima d’opinione si è diffuso all’interno del paese, l’elettore interrogato nel corso di un’indagine demoscopica si trova in alcuni casi quasi “in imbarazzo” a dichiarare la propria preferenza per il partito, il candidato o la coalizione che pensa non godano delle simpatie del resto della popolazione elettorale. Si rifugia in questi casi all’interno di quello che ho definito come “spirale del silenzio demoscopico”, preferendo cioè tacere il suo reale appoggio per quella forza politica, salvo poi votarla nel segreto dell’urna. Molti sondaggi sono pervasi da questa dinamica, che non permette di ottenere stime corrette del reale orientamento di voto di una parte significativa degli intervistati

Paolo Natale

Estratto del volume “Sondaggi”, in uscita nel prossimo autunno presso Laterza

 

 




Dieci buoni motivi per non credere (troppo) ai sondaggi*

*estratto del volume “Sondaggi”, in uscita nel prossimo autunno presso Laterza

 

Maneggiare con cura: questo dovrebbe esserci scritto o sottolineato chiaramente, prima della presentazione dei risultati di qualsiasi indagine demoscopica. Purtroppo, questo avviene solo sporadicamente. Negli ultimi 30 anni, come sappiamo, i sondaggi hanno iniziato ad occupare un posto rilevante in tutti gli ambiti, in quello politico come in quello economico, nel marketing come nell’analisi della società. Oggi, perfino una procedura come il Censimento della popolazione viene effettuata attraverso un sondaggio campionario, producendo un vero e proprio ossimoro: se utilizziamo un campione di cittadini, il risultato non potrà mai definirsi un censimento, e anzi produrrà delle stime affette, come vedremo, dal cosiddetto “errore di campionamento”.

Sono proprio i risultati di indagini demoscopiche quelli che prendiamo come attendibili in molti campi, e che ci raccontano lo stato del nostro paese, come fa il Censis nel suo rapporto annuale sullo stato della società italiana. E pochi sanno ad esempio che i dati che ci vengono forniti dall’Istat, sui quali si basano le scelte anche strategiche del mondo politico e imprenditoriale, sull’andamento economico-occupazionale del paese e sulle forze-lavoro (tasso di occupazione, ecc.) non sono altro che il frutto di un sondaggio trimestrale, effettuato certo interrogando un campione molto vasto, 200mila individui all’interno di circa 120mila famiglie, ma pur sempre un campione.

Ma i sondaggi sono infidi, non è semplice né saggio guardare alle stime che vengono prodotte come ad una sorta di oracolo, come a risultati privi di qualsiasi distorsione (o bias), immediatamente rappresentativi delle opinioni della popolazione cui si fa riferimento. Perché esistono molti motivi per osservarli con una certa diffidenza, almeno dieci buoni motivi per non credere (troppo) ai risultati che emergono da una indagine demoscopica.

Da lunedì prossimo 4 luglio, con cadenza giornaliera, nei giorni feriali (dunque dal lunedì al venerdì) verranno presentate e discusse le dieci più importanti distorsioni di cui sono “vittima” tutti i sondaggi, in particolari quelli politico-elettorali, delle quali dovremmo tenere conto quando ci accingiamo a leggere i suoi risultati, pubblicati sui media.

Paolo Natale




Generalizzazione dell’algoritmo di rotazione Chisquaremax di Knüsel

Nel 2008 Leo Knüsel ha introdotto un nuovo metodo con cui affrontare il problema della rotazione nell’analisi fattoriale, problema che consiste nel trovare una matrice di rotazione T da applicare ad una matrice iniziale di loading (A) al fine di produrre una matrice di loading ruotata (L= AT) in cui le relazioni tra variabili manifeste e fattori latenti siano più nitide e rendano così più agevole l’interpretazione dei fattori latenti. Con il metodo Chisquaremax, la matrice dei quadrati dei loading viene considerata alla stregua di una tabella di contingenza e la matrice di rotazione T viene scelta in modo da rendere massima l’associazione tra le righe (variabili manifeste) e le colonne (fattori latenti). Il metodo può essere applicato a rotazioni sia ortogonali sia oblique, qui viene considerato soltanto il caso di rotazioni ortogonali.

Chisquaremax possiede due caratteristiche in particolare che lo rendono una interessante alternativa ai numerosi criteri disponibili in letteratura:

  • tratta in modo simmetrico le righe e le colonne, a differenza di altri metodi che tendono a semplificare unicamente il profilo delle righe (metodo Quartimax) o ad assegnare comunque un peso maggiore alla semplicità delle righe rispetto a quella delle colonne (come in generale i metodi della famiglia Orthomax);
  • non tende a produrre un fattore generale, cioè una colonna su cui saturano molte variabili manifeste, aspetto che caratterizza il metodo Quartimax e neppure a produrre colonne di loadings con la stessa somma dei quadrati, aspetto che caratterizza il metodo Varimax.

La versione dell’algoritmo resa disponibile dall’autore nel lavoro del 2008, tuttavia, non prevede la possibilità di operare la normalizzazione di Kaiser e prevede che la matrice di rotazione iniziale sia unicamente una matrice identità. In questo contributo viene proposta una versione “arricchita”, più generale, che consente:

  1. di applicare la normalizzazione di Kaiser
  2. di usare una matrice di rotazione iniziale random o di ottenere la miglior soluzione all’interno di un certo numero di soluzioni prodotte variando la matrice random di rotazione iniziale.

In appendice viene riportato un esempio di applicazione della funzione “arricchita”, gen.chi2max, e lo script in R.

Riferimenti bibliografici
Harman, H. H. (1976). Modern factor analysis. University of Chicago Press.
Knüsel, L. (2008a). Factor analysis: Chisquare as rotation criterion. Technical Report Number 040, Department of Statistics, University of Munich.
Knüsel, L. (2008b). Chisquare as a rotation criterion in factor analysis. Computational Statistics & Data Analysis, 52(9), 4243-4252.

 

APPENDICE

Esempio di applicazione
La matrice non ruotata A è tratta da Harman (1967, p.186).
Le soluzioni con e senza normalizzazione di Kaiser sono state prodotte con:
gen.chi2max(Mat, b=1000, c=1e-09, d=0, e=50, s=127, g=1)
gen.chi2max(Mat, b=1000, c=1e-09, d=1, e=50, s=127, g=1)

in cui:

Mat = la matrice A, non ruotata
b = numero di iterazioni
c = criterio di convergenza
d = normalizzazione di Kaiser (1=attiva; 0= non attiva)
e = numero di matrici random di rotazione iniziale (e= -1 una sola matrice random; 0= matrice identità; >0 più di una matrice random iniziale)
s = seme per la generazione delle matrici random
g = parametro gamma (vedi Knüsel, 2008a)

Come si osserva dalla tabella, il valore della funzione obiettivo (FOB) cresce passando dalla matrice non ruotata a quelle ruotate, inoltre la soluzione con normalizzazione di Kaiser è leggermente migliore rispetto a quella ottenuta senza la normalizzazione.

Con altre matrici tratte da esempi reali o generate casualmente l’applicazione della normalizzazione di Kaiser non sempre produce un miglioramento della FOB (talvolta produce i medesimi risultati, altre volte un peggioramento della FOB), anche l’utilità di ricorrere a più matrici random di rotazione iniziale dipende dalla matrice di loading inziale.

Script in R

N.B.
La funzione di massimizzazione del Chi quadrato è tratta da Knüsel (2008b).
E’ richiesto il package di R: GPArotation

chi2max.0 = function(x,TT,gamma, bb,cc,dd)
{
x=as.matrix(x)
nc=ncol(x)
 if(missing(bb)) bb=1000
 if(missing(cc)) cc=1e-9
 if(missing(dd)) dd=0
 if(missing(TT)) TT=diag(nc)
 if(missing(gamma)) gamma=1
eps=cc
if (nc<2)
 return(x)
p=nrow(x)
k=ncol(x)
c=0
d=0
z=x%*% TT
 if (dd==0){
H=drop(z^2%*%rep(1,k)) 
 # ss rows (comunalità)
 for (i in 1:bb) {
 D=drop(rep(1,p)%*% z^2 )
 E=drop((1/H) %*% z^4)
 C=diag(1/H) %*% z^3 %*% diag(1/D) - (1/2) * z %*% diag(E) %*% diag(1/D^2)
 B=t(x) %*% C
 sB=La.svd(B)
 TT= sB$u %*% sB$vt
 dpast=d
 d=sum(sB$d)
 zpast=z
 z=x%*% TT
 D=drop(rep(1,p) %*% z^2 ) 
 cpast=c
 c=sum( diag(1/H) %*% z^4 %*% diag(1/D) )
 if (abs(d-dpast)/d < eps && abs(c-cpast) /c < eps && abs(d-c/2)/d < eps)
 break
 z=gamma*z + (1-gamma)*zpast 
 }
 }
 if (dd==1){
 uM=t(rep(1,p))
 uH=rep(1,k)
 # comunalità
 c.st=(x^2%*%uH)
 C.st=c.st%*%uH
 xk=x/(C.st^0.5)
 z=xk%*% TT
 H=drop(z^2%*%rep(1,k)) 
 for (i in 1:bb) {
 D=drop(rep(1,p)%*% z^2 )
 E=drop((1/H) %*% z^4)
 C=diag(1/H) %*% z^3 %*% diag(1/D) - (1/2) * z %*% diag(E) %*% diag(1/D^2)
 B=t(xk) %*% C
 sB=La.svd(B)
 TT= sB$u %*% sB$vt
 dpast=d
 d=sum(sB$d)
 zpast=z
 z=xk%*% TT
 D=drop(rep(1,p) %*% z^2 ) 
 cpast=c
 c=sum( diag(1/H) %*% z^4 %*% diag(1/D) )
 if (abs(d-dpast)/d < eps && abs(c-cpast) /c < eps && abs(d-c/2)/d < eps)
 break
 z=gamma*z + (1-gamma)*zpast 
 }
 z=z*(C.st^0.5) 
 }
list(iterations = i,Table=matrix(c(c,d),1,2), Th=TT, loadings=z, SS_columns=rep(1,p)%*%z^2)
}
gen.chi2max=function(X,b,c,d,e,s,g) {
X=as.matrix(X)
if(missing(b)) b=1000
if(missing(c)) c=1e-9
if(missing(d)) d=0
if(missing(e)) e=50
if(missing(s)) s=127
if(missing(g)) g=1
kais=list(FALSE,TRUE)
dd=d+1
P=nrow(X)
M=ncol(X)
M.it=diag(ncol(X))
if (e==-1){
set.seed(s)
M.it=Random.Start(M)
}
out0=chi2max.0(X,TT= M.it, gamma=g, bb=b,cc=c,dd=d)
 Qr=out0$Table[nrow(out0$Table),1]
 Mr=M.it
 Zr=out0$loadings
 Tr=out0$Th
if (e>0){
 set.seed(s)
 n.rand=e
 for (ii in 1:n.rand){
 M.it=Random.Start(M)
 out=chi2max.0(X,TT= M.it, gamma=g, bb=b,cc=c,dd=d)
 Qpast=Qr
 Mpast=Mr
 Zpast=Zr
 Tpast=Tr
 Qr=out$Table[nrow(out$Table),1]
 Mr=M.it
 Zr=out$loadings
 Tr=out$Th
 if (Qr<Qpast) {
 Qr=Qpast
 Mr=Mpast
 Zr=Zpast
 Tr=Tpast
 }
 }
}
list(fob=Qr, rotmat=Tr, loadings=Zr,SS_columns=rep(1,P)%*%Zr^2)
}