### Importate il dataframe gatti: #1. Calcolate le frequenze assolute, le proporzioni e le percentuali delle tre variabili che descrivono la capacità dei soggetti di #discriminare l’intenzione comunicativa dei gatti nei tre contesti: quali commenti potremmo fare? table(gatti$riconosce_miao_cibo) table(gatti$riconosce_miao_isolamento) table(gatti$riconosce_miao_spazzolamento) round(prop.table(table(gatti$riconosce_miao_cibo)),2) round(prop.table(table(gatti$riconosce_miao_isolamento)),2) round(prop.table(table(gatti$riconosce_miao_spazzolamento)),2) round(prop.table(table(gatti$riconosce_miao_cibo)),3)*100 round(prop.table(table(gatti$riconosce_miao_isolamento)),3)*100 round(prop.table(table(gatti$riconosce_miao_spazzolamento)),3)*100 Freq(gatti$riconosce_miao_cibo) Freq(gatti$riconosce_miao_isolamento) Freq(gatti$riconosce_miao_spazzolamento) #2. Anche la distribuzione del livello di istruzione non è ottimale: unite i soggetti con specializzazione post lauream ai laureati, #creando la variabile $istruzione2; che tipo di variabile avete creato? gatti$istruzione2[gatti$istruzione=="diploma superiore"]<-"diploma superiore" gatti$istruzione2[gatti$istruzione=="specializzazione post lauream"|gatti$istruzione=="laurea"]<-"laurea o specializzazione" table(gatti$istruzione); table(gatti$istruzione2) class(gatti$istruzione2) gatti$istruzione2<-as.factor(ifelse(test=gatti$istruzione=="diploma superiore", yes="diploma superiore", no="laurea o specializzazione")) class(gatti$istruzione2 #3. Selezionate solo i soggetti che vivono con un gatto e le variabili relative al riconoscimento dei miagolii, fate le stesse operazioni del punto 1: l’interpretazione del dato cambia? vive_con_gatti<-subset(gatti, gatti$vive_con_gatto=="si", select = c("riconosce_miao_cibo", "riconosce_miao_isolamento", "riconosce_miao_spazzolamento")) str(vive_con_gatti) #oppure vive_con_gatti<-gatti[gatti$vive_con_gatto=="si",11:13] Freq(vive_con_gatti$riconosce_miao_cibo) Freq(vive_con_gatti$riconosce_miao_isolamento) Freq(vive_con_gatti$riconosce_miao_spazzolamento) #4. Considerate per tutto il campione la variabile $empatia_gatti, che esprime l’autovalutazione sull’empatia specifica per i gatti: #4a. descrivete la distribuzione di frequenza della variabile; table(gatti$empatia_gatti) #4b. considerate i punteggi fino a 8 come indicatori di bassa empatia, da 9 a 18 come indicatori di media empatia e da 19 fino al #più grande come indicatori di travolgente empatia: dividete la distribuzione della variabile in base a queste tre classi e calcolatene #la densità di frequenza. gatti$emp_gatti_cat<-as.ordered(ifelse(test=gatti$empatia_gatti<=8, yes="bassa", no=ifelse(gatti$empatia_gatti>8 & gatti$empatia_gatti<=18, yes="media", no = "travolgente"))) ##frequenza assoluta table(gatti$emp_gatti_cat) ##densità di frequenza 21/(8.5-2.5) 38/(18.5-8.5) 20/(27.5-18.5) #5. Considerate tutti i soggetti nel dataframe gatti: costruite la distribuzione la distribuzione delle frequenze percentuali assolute #della variabile $autovalutazione_relazione_gatto e commentatela: è stata una buona idea? Perché? perc_relaz<-round(prop.table(table(gatti$autovalutazione_relazione_con_gatti))*100,1) perc_relaz #6. Calcolate il primo e il terzo quartile della variabile $autovalutazione_relazione_gatto e interpretatene l’output; identificate i punteggi che definiscono il minimo, il massimo e il 10° percentile di questa variabile quantile(x = gatti$autovalutazione_relazione_con_gatti, probs = c(.25, .75)) summary(gatti$autovalutazione_relazione_con_gatti) fivenum(gatti$autovalutazione_relazione_con_gatti) quantile(x = gatti$autovalutazione_relazione_con_gatti, probs = .10) #7. Usate i quantili così individuati per creare la variabile di raggruppamento $amiconi, in cui i soggetti che faticano a entrare in #relazione con un gatto sono individuati dal livello “scarsa relazione”, quelli così così dal livello “media relazione” e quelli che #pensano come un gatto dal livello “buona relazione” gatti$amiconi<-as.factor(ifelse(gatti$autovalutazione_relazione_con_gatti<=4, "scarsa", ifelse(gatti$autovalutazione_relazione_con_gatti>4&gatti$autovalutazione_relazione_con_gatti<12, "media", "buona"))) gatti$amiconi<-ordered(gatti$amiconi, levels=c("scarsa", "media", "buona")) ##oppure gatti$amiconi2<-as.ordered(ifelse(gatti$autovalutazione_relazione_con_gatti<=4, "scarsa", ifelse(gatti$autovalutazione_relazione_con_gatti>4&gatti$autovalutazione_relazione_con_gatti<12, "media", "buona"))) table(gatti$amiconi); table(gatti$amiconi2) #8. Considerando tutti i soggetti nel dataframe gatti, calcolate moda, mediana e media della variabile $AES_empatia_animali e #commentate il dato, sapendo che il punteggio minimo teoricamente ottenibile è 22 e il massimo teoricamente ottenibile è 198; summary(gatti$AES_empatia_animali) Desc(gatti$AES_empatia_animali) #solo per la moda: which.max(table(gatti$AES_empatia_animali)) ##8a. Calcolate gli indici di dispersione della variabile $AES_empatia_animali per tutti i soggetti; e sd(gatti$AES_empatia_animali); var(gatti$AES_empatia_animali) ##8b. individuate i soggetti che rappresentano il 25% inferiore della distribuzione: etichettate loro come “antropocentrici” e tutti gli #altri come “non antropocentrici”. Verificate la correttezza della categorizzazione. quantile(gatti$AES_empatia_animali, probs = .25) gatti$AES2<-as.factor(ifelse(gatti$AES_empatia_animali<=137.5, "antropocentrici"," non antropocentrici")) round(prop.table(table(gatti$AES2))*100,1) #9. Calcolate il modello media della variabile $AES_empatia_animali per chi è cresciuto con un animale domestico e confrontatelo #con quello di chi non è cresciuto con un animale domestico: quale modello si adatta meglio ai dati? Commentate i due modelli #rispetto all’ipotesi che l’empatia non sia un tratto innato, ma una capacità che si può addestrare. tapply(X=gatti$AES_empatia_animali,INDEX = gatti$cresciuto_animali_domestici, FUN = mean ) tapply(X=gatti$AES_empatia_animali,INDEX = gatti$cresciuto_animali_domestici, FUN = var ) Desc(gatti$AES_empatia_animali~gatti$cresciuto_animali_domestici) ### Importate il dataframe attaccamento # 1.Le sottoscale del CBI compongono un punteggio totale: createlo nel dataframe come $CBI_totale. a<-attaccamento colnames(a) a$CBI_totale<-rowSums(a[,10:14]) a$CBI_totale2<-a$CBI_burden_blocco_evolutivo+a$CBI_burden_conflitto_ruolo+a$CBI_burden_emotivo+a$CBI_burden_fisico+a$CBI_burden_restrizione_tempo #2.Anche le sottoscale del WHOQOL possono creare una dimensione complessiva: la media della qualità della vita nei diversi #ambiti. Create la variabile $WHOQOL_media. a$WHOQOL_media<-rowSums(a[,28:31])/4 a$WHOQOL_media2<-(a$QOL_salute_fisica+a$QOL_ambiente+a$QOL_benessere_psicoogico+a$QOL_relazioni_sociali)/4 #3. Considerate solo il sottogruppo con l’assistito in casa: quanti usufruiscono di un centro diurno? E cosa potete #rilevare rispetto all’aiuto ricevuto? Usate sia descrittori numerici sia i grafici adeguati al livello di misura della variabile ##3a. L'etichetta "assistente domiciliare" è scomoda da avere nella X di un grafico: rinominatela, accorciandola ####centro diurno casa<-subset(a, a$domicilio_assistito=="in casa") ###oppure casa<-a[a$domicilio_assistito=="in casa", ] ###in realtà gli altri sono NA! table(casa$centro_diurno) round(prop.table(table(casa$centro_diurno))*100,1) barplot(table(casa$centro_diurno)) barplot(prop.table(table(casa$centro_diurno))*100) barplot(prop.table(table(casa$centro_diurno))*100, ylim = c(0,100), col=rainbow(2), xlab = "Centro", main="fruisce di un Centro Diurno") text(x = c(.50, 1.7), y=50, labels = c("90%", "10%"), pos = 4) ###package sjPlot plot_frq(casa$centro_diurno, type = "bar", title = "fruisce centro diurno", axis.title = "centro diurno", geom.colors = "red") ####con l'aiuto di... table(casa$con_aiuto_di) round(prop.table(table(casa$con_aiuto_di))*100,2) ##sistemiamo l'etichetta lunga levels(casa$con_aiuto_di) levels(casa$con_aiuto_di)<-c("ass. domic.", "badante", "nessuno") barplot(table(casa$con_aiuto_di)) barplot(prop.table(table(casa$con_aiuto_di))*100, ylim = c(0,100), col=rainbow(4), xlab = "tipo di aiuto", main="ricevono aiuto da:") text(x = c(.55, 1.7, 2.8), y=c(10,55, 50), labels = c("5%", "50%", "40%"), pos = 4) ###per le etichette, anche: barplot(prop.table(table(casa$con_aiuto_di))*100, ylim = c(0,100), col=rainbow(4), xlab = "tipo di aiuto", main="ricevono aiuto da:") text(x = c(.55, 1.7, 2.8), y=c(10,55, 50), labels = prop.table(table(casa$con_aiuto_di))*100, pos = 4) plot_frq(casa$con_aiuto_di, type = "bar", title = "tipo di aiuto", axis.title = "aiuto fornito da", geom.colors = "purple") plot_frq(casa$con_aiuto_di,sort.frq = "desc", type = "bar", title = "tipo di aiuto", axis.title = "aiuto fornito da", geom.colors = "purple") ##anche un grafico A TORTA pie(table(casa$centro_diurno)) pie(table(casa$centro_diurno), col = rainbow(3), labels = c("90%", "10%"),main = "fruisce di un centro diurno") ##OPPURE table(a$domicilio_assistito, a$centro_diurno) prop.table(table(a$domicilio_assistito, a$centro_diurno),margin = 1)*100 prop.table(table(a$centro_diurno))*100 prop.table(table(a$centro_diurno, exclude = NULL))*100 #4. Quali considerazioni si potrebbero fare (e come) rispetto all’avere un aiuto e al burden totale? usate sia descrittori numerici sia i grafici adeguati al livello di misura della variabile ##centro diurno casa<-subset(a, a$domicilio_assistito=="in casa") casa<-a[a$domicilio_assistito=="in casa", ] ###in realtà gli altri sono NA! table(casa$centro_diurno) round(prop.table(table(casa$centro_diurno))*100,1) barplot(table(casa$centro_diurno)) barplot(prop.table(table(casa$centro_diurno))*100) barplot(prop.table(table(casa$centro_diurno))*100, ylim = c(0,100), col=rainbow(2), xlab = "Centro", main="fruisce di un Centro Diurno") text(x = c(.50, 1.7), y=50, labels = c("90%", "10%"), pos = 4) ###package sjPlot plot_frq(casa$centro_diurno, type = "bar", title = "fruisce centro diurno", axis.title = "centro diurno", geom.colors = "red") ##con l'aiuto di...centro diurno table(casa$con_aiuto_di) round(prop.table(table(casa$con_aiuto_di))*100,2) ##sistemiamo l'etichetta lunga levels(casa$con_aiuto_di) levels(casa$con_aiuto_di)<-c("ass. domic.", "badante", "nessuno") barplot(table(casa$con_aiuto_di)) barplot(prop.table(table(casa$con_aiuto_di))*100, ylim = c(0,100), col=rainbow(4), xlab = "tipo di aiuto", main="ricevono aiuto da:") text(x = c(.55, 1.7, 2.8), y=c(10,55, 50), labels = c("5%", "50%", "40%"), pos = 4) ###per le etichette, anche: barplot(prop.table(table(casa$con_aiuto_di))*100, ylim = c(0,100), col=rainbow(4), xlab = "tipo di aiuto", main="ricevono aiuto da:") text(x = c(.55, 1.7, 2.8), y=c(10,55, 50), labels = prop.table(table(casa$con_aiuto_di))*100, pos = 4) plot_frq(casa$con_aiuto_di, type = "bar", title = "tipo di aiuto", axis.title = "aiuto fornito da", geom.colors = "purple") plot_frq(casa$con_aiuto_di,sort.frq = "desc", type = "bar", title = "tipo di aiuto", axis.title = "aiuto fornito da", geom.colors = "purple") ##anche un grafico A TORTA pie(table(casa$centro_diurno)) pie(table(casa$centro_diurno), col = rainbow(3), labels = c("90%", "10%"),main = "fruisce di un centro diurno") ##OPPURE table(a$domicilio_assistito, a$centro_diurno) prop.table(table(a$domicilio_assistito, a$centro_diurno),margin = 1)*100 prop.table(table(a$centro_diurno))*100 prop.table(table(a$centro_diurno, exclude = NULL))*100 barplot(prop.table(table(casa$centro_diurno))*100, ylim = c(0,100), col=rainbow(4), xlab = "domicilio assistito", main="fruisce di un Centro Diurno") #Quali considerazioni si potrebbero fare (e come) #rispetto all’avere un aiuto e al burden totale? ## vediamo prima le frequenze nel campione complessivo hist(casa$CBI_totale) hist(casa$CBI_totale, freq = FALSE, col = rainbow(15)) ##ora per livello di $con_aiuto_di Desc(casa$CBI_totale~casa$con_aiuto_di) tapply(casa$CBI_totale, casa$con_aiuto_di, summary) #descriviamo solo queste due variabili, escludendo anche "ass. domic." casa2<-casa[casa$con_aiuto_di!="ass. domic.",c(9,32)] str(casa2) levels(casa2$con_aiuto_di)<-droplevels(casa2$con_aiuto_di) str(casa2) ##prima le frequenze condizionali, poco interessanti ### caricate il package lattice nella System Library histogram(~casa2$CBI_tot|casa2$con_aiuto_di, xlab = "CBI totale") #poi la distribuzione a livello ordinale boxplot(casa2$CBI_tot) boxplot(casa2$CBI_tot, xlab="campione complessivo", ylab="CBI totale", col="yellow") boxplot(casa2$CBI_tot~casa2$con_aiuto_di, xlab="tipo di aiuto", ylab="CBI totale", col=rainbow(6))