#apri librerie library(psych) #apri il file dati <- read.table("I:/Documents/Backup Finale/080807Backup01/Documenti/Genova/Didattica/Lezioni SMID/BFA.csv", header=TRUE, sep=",") #Il file contiene le seguenti variabili #ID = codice identificativo del partecipante #Genere: 0 = Femmina; 1 = Maschio #Età (anni) #Istruzione: 0 = Nessuno; 1 = Licenza Elementare; 2 = Licenza Media; 3 = Diploma Scuola Media Superiore; #4 = Laurea Triennale; 5 = Laurea Magistrale; 6 = Titolo studio post-secondario #Occupazione: 0 = Disoccupato; 1 = Libero professionista / Imprenditore; 2 = Dirigente / Docente Universitario; #3 = Insegnante; 4 = Artista; 5 = Impiegato; 6 = Commerciante; 7 = Operaio industriale / agricolo; 8 = Studente; #9 = Pensionato; 10 = Casalinga; 11 = Artigiano; 12 = Commesso; 13 = Infermiere; 14 = Educatore; 15 = Altro #Stato_civ: 1 = Celibe/Nubile; 2 = Convivente; 3 = Coniugato; 4 = Separato; 5 = Divorziato; 6 = Vedovo #Seguono i 25 item del test, così raggruppati nelle scale (NB: R = item reverse): #Estroversione: 1, 6R, 11, 16, 21R #Amicalità: 2R, 7, 12R, 17, 22 #Coscienziosità: 3, 8, 13R, 18R, 23 #Nevroticismo: 4, 9R, 14, 19R, 24 #Apertura: 5R, 10, 15R, 20, 25 ####################################### #########ANALISI DEGLI ITEM############ ####################################### #Invertire i punteggi degli item reverse dati$bfa02_Polemico=6-dati$bfa02_Polemico dati$bfa05_Tradizionalista=6-dati$bfa05_Tradizionalista dati$bfa06_Timido=6-dati$bfa06_Timido dati$bfa09_Equilibrato=6-dati$bfa09_Equilibrato dati$bfa12_Litigioso=6-dati$bfa12_Litigioso dati$bfa13_Distratto=6-dati$bfa13_Distratto dati$bfa15_Abitudinario=6-dati$bfa15_Abitudinario dati$bfa18_Disordinato=6-dati$bfa18_Disordinato dati$bfa19_Ottimista=6-dati$bfa19_Ottimista dati$bfa21_Riservato=6-dati$bfa21_Riservato #inserire punteggi degli item in un subset bfa = dati[c(7:31)] ext = dati[c(7,12,17,22,27)] ami = dati[c(8,13,18,23,28)] con = dati[c(9,14,19,24,29)] neu = dati[c(10,15,20,25,30)] ope = dati[c(11,16,21,26,31)] #Statistiche descrittive con skewness e curtosi describe(bfa) #Analisi degli item per le scale alpha(ext) alpha(ami) alpha(con) alpha(neu) alpha(ope) #correlazioni Pearson e policoriche pears = cor(bfa) polyc = polychoric(bfa) #inserisce dentro un oggetto la matrice di correlazione policorica pol = polyc$rho ####################################### ####ANALISI FATTORIALE ESPLORATIVA##### ####################################### #esegue la parallel analysis per decidere il numero di fattori da estrarre #NB: fornisce anche lo scree-plot paral=fa.parallel(bfa) #esegue la parallel analysis su matrice policorica fa.parallel(bfa, fm="pa") #esegue l'analisi delle componenti principali pca=principal(bfa, nfactors = 5, rotate="promax") #ordina la pattern matrix in base alle saturazioni print.psych(pca, sort=T) #esegue l'analisi fattoriale paf = fa(bfa,nfactors=5,rotate="promax") #ordina la pattern matrix in base alle saturazioni print.psych(paf, sort=T) #esegue l'analisi fattoriale con matrice policorica paf.poly = fa.poly(bfa,nfactors=5,rotate="promax") print.psych(paf.poly, sort=T) ####################################### ####ANALISI FATTORIALE CONFERMATIVA#### ####################################### library(lavaan) #specifica il modello a 5 fattori BigFive <- ' Ext =~ bfa01_Loquace+bfa06_Timido+bfa11_Vivace+bfa16_Socievole+bfa21_Riservato Ami =~ bfa02_Polemico+bfa07_Comprensivo+bfa12_Litigioso+bfa17_Affettuoso+bfa22_Altruista Con =~ bfa03_Scrupoloso+bfa08_Responsabile+bfa13_Distratto+bfa18_Disordinato+bfa23_Organizzato Neu =~ bfa04_Ansioso+bfa09_Equilibrato+bfa14_Emotivo+bfa19_Ottimista+bfa24_Insicuro Ope =~ bfa05_Tradizionalista+bfa10_Curioso+bfa15_Abitudinario+bfa20_Interessato+bfa25_Aperto ' #Testa il modello fit <- cfa(BigFive, data=bfa) summary(fit,fit.measures=TRUE,standardized=T) #indici di modifica modindices(fit) #usa gli item com ordinali fit.o <- cfa(BigFive, data = bfa,ordered=c("bfa01_Loquace","bfa02_Polemico", "bfa03_Scrupoloso","bfa04_Ansioso","bfa05_Tradizionalista","bfa06_Timido", "bfa07_Comprensivo","bfa08_Responsabile","bfa09_Equilibrato","bfa10_Curioso", "bfa11_Vivace","bfa12_Litigioso","bfa13_Distratto","bfa14_Emotivo", "bfa15_Abitudinario","bfa16_Socievole","bfa17_Affettuoso","bfa18_Disordinato", "bfa19_Ottimista","bfa20_Interessato","bfa21_Riservato","bfa22_Altruista", "bfa23_Organizzato","bfa24_Insicuro","bfa25_Aperto" )) summary(fit.o,fit.measures=TRUE,standardized=T) #grafico della CFA library(semPlot) semPaths(fit) #grafico con proprietà degli oggetti (tipo tree) semPaths(fit, whatLabels="std", #layout layout="tree", #dimensione caratteri edge.label.cex = 0.6, #colore frecce edge.color="black", #spessore bordi esize=2, #dimensione frecce asize=3, #dimensione indicatori sizeMan=4, #dimensione latenti sizeLat=6, #spessore ovali e rettangoli sizeInt=2, curvePivot = T) #grafico con proprietà degli oggetti (tipo circle) semPaths(fit, whatLabels="std", #layout layout="circle", #dimensione caratteri edge.label.cex = 0.6, #colore frecce edge.color="black", #spessore bordi esize=2, #dimensione frecce asize=3, #dimensione indicatori sizeMan=4, #dimensione latenti sizeLat=6, #spessore ovali e rettangoli sizeInt=2, curvePivot = TRUE) ####################################### ####MODELLO INDICATORI FORMATIVI####### ####################################### #Modello a indicatori formativi per Estroversione come predittore di Coscienziosità Form <- ' Ext <~ 1*bfa01_Loquace+bfa06_Timido+bfa11_Vivace Con =~ bfa03_Scrupoloso+bfa08_Responsabile+bfa13_Distratto Con ~ Ext' fit.form <- cfa(Form, data=bfa) summary(fit.form,fit.measures=TRUE,standardized=T) semPaths(fit.form, layout="circle") ####################################### ####MODELLO EQUAZIONI STRUTTURALI###### ####################################### library(lavaan) library(semPlot) #specifica il modello a 5 fattori di primo ordine e un fattore di secondo ordine Secondo <- ' Ext =~ bfa01_Loquace+bfa06_Timido+bfa11_Vivace+bfa16_Socievole+bfa21_Riservato Ami =~ bfa02_Polemico+bfa07_Comprensivo+bfa12_Litigioso+bfa17_Affettuoso+bfa22_Altruista Con =~ bfa03_Scrupoloso+bfa08_Responsabile+bfa13_Distratto+bfa18_Disordinato+bfa23_Organizzato Neu =~ bfa04_Ansioso+bfa09_Equilibrato+bfa14_Emotivo+bfa19_Ottimista+bfa24_Insicuro Ope =~ bfa05_Tradizionalista+bfa10_Curioso+bfa15_Abitudinario+bfa20_Interessato+bfa25_Aperto Gen =~ Ext + Ami + Con + Neu + Ope' fit2 <- cfa(Secondo, data=bfa) summary(fit2,fit.measures=TRUE,standardized=T) semPaths(fit2) #Modello equazioni strutturali: Amicalità predice Nevroticismo sem <- 'Ami =~ bfa02_Polemico+bfa07_Comprensivo+bfa12_Litigioso+bfa17_Affettuoso+bfa22_Altruista Neu =~ bfa04_Ansioso+bfa09_Equilibrato+bfa14_Emotivo+bfa19_Ottimista+bfa24_Insicuro Neu ~ Ami' fit.sem <- sem(sem, data=bfa) summary(fit.sem,fit.measures=TRUE,standardized=T) semPaths(fit.sem, layout="circle") #MIMIC Model: età e genere predicono punteggi nelle variabili latenti mimic = dati[c(2,3,7:31)] MM <- ' Ext =~ bfa01_Loquace+bfa06_Timido+bfa11_Vivace+bfa16_Socievole+bfa21_Riservato Ami =~ bfa02_Polemico+bfa07_Comprensivo+bfa12_Litigioso+bfa17_Affettuoso+bfa22_Altruista Con =~ bfa03_Scrupoloso+bfa08_Responsabile+bfa13_Distratto+bfa18_Disordinato+bfa23_Organizzato Neu =~ bfa04_Ansioso+bfa09_Equilibrato+bfa14_Emotivo+bfa19_Ottimista+bfa24_Insicuro Ope =~ bfa05_Tradizionalista+bfa10_Curioso+bfa15_Abitudinario+bfa20_Interessato+bfa25_Aperto Ext ~ Genere +eta Ami ~ Genere +eta Con ~ Genere +eta Neu ~ Genere +eta Ope ~ Genere +eta' fit.mm <- sem(MM, data=mimic) summary(fit.mm,fit.measures=TRUE,standardized=T) semPaths(fit.mm, layout="tree") #Differential item functioning: effetto di età e genere sugli item di estroversione dif <- ' Ext =~ bfa01_Loquace+bfa06_Timido+bfa11_Vivace+bfa16_Socievole+bfa21_Riservato bfa01_Loquace ~ Genere +eta bfa06_Timido ~ Genere +eta bfa11_Vivace ~ Genere +eta bfa16_Socievole ~ Genere +eta bfa21_Riservato ~ Genere +eta' fit.dif <- sem(dif, data=mimic) summary(fit.dif,fit.measures=TRUE,standardized=T) semPaths(fit.dif, layout="tree")