Full text
Títol: Anàlisi dels riscos psicosocials al treball i el seu efecte sobre la salut Autor: Aniol Garriga Reixach Director: David Moriña Soler Departament: Economia, Estadística i Economia Aplicada Convocatòria: Gener 2022 : Grau en Estadística
RESUM Aquest és un estudi de la segona enquesta catalana de les condicions de treball (II ECCT) realitzada l'any 2010. L'enquesta es basa en el mètode COPSOQ desenvolupat a Dinamarca l'any 2000. En el treball, es busca, per una banda, confirmar que les dades observades s'ajusten al model de dimensions teoritzat, per fer-ho s'ha utilitzat una anàlisi factorial confirmatòria (CFA). Amb l'ajuda d'aquest mètode s'ha pogut confirmar el model teoritzat a partir de les dades observades. També ha permès obviar una qüestió que no aportava nova informació, ja que les respostes eren molt similars a l'anterior. D'altra banda, amb aquest estudi es vol brindar una eina que ajudi a predir quan un individu pot estar en risc de patir una malaltia mental en funció al que hagi respost. Per fer-ho s'ha aplicat a les dades l'algoritme "Random forest" que prediu quan un individu està en risc de patir una malaltia de salut mental pràcticament en un 75% dels casos. Paraules clau: Random forest, Arbres de decisió/regressió, bagging, CFA, riscos psicosocials, COPSOQ, Salut mental. ABSTRACT This is a study of the second Catalan survey on working conditions (II ECCT) carried out in 2010. The survey is based on the COPSOQ method developed in Denmark in 2000. The work seeks to confirm that the observed data conform to the theorized model of dimensions, using a confirmatory factor analysis (CFA) to do so. Using this method, it has been possible to confirm the theorized model from the observed data. It also made it possible to ignore a question that did not provide new information, as the answers were very similar to the previous one. On the other hand, this study aims to provide a tool to help predict when an individual may be at risk for mental illness depending on how has responded. The random forest was the chosen algorithm because apart from predict it shows which variables helps to validate the prediction. The results are that almost 75% of cases are well predicted.
Key words: Random Forest, decision/regression trees, bagging, CFA, psychosocial risks, COPSOQ, mental health CLASSIFICACIÓ AMS • 62H25 Factor analysis and principal components; correspondence analysis • 62P25 Applications of statistics to social sciences • 62H30 Classification and discrimination; cluster analysis (statistical aspects) • 91C20 Clustering in the social and behavioral sciences
Índex 1. Introducció ..................................................................................................... 4 1.1 Objectius ................................................................................................. 5 1.2 Agraïments .............................................................................................. 5 2. Mètodes ......................................................................................................... 6 2.1 Qüestionari ............................................................................................. 6 2.2 Variables ................................................................................................. 8 2.3 Anàlisi factorial comfirmatori ............................................................... 10 2.4 Model predictiu .................................................................................... 11 2.5 Software empleat ................................................................................. 12 3. Resultats ....................................................................................................... 13 3.1 Descriptiva bivariant: ............................................................................ 13 3.2 Estudi del qüestionari ........................................................................... 17 3.2.1 Relació entre les qüestions ............................................................... 17 3.2.2 Anàlisi factorial confirmatori ............................................................. 18 3.3 Model predictiu .................................................................................... 22 3.3.1 Salut Mental ...................................................................................... 22 3.3.2 Salut auto percebuda ........................................................................ 23 3.3.3 Percepció de l’afecte de la feina sobre la salut ................................. 25 4. Conclusions................................................................................................... 27 5. Bibliografia ................................................................................................... 29 6. Annex ............................................................................................................ 30
1. Introducció Actualment el motor econòmic de Catalunya consta de més de 600 mil empreses que donen feina a aproximadament 3,5 milions de persones. S’ha avaluat en diverses ocasions la competitivitat d’aquestes empreses però no és tant comú estudiar com són les condicions d’aquestes feines i com afecten a la salut de les persones. (Idescat. Demografia i Societat, n.d.) Aquest fet, tot i que no és un problema que hagi aparegut en aquests moments, s’ha vist reflectit de forma clara en aquests últims anys on, per desgràcia i degut a la pandèmia que patim, moltes persones els han modificat les seves condicions laborals. Per aquest motiu és de vital importància tenir en compte les condicions laborals de les persones perquè afecten a la salut mental de tothom. Per estudiar-ho i entendre-ho cal saber que s’entén per Salut. El concepte de salut és més ampli del que sembla a primera vista; durant la constitució de la OMS l’any 1946 a la Conferència Internacional de Salut celebrada a Nova York es definia la salut de l’individu com “Un estat de benestar físic, mental i social, i no solament l’absència d’afeccions i malalties”. (World Health Organization. Health Definition, n.d.) Per actuar en conseqüència l’any 2000 es va crear la metodologia COPSOQ per a la investigació, la avaluació i la prevenció dels riscos psicosocials mitjançant una enquesta. La primera versió va ser creada per el “National Research Center for the Working Environment” de Dinamarca. Aquesta fou traduïda i adaptada a la nostra comunitat per primer cop l’any 2005 sota el nom de COPSOQ-Istas. Amb aquesta metodologia s’ha estat enquestant una mostra de la població activa de Catalunya cada cinc anys. (Nübling M, 2013) Els riscos psicosocials als que està exposada la població activa estan descrits per les següents cinc dimensions; Doble Presencia (DP), que s’entén com la necessitat de pensar en els problemes de la llar mentre s’està treballant; Exigències psicològiques a la feina (EPF), que compren diversos tipus d’exigencia que pot tenir una feina; Control sobre la feina (CSF), és a dir el control que te una persona sobre la feina que realitza; Suport Social i Qualitat del lideratge (SSQL), com el propi nom indica aquesta dimensió contempla la relació de l’individu amb el seu entorn personal a la feina; finalment, Compensacions per la feina (CF), que també s’enten pel nom de la dimensió que en aquest cas s’explica quan la persona enquestada se sent valorada i compensada pel treball realitzat. Cadascuna d’elles esta formada per diferents categories que estan representades al qüestionari per tres o menys preguntes. (Instituto Sindical del Trabajo Ambiente y Salud, 2010)
Recentment, en la recerca de salut ocupacions, i mitjançant aquestes enquestes, s’ ha demostrat que l’exposició a factors de risc comporta problemes de salut física com malalties cardiovasculars o problemes musculoesquelètic. També es constaten problemes de salut mental com absentisme. Per desgràcia, estudis mes concrets apunten la DP com una causa d’estrés i falta de vitalitat o que una alta exposició a les EPF ajuden a patir depressió. (Utzet et al., 2021) 1.1 Objectius Primerament es busca corroborar que les dimensions estan construïdes segons el model a priori, alhora que es busca reduir el nombre de preguntes ja que en enquestar un individu es tarda pràcticament mitja hora concretament 27,4 minuts de mitjana. Seguidament es vol proporcionar una eina amb la que a partir d’aquesta enquesta es pugui detectar quan un individu esta exposat a un tipus concret de risc social i poder predir si aquest te un efecte negatiu a la seva salut mental. 1.2 Agraïments Primerament, és oportú agrair el tutor d’aquest projecte, David Moriña Soler per tota l’ajuda prestada durant tota la realització del treball. També es precís agrair a la Marta Franch Pujol per la correcció gramatical ortogràfica i de forma en la redacció d’alguns apartats.
2. Mètodes L’enquesta es va aplicar a 3601 individus. Tot i així, per tal d’evitar biaix s’han exclòs de l’anàlisi tots aquells individus que treballen de forma autònoma o ho fan sense contracte. Així que la mostra amb la que treballa aquest estudi és de 2566 persones. 2.1 Qüestionari El qüestionari en el que es basa aquest treball esta organitzat de la següent manera; la primera part descriu el perfil sociodemogràfic de l’individu. Seguidament es pregunta sobre el tipus de feina i les condicions que aquesta comporta. Després s’entra a la part de les condicions físiques de la feina amb les preguntes 28 29 i 30. Les dimensions dels riscos psicosocials descrites anteriorment estan distribuïdes de la següent forma entre les preguntes 31 i 35 amb l’excepció de la doble presencia que debat amb les preguntes 64 i 65; Subdimensio Pregunta Opcions de resposta Doble presencia Doble Presencia (DP) Quina part del treball familiar i domèstic fa vostè? (P64) B Si falta algun dia de casa, les feines domèstiques que realitza es queden sense fer? (P65A) A Quan és a l'empresa, pensa en les feines domèstiques i familiars? (P65B) A Hi ha moments que necessitaria ser a l'empresa i a casa alhora? (P65C) A Exigències psicològiques a la feina Exigències psicològiques quantitatives (EPF) Ha de treballar molt de pressa (P31A) A La distribució de tasques és irregular, cosa que provoca que se li acumuli la feina (P31B) A Té temps de portar la feina al dia (P31C) A invertida Exigències emocionals (EE) Li costa oblidar els problemes de la feina (P31D) A La seva feina, en general, desgasta emocionalment (P31E) A Exigència d'amagar La seva feina requereix que amagui les seves emocions (P31F) A
emocions (EAE) Control sobre la feina Influencia (In) Té influència sobre la quantitat de treball que se li assigna (P32A) A Es té en compte la seva opinió quan se li assignen les tasques (P32B) A Té influència sobre l’ordre en què realitza les feines (P32C) A Possibilitats de desenvolupamen t al treball (PDT) La seva feina requereix que tingui iniciativa (P32F) A La seva feina permet que aprengui coses noves (P32G) A Control del temps (CdT) Pot decidir quan fa un descans (P32D) A Si té algun assumpte personal o familiar, pot deixar el seu lloc de treball almenys una hora, sense haver de demanar un permís especia (P32E) A Sentit de la feina (SF) Se sent compromès amb la seva professió (P32H) A Tenen sentit les seves feines (P32I) A Integració en l'empresa (IE) Parla amb entusiasme de la seva empresa a altres persones (P32J) A Suport social i qualitat del lideratge Previsibilitat (Pre) A la seva empresa, se li informa amb prou antelació dels canvis que poden afectar el seu futur? (P34C) A Rep tota la informació que necessita per fer bé la seva feina? (P34D) A Claredat de rol (CR) Sap exactament quin marge d’autonomia té a la seva feina? (P34A) A Sap exactament quines tasques són responsabilitat seva? (P34B) A Qualitat del lideratge (QL) Els seus/les seves caps immediats planifiquen bé la feina? (P34I) A Els seus/les seves caps immediats es comuniquen bé amb els treballadors i treballadores? (P34J) A Suport social a la feina (SSF) Rep ajut i suport de les seves companyes o companys? (P34E) A Rep ajut i suport del seu superior immediat/a? (P34F) A Possibilitats de relació social (PRS) El seu lloc de treball es troba aïllat dels seus companys/es? (P34G) A invertida Sentiment de Grup (SG) A la feina, sent que forma part d’un grup? (P34H) A Compensacions a la feina Inseguretat a la feina (IF) Com seria de difícil trobar una altra feina en el cas que es quedés a l’atur (P33A) A
Si li canvien les tasques contra la seva voluntat (P33B) A Si li canvien l’horari (torn, dies de la setmana, hores d’entrada i sortida) contra la seva voluntat (P33C) A Si li varien el salari (que no l’actualitzin, que l’abaixin, que introdueixin el salari variable, que paguin en espècie, etc.) (P33D) A Estima (Est) Els seus superiors li donen el reconeixement que mereix? (P35A) A En les situacions difícils a la feina rep el suport necessari? (P35B) A A la feina el tracten injustament. (P35C) A invertida Si pensa en tota la feina i l’esforç que ha realitzat, el reconeixement que rep a la seva feina li sembla adequat? (P35D) A Taula 1. Qüestions que construeixen les dimensions de riscos psicosocials. L’opció de resposta A codifica amb els valors de 0 a 4 les següents respostes: Sempre, Moltes vegades, De vegades, Només alguna vegada, Mai. L’opció de resposta A invertida codifica amb els mateixos valors que l’anterior però a la inversa. L’opció de resposta B també pren valors de 0 a 4 per les següents respostes: Soc el/la responsable principal i faig la major part de les feines familiars i domèstiques, Faig aproximadament la meitat de les feines familiars i domèstiques, Faig més o menys una quarta part de les feines familiars i domèstiques, Només faig feines puntuals, No faig cap d'aquestes feines o gairebé cap. (Moncada et al., 2005) 2.2 Variables Podem parlar de tres tipus de variables; les sociodemogràfiques, que descriuen aspectes basics de l’individu; les dimensions de riscos psicosocials de les quals s’ha parlat ja abans en aquest estudi amb l’afegit de les condicions ambientals construïda a partir de les preguntes 28, 29 i 30; finalment les variables resposta que son tres per una banda la salut mental de l’individu construïda amb la pregunta 44, la salut auto percebuda del pacient que és la resposta a la pregunta 41 i finalment la resposta a la pregunta 42A que li demana a la persona enquestada si sent que la feina afecta directament a la seva salut. Les variables sociodemogràfiques estan construïdes de la mateixa manera que presenta el qüestionari hi ha més informació sobre les seves distribucions i valors a l’annex. Aquestes son el sexe de l’individu, la seva edat, la nacionalitat, el lloc de
Les diferencies més importants es troben en el control sobre el treball on les persones amb nacionalitat espanyola semblen les menys exposades. Seguidament es mostra el mateix gràfic que els anteriors aquest cop estratificat per el sector de treball. Els valors més extrems es troben en els sectors de transport i agricultura però cal tenir en compte que son els sectors amb menys representació per la qual cosa les dades poden no ser totalment representatives.
Aquests dos gràfics mostren l’estratificació a partir del tipus de contracte i la durada de la jornada laboral respectivament. Cal tenir en compte al veure aquests gràfics que la representació de persones amb un contracte temporal o que treballen a temps parcial és molt inferior que les altres respostes. Finalment l’ultima taula mostra l’estratificació per sou.
És interessant comprovar que el control que te un individu sobre el treball que realitza augmenta amb el sou però també implica més exigència. 3.2 Estudi del qüestionari 3.2.1 Relació entre les qüestions Un dels objectiu d’aquest treball és analitzar la pròpia enquesta, en concret les preguntes que ajuden a definir les dimensions de riscos psicosocials. Primerament s’ha estudiat la correlació entre aquestes preguntes i comprovar així quines podien resultar redundants, alhora que ajuda a veure si la construcció de les dimensions es correspon amb la relació de les preguntes. Abans de treure conclusions d’aquest gràfic cal tenir en compte que les preguntes 31 i 33 per tal com estan formulades donen una resposta inversa a la resta de preguntes, per tant no s’hauria de veure com la formació de tres dimensions sinó que el fet de que un individu pugui o no estar exposat a la risc de la doble presencia no esta correlacionat amb el fet que aquest mateix individu pugui estar exposat a la resta de riscos.
També podem veure en el gràfic com les qüestions P65_2 i P65_3 estan fortament correlacionades, el que ens porta a pensar que podrien ser redundants. Les dues preguntes defineixen una part dels riscos d’estar exposat a la doble presencia. 3.2.2 Anàlisi factorial confirmatori Amb la intenció de confirmar la hipòtesi plantejada anteriorment sobre la redundància de les qüestions P65_2 i P65_3 o altres, s’aplica un anàlisi factorial confirmatori. L’estructura d’aquest esta explicada en detall a la Taula 1, tot i així cal remarcar que és un model complex ja que inclou l’estudi de la formació de les dimensions a partir de les subdimensions. Estudiant també la formació de les segones amb cada qüestió. Del gràfic anterior en destaca per una banda com l’estima (P35) i la inseguretat (P33) descriuen les compensacions a la feina de forma inversa. Això és fàcil d’entendre al veure com estan plantejades les qüestions de cada una de les preguntes ja que les respostes esperades són inverses. D’altra banda podem comprovar com les dues qüestions mencionades anteriorment, la P65_2 i P65_3, descriuen molt considerablement la Doble presencia. Aquest gràfic però, dona una visio molt general de com és el model i quines particularitats presenta, per això s’ha estudiat cada dimensió per separat;
3.2.2.1 Control sobre la feina Tal com s’intueix en el gràfic general aquesta dimensió no presenta cap tipus de dada alarmant i tenint en compte que el p-valor és pràcticament nul, podem corroborar que la construcció d’aquesta dimensió s’adequa als valors observats en la mostra. 3.2.2.2 Exigències sobre la feina En aquest gràfic podem destacar l’alta correlació en la subdimensió, exigències d’amagar emocions, tot i així el p-valor de la construcció d’aquesta dimensió igual que en l’anterior també és pràcticament nul per la qual cosa pensem que les dades observades corroboren el model teoritzat.
3.2.2.3 Suport social i qualitat del lideratge Igual que en els dos gràfics anteriors no hi ha cap valor que ressalti i el p-valor també es pràcticament nul per això les dades corroboren el model teoritzat. 3.2.2.4 Compensacions a la feina En aquest cas tal com s’ha comentat en el gràfic general veiem que la relació entre les dues subdimensions és negativa però sabent que es deu a la manera com estan fetes les preguntes no és alarmant ni afecta als resultats així que també posem pensar que el model teoritzat esta en acord amb les dades observades.
3.2.2.5 Doble presencia En aquest cas la doble presencia esta explicada per les dues qüestions que havien preocupat per la correlació que tenen. Veient doncs que la dimensió DP depèn bàsicament d’aquestes dues s’ha decidit eliminar la que menys pes té, la P65_3 (314,75). Ometent les respostes de la qüestió redundant el model de riscos psicosocials queda de la següent forma. És pràcticament igual que el primer amb la mateixa relació negativa en les compensacions a la feina però sense els dos valors extremadament alts en la dimensió de doble presencia.
Per la reconstrucció de la variable que indica quan un individu esta exposat a la doble presencia s’ha utilitzat el mateix mètode que amb la resta de dimensions explicat anteriorment, ometent les respostes a la qüestió P65_3 que com bé s’ha dit s’han considerat redundants. 3.3 Model predictiu Tot i que el model preveu el càlcul de l’”out of bag error” s’ha separat el set de dades en un 80% per l’entrenament del mètode i un 20% per la posterior avaluació. En cada cas s’ha calculat un random forest de 500 arbres amb tres variables per escollir en cada node i cap límit màxim de nodes finals. Ja que no hi ha evidencia científica que avali que per més arbres o més variables de decisió es millori la fiabilitat de la predicció.(Oshiro T.M., 2012) Com s’ha explicat anteriorment el random forest permet veure quin efecte te cada variable en la predicció de la resposta. En la següent taula es mostren les dues mesures que proporciona el model. La primera, “MeanDecreaseAccuracy” indica com decreix l’exactitud de la predicció quan s’exclou la variable en qüestió. La segona mesura “MeanDecreaseGini” indica quin decreixement te la impuresa de Gini quan la variable s’utilitza per dividir el node. 3.3.1 Salut Mental La primera variable a la que s’ha aplicat el model és una variable creada com s’explica a l’inici d’aquest apartat a partir de la pregunta 44. És una variable dicotòmica que indica si l’individu esta en risc de patir una malaltia mental.
Gracies a aquesta taula veiem com les variables que descriuen les condicions laborals són el conjunt que més afecta tot i així sorprèn com la residencia és la variable que més pes pren en l’exactitud de la predicció. Pel que fa a la interpretació de la segona mesura, el decreixement de l’índex de Gini cal tenir en compte que les tres variables amb un valor més alt; Residencia, Edat i Sector, són variables amb més de cinc categories mentre que la majoria de la resta son dicotòmiques. Per la resposta de Salut mental el model aconsegueix predir en el millor dels casos fins a un 74,88% dels casos quan un individu esta en risc de patir una malaltia mental. Això si amb un error tipus dos del 17,98%, tal i com es pot veure a la taula de la dreta. 3.3.2 Salut auto percebuda Aquesta és la única resposta no dicotòmica, on la persona enquestada valora en una escala de l’1 al 5 la qualitat de la seva pròpia salut. El fet que la variable tingui mes
de dues categores com a resposta, pot implicar menys capacitat predictiva pel model. Com en el cas anterior primerament s’analitza la taula de resultats; Per aquesta variable resposta les explicatives que més influeixen són les que tenen més de dues categories com l’Edat o la Residencia de l’individu. El que implica tenir una resposta amb varies possibles categories es un descens important de la capacitat predictiva, mentre que amb la ultima variable dicotomica estudiada predia el comportament de practicament tres de cada quatre persones, amb una variable categoria la capacitat predictiva és de només 49,5% i un 24,89% d’error tipus II. En aquest cas pero l’error de tipusII no és tant preocupant com en el cas anterior ja que com es pot veure en la taula la majoria dels errors es troba en les primeres tres categories de la resposta el que implica que la majoria dels individus considera que te una salut bona o fins i tot millor que bona.
aux8i9 <- dd[,c(27,28,32,33,79:84,87:92,97:198,227:269,271,276:282)] aux8i9[aux8i9 == 8] <- NA aux8i9[aux8i9 == 9] <- NA dd[,c(27,28,32,33,79:84,87:92,97:198,227:269,271,276:282)] <- aux8i9 aux98i99 <- dd[,c(37,41:58,60:78,85,86,93,94,96,199:227,270,272:275,283)] aux98i99[aux98i99 == 98] <- NA aux98i99[aux98i99 == 99] <- NA dd[,c(37,41:58,60:78,85,86,93,94,96,199:227,270,272:275,283)] <- aux98i99 remove(aux8i9) remove(aux98i99) ``` Descriptiva bàsica: ```{r} aux <- dd[,c(13,16,18,21,23,59,65,283)] names(aux) <- c("Residencia", "Sexe", "Edat", "Nacionalitat", "Sector","Horari", "Contracte", "Salari") aux <- as.data.frame(lapply(aux, factor)) levels(aux$Residencia) <- c("Àmbit Metropolità", "Com. gironines", "Camp de Tarragona", "Com. centrals", "Terres de l'Ebre", "Àmbit de Ponent", "Alt Pirineu i Aran") levels(aux$Sexe) <- c("Home", "Dona") levels(aux$Edat) <- c("De 16 a 24", "De 25 a 34", "De 35 a 44", "De 45 a 54", "Mes de 54") levels(aux$Nacionalitat) <- c("Espanyola", "Europea", "Fora d'Europa") levels(aux$Sector) <- c("Transport", "Comerç i hosteleria", "Resta sector serveis", "Indùstria", "Construcció", "Agricultura") levels(aux$Contracte) <- c("Contracte fix/indefinit/permanent", "Contracte Temporal") levels(aux$Horari) <- c("Temps Complert", "Temps Parcial") levels(aux$Salari) <- c("600 o menys", "Entre 601 i 1000", "Entre 1001 i 1500", "Entre 1501 i 2000", "Mes de 2000") percent(aux$Residencia)[1:7] percent(aux$Sexe)[1:2] percent(aux$Edat)[1:5] percent(aux$Nacionalitat)[1:3] percent(aux$Sector)[1:6] percent(aux$Horari)[1:2] percent(aux$Contracte)[1:2] percent(aux$Salari)[1:5] prop.table(table(aux$Horari)) prop.table(table(aux$Contracte)) prop.table(table(aux$Contracte, aux$Horari)) mean(dd$Q3_1); sd(dd$Q3_1)
inici <- dmy_hms(paste(dd$FECHAINI, dd$HORAINI)) final <- dmy_hms(paste(dd$FECHAFIN, dd$HORAFIN)) diff <- difftime(final, inici, units = "mins") summary(as.numeric(diff)) mean(diff) ``` Corrplot ```{r} corr <- round(cor(na.omit(dd[,rev(c(132,133,135:158,160:165,167,168,274,276,278,280))])), 1) #p.mat <- cor_pmat(na.omit(dd[,rev(c(132,133,135:158,160:165,167,168,274,276,278,280))])) pl <- ggcorrplot(corr, hc.order = T, type = "full", # p.mat = p.mat, # lab = T, # lab_size = 4, # method = "circle", ggtheme = theme_gray)+ labs(caption = "Gràfic 1. Correlació entre les qüestions que construeixen les dimensions de riscos psicosocials.") + theme(plot.caption = element_text(hjust = 0.7, face = "italic", size = 15)) #pl ggsave("corplot.png", pl, width=10, height=10, dpi=700) ``` Grafic correlacions per dimensio ```{r} #Exigencies psicologiques a la feina cor.epf <- round(cor(na.omit(dd[,rev(c(132,133,135:138))])),2) p.mat.epf <- cor_pmat(dd[,rev(c(132,133,135:138))]) ggcorrplot(cor.epf, hc.order = F, type = "upper", # p.mat = p.mat.epf, lab = T, lab_size = 4, method = "circle", ggtheme = theme_gray) #Control sobre la feina cor.csf <- round(cor(na.omit(dd[,rev(c(139:148))])),2) p.mat.csf <- cor_pmat(dd[,rev(c(139:148))])
ggcorrplot(cor.csf, hc.order = F, type = "upper", # p.mat = p.mat.csf, lab = T, lab_size = 4, method = "circle", ggtheme = theme_gray) #Exigencies psicologiques a la feina cor.ssql <- round(cor(na.omit(dd[,rev(c(153:158,160:163))])),2) p.mat.ssql <- cor_pmat(dd[,rev(c(153:158,160:163))]) ggcorrplot(cor.ssql, hc.order = F, type = "upper", # p.mat = p.mat.ssql, lab = T, lab_size = 4, method = "circle", ggtheme = theme_gray) #Exigencies psicologiques a la feina cor.cf <- round(cor(na.omit(dd[,rev(c(149:151,164,165,167,168))])),2) p.mat.cf <- cor_pmat(dd[,rev(c(149:151,164,165,167,168))]) ggcorrplot(cor.cf, hc.order = F, type = "upper", # p.mat = p.mat.cf, lab = T, lab_size = 4, method = "circle", ggtheme = theme_gray) #Exigencies psicologiques a la feina cor.dp <- round(cor(na.omit(dd[,rev(c(274,276,278,280))])),2) p.mat.dp <- cor_pmat(dd[,rev(c(274,276,278,280 ))]) ggcorrplot(cor.dp, hc.order = F, type = "upper", # p.mat = p.mat.dp, lab = T, lab_size = 4, method = "circle", ggtheme = theme_gray) ``` mfa ```{r} model.CSF <- 'In =~ P32A + P32B + P32C PDF =~ P32F + P32G
CdT =~ P32D + P32E SF =~ P32H + P32I IE =~ P32J' model.EPF <- 'EPQ =~ P31A + P31B + P31c_inv EE =~ P31D + P31E EAE =~ P31F' model.SSiQL <- 'Pre =~ P34C + P34D CR =~ P34A + P34B QL =~ P34I + P34J SSF =~ P34E + P34F PRS =~ P34g_inv SG =~ P34H' model.CF <- 'IF =~ P33A + P33B + P33C + P33D Est =~ P35A + P35B + P35c_inv + P35D' model.DP <- 'DP =~ P64 + P65_1 + P65_2 + P65_3' model.total <- 'In =~ P32A + P32B + P32C PDF =~ P32F + P32G CdT =~ P32D + P32E SF =~ P32H + P32I IE =~ P32J EPQ =~ P31A + P31B + P31c_inv EE =~ P31D + P31E EAE =~ P31F Pre =~ P34C + P34D CR =~ P34A + P34B QL =~ P34I + P34J SSF =~ P34E + P34F PRS =~ P34g_inv SG =~ P34H IF =~ P33A + P33B + P33C + P33D Est =~ P35A + P35B + P35c_inv + P35D DP =~ P64 + P65_1 + P65_2 + P65_3' ``` CSF: ```{r} fit.csf <- cfa(model.CSF, data = dd) summary(fit.csf) png("CSF.png", width = 750, height = 375) semPaths(fit.csf, what = "par", rotation = 2) title(main = "Control sobre la feina", sub = "Gràfic 3. Anàlisi de la dimensió CSF")
dev.off() ``` EPF: ```{r} fit.epf <- cfa(model.EPF, data = dd) summary(fit.epf) png("EPF.png", width = 750, height = 375) semPaths(fit.epf, what = "par", title = T, rotation = 2) title(main = "Exigències psicològiques a la feina", sub = "Gràfic 4. Anàlisi de la dimensió EPF") dev.off() ``` SSiQL: ```{r} fit.ssql <- cfa(model.SSiQL, data = dd) summary(fit.ssql) png("SSiQL.png", width = 750, height = 375) semPaths(fit.ssql, what = "par", rotation = 2, title = T) title(main = "Suport social i qualitat del lideratge", sub = "Gràfic 5. Anàlisi de la dimensió SSiQL") dev.off() ``` CF: ```{r} fit.cf <- cfa(model.CF, data = dd) summary(fit.cf) png("CF.png", width = 750, height = 375) semPaths(fit.cf, what = "par", rotation = 2, title = T) title(main = "Compensacions a la feina", sub = "Gràfic 6. Anàlisi de la dimensió CF") dev.off() ``` DP: ```{r} fit.dp <- cfa(model.DP, data = dd) summary(fit.dp, fit.measures = T) png("DP.png", width = 750, height = 375) semPaths(fit.dp, what = "par", rotation = 2, title = T) title(main = "Doble presència", sub = "Gràfic 7. Anàlisi de la dimensió DP") dev.off()
``` Total: ```{r} fit <- cfa(model.total, data = dd) summary(fit, fit.measures = T) semPaths(fit, what = "par") ``` Nou model sense P65C ```{r} model.totalnou <- 'In =~ P32A + P32B + P32C PDF =~ P32F + P32G CdT =~ P32D + P32E SF =~ P32H + P32I IE =~ P32J EPQ =~ P31A + P31B + P31c_inv EE =~ P31D + P31E EAE =~ P31F Pre =~ P34C + P34D CR =~ P34A + P34B QL =~ P34I + P34J SSF =~ P34E + P34F PRS =~ P34g_inv SG =~ P34H IF =~ P33A + P33B + P33C + P33D Est =~ P35A + P35B + P35c_inv + P35D DP =~ P64 + P65_1 + P65_2' modelsubdimencions <- 'In =~ P32A + P32B + P32C PDF =~ P32F + P32G CdT =~ P32D + P32E SF =~ P32H + P32I IE =~ P32J EPQ =~ P31A + P31B + P31c_inv EE =~ P31D + P31E EAE =~ P31F Pre =~ P34C + P34D CR =~ P34A + P34B QL =~ P34I + P34J SSF =~ P34E + P34F PRS =~ P34g_inv SG =~ P34H IF =~ P33A + P33B + P33C + P33D Est =~ P35A + P35B + P35c_inv + P35D CSF =~ In + PDF + CdT + SF + IE
EPF =~ EPQ + EE + EAE SSiQL =~ Pre + CR + QL + SSF + PRS + SG CF =~ IF + Est DP =~ P64 + P65_1 + P65_2 + P65_3' ``` model guai: posarlo el primer de tots ```{r} fit.modelsubdimencions <- cfa(modelsubdimencions, data = dd) summary(fit.modelsubdimencions, fit.measures = T) semPaths(fit.modelsubdimencions, what = "par") title(main = "Model general", sub = "Gràfic 2. Anàlisi dimencional per CFA") png("Modelguai1.png", width = 1000, height = 500) semPaths(fit.modelsubdimencions, what = "par") title(main = "Model general", sub = "Gràfic 2. Anàlisi dimencional per CFA") dev.off() ``` Dp: ```{r} model.DPnou <- 'DP =~ P64 + P65_1 + P65_2' fit.dpnou <- cfa(model.DPnou, data = dd) summary(fit.dpnou, fit.measures = T) semPaths(fit.dpnou, what = "par", rotation = 2, title = T) title(main = "Doble presència sense P65_3") ``` Total: ```{r} modelsubdimencions2 <- 'In =~ P32A + P32B + P32C PDF =~ P32F + P32G CdT =~ P32D + P32E SF =~ P32H + P32I IE =~ P32J EPQ =~ P31A + P31B + P31c_inv EE =~ P31D + P31E EAE =~ P31F Pre =~ P34C + P34D CR =~ P34A + P34B QL =~ P34I + P34J SSF =~ P34E + P34F PRS =~ P34g_inv SG =~ P34H IF =~ P33A + P33B + P33C + P33D
Est =~ P35A + P35B + P35c_inv + P35D CSF =~ In + PDF + CdT + SF + IE EPF =~ EPQ + EE + EAE SSiQL =~ Pre + CR + QL + SSF + PRS + SG CF =~ IF + Est DP =~ P64 + P65_1 + P65_2' fit.modelsubdimencions2 <- cfa(modelsubdimencions2, data = dd) summary(fit.modelsubdimencions2, fit.measures = T) png("Modelguai2.png", width = 1000, height = 500) semPaths(fit.modelsubdimencions2, what = "par") title(main = "Model general sense P65_3", sub = "Gràfic 8. Anàlisi dimencional per CFA sense la P65_3") dev.off() ``` Corr sense P65C ```{r} corr <- round(cor(na.omit(dd[,rev(c(132,133,135:158,160:165,167,168,274,276,278))])), 1) p.mat <- cor_pmat(na.omit(dd[,rev(c(132,133,135:158,160:165,167,168,274,276,278))])) ggcorrplot(corr, hc.order = T, type = "full", # p.mat = p.mat, lab = T, lab_size = 4, method = "circle", ggtheme = theme_gray) ``` Reconstruccio DP ```{r} dd$DoblePres <- rowSums(dd[,c(275,277,279)]) quantile(dd$DoblePres, c(0.33,0.66), na.rm = T) dd$DoblePres_C <- ifelse(dd$DoblePres<3, 1, ifelse(dd$DoblePres<=5, 2, 3)) dd$DoblePres2k <- ifelse(dd$DoblePres_C < 3, 0, 1) ``` Quantils P44 (Salut Mental) ```{r} dd$SalutMental <- rowSums(dd[,227:238]) quantile(dd$SalutMental, c(0.33,0.66), na.rm = T) dd$SalutMental_C <- ifelse(dd$SalutMental<=18, 1, ifelse(dd$SalutMental<=22, 2, 3)) dd$SalutMental2k <- ifelse(dd$SalutMental_C < 3, 0, 1)
table(dd$SalutMental);table(dd$SalutMental_C);table(dd$SalutMental2k) ``` Exposició riscos ambientals/físics: ```{r} summary(dd[,97:132]) corr <- round(cor(na.omit(dd[,rev(97:132)])), 1) p.mat <- cor_pmat(na.omit(dd[,rev(97:132)])) ggcorrplot(corr, hc.order = F, type = "full", # p.mat = p.mat, lab = T, lab_size = 2, method = "circle", ggtheme = theme_gray) dd <- add_column(dd, P29b_inv = ((dd$P29B - 2)*-1)+2, .after = 110) dd$Cond_AmbientalsNou <- rowSums(dd[,c(97:109,111:132)]) quantile(dd$Cond_AmbientalsNou, c(0.33,0.66), na.rm = T) dd$Cond_AmbientalsNou_C <- ifelse(dd$Cond_AmbientalsNou<=12, 1, ifelse(dd$Cond_AmbientalsNou<=28, 2, 3)) dd$Cond_AmbientalsNou2k <- ifelse(dd$Cond_AmbientalsNou_C < 3, 0, 1) table(dd$Cond_AmbientalsNou);table(dd$Cond_AmbientalsNou_C);table(dd$Cond_A mbientalsNou2k) summary(dd[,c(97:109,111:132)]) ``` - Edat Q3_2 - Sexe Q2 - Contracte fixe/temporal P7 - Temps parcial/complet P12 - Nacionalitat (Spain vs UE vs Resta) Q4Cat - Sector ocupacional Q6 - Territori Q1 - Salari P66 - Exposició a riscos ambientals/físics (P28 (expo a fenomens ambientals), P29(expo a riscos físics), P30(expo a riscos varios)) alt no ens agrada - Dimensions de riscos psicosocials 80%: ```{r} set.seed(1234) ddrf <- cbind(aux, dd[,c(317:321,332,198,199,328,329)])
ddrf[,15:18] <- as.data.frame(lapply(ddrf[,15:18], factor)) levels(ddrf[,15]) <- c("Excel·lent", "Molt bona", "Bona", "Regular", "Dolenta") levels(ddrf[,16]) <- c("Afecta", "No afecta") levels(ddrf[,17]) <- c("Gens exposat", "Poc exposat", "Exposat") levels(ddrf[,18]) <- c("No exposició", "Exposició") colnames(ddrf[,15:18]) = c("Salut autopercebuda", "Afectació de la feina autopercebuda", "Salut mentals en quantils", "Salut mental binaria") train <- sample(1:nrow(dd), size = round(0.8*nrow(dd))) ddtrain <- na.omit(ddrf[train,-c(15:17)]) ddtest <- na.omit(ddrf[-train,-c(15:17)]) ddtrainsalmen <- na.omit(ddrf[train,-c(15, 16,18)]) ddtestsalmen <- na.omit(ddrf[-train,-c(15, 16,18)]) ddtrainsalgen <- na.omit(ddrf[train,-c(15, 17,18)]) ddtestsalgen <- na.omit(ddrf[-train,-c(15, 17,18)]) ddtrainfeina <- na.omit(ddrf[train,-c(16:18)]) ddtestfeina <- na.omit(ddrf[-train,-c(16:18)]) summary(ddrf) ``` Salut mental 2k ```{r} rf <- randomForest(factor(SalutMental2k) ~ ., importance = T, data = ddtrain, keep.forest = T) #bosc <- rf$forest #bosc$nodepred pred <- predict(rf, ddtest) levels(pred) <- c("No exposició predita", "Exposició predita") (res <- table(pred , ddtest$SalutMental2k)) sum(diag(res))/nrow(ddtest) 93/nrow(ddtest) as.data.frame.matrix(res) ftres <- flextable(as.data.frame.matrix(res) %>% rownames_to_column("Dades observades / Dades predites")) ftres <- add_footer(x = ftres, `Dades observades / Dades predites` = "Taula 11. Predicció per la variable Salut Mental") ftres <- merge_at(x = ftres, j = 1:3, part = "footer") ftres <- theme_box(ftres) ftres
tedat[1,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$ExigPsico2k[which(ddrf$Edat == levels(ddrf$Edat)[i1])]))*100, 2))[2] tedat[2,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$DoblePres2k[which(ddrf$Edat == levels(ddrf$Edat)[i1])]))*100, 2))[2] tedat[3,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$ControlTreb2k[which(ddrf$Edat == levels(ddrf$Edat)[i1])]))*100, 2))[2] tedat[4,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$SuportSocial2k[which(ddrf$Edat == levels(ddrf$Edat)[i1])]))*100, 2))[2] tedat[5,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$Estima2k[which(ddrf$Edat == levels(ddrf$Edat)[i1])]))*100, 2))[2] tedat[6,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$SalutMental2k[which(ddrf$Edat == levels(ddrf$Edat)[i1])]))*100, 2))[2] tedat[7,i] <- sprintf("%.2f%%", sum(prop.table(table(ddrf$P41[which(ddrf$Edat == levels(ddrf$Edat)[i-1])]))[4:5]*100)) tedat[8,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$P42A[which(ddrf$Edat == levels(ddrf$Edat)[i-1])]))*100, 2))[1] tedat[9,i] <- sprintf("%.2f%%", prop.table(table(ddrf$Edat))*100)[i-1] } colnames(tedat) <- c("Variable", levels(ddrf$Edat)) ftedat <- flextable(as.data.frame.matrix(tedat)) ftedat <- delete_part(ftedat, part = "header") ftedat <- add_header(ftedat, `De 16 a 24` = "De 16 a 24", `De 25 a 34` = "De 25 a 34", `De 35 a 44` = "De 35 a 44", `De 45 a 54` = "De 45 a 54", `Mes de 54` = "Mes de 54", top = T) ftedat <- bold(x = ftedat, part = "body",i = 1:9, j = 1) ftedat <- add_footer(x = ftedat, Variable = "Taula 4. Relació de la variable Edat amb els riscos psicosocials i les respostes") ftedat <- merge_at(x = ftedat, j = 1:6, part = "footer") ftedat <- theme_box(ftedat) ftedat save_as_image(ftedat, path = "Taula Edat.png") ``` Nacionalitat ```{r} taux1 <- matrix(rep(c("Exigències Psicològiques", "Doble presencia", "Control del Treball", "Suport Social", "Estima", "Salut Mental", "Salut auto percebuda", "Afectació de la feina en la Salut", "Total"), each = length(levels(ddrf$Nacionalitat))+1), nrow = 9, byrow = T) tnacionalitat <- taux1
i <- 1 for (i in 2:4) { tnacionalitat[1,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$ExigPsico2k[which(ddrf$Nacionalitat == levels(ddrf$Nacionalitat)[i-1])]))*100, 2))[2] tnacionalitat[2,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$DoblePres2k[which(ddrf$Nacionalitat == levels(ddrf$Nacionalitat)[i-1])]))*100, 2))[2] tnacionalitat[3,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$ControlTreb2k[which(ddrf$Nacionalitat == levels(ddrf$Nacionalitat)[i-1])]))*100, 2))[2] tnacionalitat[4,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$SuportSocial2k[which(ddrf$Nacionalitat == levels(ddrf$Nacionalitat)[i-1])]))*100, 2))[2] tnacionalitat[5,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$Estima2k[which(ddrf$Nacionalitat == levels(ddrf$Nacionalitat)[i-1])]))*100, 2))[2] tnacionalitat[6,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$SalutMental2k[which(ddrf$Nacionalitat == levels(ddrf$Nacionalitat)[i-1])]))*100, 2))[2] tnacionalitat[7,i] <- sprintf("%.2f%%", sum(prop.table(table(ddrf$P41[which(ddrf$Nacionalitat == levels(ddrf$Nacionalitat)[i1])]))[4:5]*100)) tnacionalitat[8,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$P42A[which(ddrf$Nacionalitat == levels(ddrf$Nacionalitat)[i-1])]))*100, 2))[1] tnacionalitat[9,i] <- sprintf("%.2f%%", prop.table(table(ddrf$Nacionalitat))*100)[i-1] } colnames(tnacionalitat) <- c("Variable", levels(ddrf$Nacionalitat)) ftnacionalitat <- flextable(as.data.frame.matrix(tnacionalitat)) ftnacionalitat <- delete_part(ftnacionalitat, part = "header") ftnacionalitat <- add_header(ftnacionalitat, Espanyola = "Espanyola", Europea = "Europea", `Fora d'Europa` = "Fora d'Europa", top = T) ftnacionalitat <- bold(x = ftnacionalitat, part = "body",i = 1:9, j = 1) ftnacionalitat <- add_footer(x = ftnacionalitat, Variable = "Taula 5. Relació de la variable Nacionalitat amb els riscos psicosocials i les respostes") ftnacionalitat <- merge_at(x = ftnacionalitat, j = 1:4, part = "footer") ftnacionalitat <- theme_box(ftnacionalitat) ftnacionalitat save_as_image(ftnacionalitat, path = "Taula Nacionalitat.png") ``` Sector ```{r} taux1 <- matrix(rep(c("Exigències Psicològiques", "Doble presencia", "Control del Treball", "Suport Social", "Estima", "Salut Mental", "Salut auto percebuda", "Afectació
de la feina en la Salut", "Total"), each = length(levels(ddrf$Sector))+1), nrow = 9, byrow = T) tsector <- taux1 i <- 1 for (i in 2:7) { tsector[1,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$ExigPsico2k[which(ddrf$Sector == levels(ddrf$Sector)[i1])]))*100, 2))[2] tsector[2,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$DoblePres2k[which(ddrf$Sector == levels(ddrf$Sector)[i1])]))*100, 2))[2] tsector[3,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$ControlTreb2k[which(ddrf$Sector == levels(ddrf$Sector)[i-1])]))*100, 2))[2] tsector[4,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$SuportSocial2k[which(ddrf$Sector == levels(ddrf$Sector)[i-1])]))*100, 2))[2] tsector[5,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$Estima2k[which(ddrf$Sector == levels(ddrf$Sector)[i1])]))*100, 2))[2] tsector[6,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$SalutMental2k[which(ddrf$Sector == levels(ddrf$Sector)[i-1])]))*100, 2))[2] tsector[7,i] <- sprintf("%.2f%%", sum(prop.table(table(ddrf$P41[which(ddrf$Sector == levels(ddrf$Sector)[i-1])]))[4:5]*100)) tsector[8,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$P42A[which(ddrf$Sector == levels(ddrf$Sector)[i1])]))*100, 2))[1] tsector[9,i] <- sprintf("%.2f%%", prop.table(table(ddrf$Sector))*100)[i-1] } colnames(tsector) <- c("Variable", levels(ddrf$Sector)) ftsector <- flextable(as.data.frame.matrix(tsector)) ftsector <- delete_part(ftsector, part = "header") ftsector <- add_header(ftsector, `Transport` = "Transport", `Comerç i hosteleria` = "Comerç i hosteleria", `Resta sector serveis` = "Resta sector serveis", `Indùstria` = "Indùstria", `Construcció` = "Construcció", `Agricultura` = "Agricultura", top = T) ftsector <- bold(x = ftsector, part = "body",i = 1:9, j = 1) ftsector <- add_footer(x = ftsector, Variable = "Taula 6. Relació de la variable Sector amb els riscos psicosocials i les respostes") ftsector <- merge_at(x = ftsector, j = 1:7, part = "footer") ftsector <- theme_box(ftsector) ftsector save_as_image(ftsector, path = "Taula Sector.png") ``` Contracte
```{r} taux1 <- matrix(rep(c("Exigències Psicològiques", "Doble presencia", "Control del Treball", "Suport Social", "Estima", "Salut Mental", "Salut auto percebuda", "Afectació de la feina en la Salut", "Total"), each = length(levels(ddrf$Contracte))+1), nrow = 9, byrow = T) tcontracte <- taux1 i <- 1 for (i in 2:3) { tcontracte[1,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$ExigPsico2k[which(ddrf$Contracte == levels(ddrf$Contracte)[i-1])]))*100, 2))[2] tcontracte[2,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$DoblePres2k[which(ddrf$Contracte == levels(ddrf$Contracte)[i-1])]))*100, 2))[2] tcontracte[3,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$ControlTreb2k[which(ddrf$Contracte == levels(ddrf$Contracte)[i-1])]))*100, 2))[2] tcontracte[4,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$SuportSocial2k[which(ddrf$Contracte == levels(ddrf$Contracte)[i-1])]))*100, 2))[2] tcontracte[5,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$Estima2k[which(ddrf$Contracte == levels(ddrf$Contracte)[i-1])]))*100, 2))[2] tcontracte[6,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$SalutMental2k[which(ddrf$Contracte == levels(ddrf$Contracte)[i-1])]))*100, 2))[2] tcontracte[7,i] <- sprintf("%.2f%%", sum(prop.table(table(ddrf$P41[which(ddrf$Contracte == levels(ddrf$Contracte)[i1])]))[4:5]*100)) tcontracte[8,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$P42A[which(ddrf$Contracte == levels(ddrf$Contracte)[i1])]))*100, 2))[1] tcontracte[9,i] <- sprintf("%.2f%%", prop.table(table(ddrf$Contracte))*100)[i-1] } colnames(tcontracte) <- c("Variable", levels(ddrf$Contracte)) ftcontracte <- flextable(as.data.frame.matrix(tcontracte)) ftcontracte <- delete_part(ftcontracte, part = "header") ftcontracte <- add_header(ftcontracte, `Contracte fix/indefinit/permanent` = "Contracte fix/indefinit/permanent", `Contracte Temporal` = "Contracte Temporal", top = T) ftcontracte <- bold(x = ftcontracte, part = "body",i = 1:9, j = 1) ftcontracte <- add_footer(x = ftcontracte, Variable = "Taula 7. Relació de la variable Contracte amb els riscos psicosocials i les respostes") ftcontracte <- merge_at(x = ftcontracte, j = 1:3, part = "footer") ftcontracte <- theme_box(ftcontracte) ftcontracte
save_as_image(ftcontracte, path = "Taula Contracte.png") ``` Horari ```{r} taux1 <- matrix(rep(c("Exigències Psicològiques", "Doble presencia", "Control del Treball", "Suport Social", "Estima", "Salut Mental", "Salut auto percebuda", "Afectació de la feina en la Salut", "Total"), each = length(levels(ddrf$Horari))+1), nrow = 9, byrow = T) thorari <- taux1 i <- 1 for (i in 2:3) { thorari[1,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$ExigPsico2k[which(ddrf$Horari == levels(ddrf$Horari)[i1])]))*100, 2))[2] thorari[2,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$DoblePres2k[which(ddrf$Horari == levels(ddrf$Horari)[i1])]))*100, 2))[2] thorari[3,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$ControlTreb2k[which(ddrf$Horari == levels(ddrf$Horari)[i-1])]))*100, 2))[2] thorari[4,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$SuportSocial2k[which(ddrf$Horari == levels(ddrf$Horari)[i-1])]))*100, 2))[2] thorari[5,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$Estima2k[which(ddrf$Horari == levels(ddrf$Horari)[i1])]))*100, 2))[2] thorari[6,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$SalutMental2k[which(ddrf$Horari == levels(ddrf$Horari)[i-1])]))*100, 2))[2] thorari[7,i] <- sprintf("%.2f%%", sum(prop.table(table(ddrf$P41[which(ddrf$Horari == levels(ddrf$Horari)[i-1])]))[4:5]*100)) thorari[8,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$P42A[which(ddrf$Horari == levels(ddrf$Horari)[i-1])]))*100, 2))[1] thorari[9,i] <- sprintf("%.2f%%", prop.table(table(ddrf$Horari))*100)[i-1] } colnames(thorari) <- c("Variable", levels(ddrf$Horari)) fthorari <- flextable(as.data.frame.matrix(thorari)) fthorari <- delete_part(fthorari, part = "header") fthorari <- add_header(fthorari, `Temps Complert` = "Temps Complert", `Temps Parcial` = "Temps Parcial", top = T) fthorari <- bold(x = fthorari, part = "body",i = 1:9, j = 1) fthorari <- add_footer(x = fthorari, Variable = "Taula 8. Relació de la variable Horari amb els riscos psicosocials i les respostes") fthorari <- merge_at(x = fthorari, j = 1:3, part = "footer") fthorari <- theme_box(fthorari)
fthorari save_as_image(fthorari, path = "Taula Horari.png") ``` Salari ```{r} taux1 <- matrix(rep(c("Exigències Psicològiques", "Doble presencia", "Control del Treball", "Suport Social", "Estima", "Salut Mental", "Salut auto percebuda", "Afectació de la feina en la Salut", "Total"), each = length(levels(ddrf$Salari))+1), nrow = 9, byrow = T) tsalari <- taux1 i <- 1 for (i in 2:6) { tsalari[1,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$ExigPsico2k[which(ddrf$Salari == levels(ddrf$Salari)[i1])]))*100, 2))[2] tsalari[2,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$DoblePres2k[which(ddrf$Salari == levels(ddrf$Salari)[i1])]))*100, 2))[2] tsalari[3,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$ControlTreb2k[which(ddrf$Salari == levels(ddrf$Salari)[i1])]))*100, 2))[2] tsalari[4,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$SuportSocial2k[which(ddrf$Salari == levels(ddrf$Salari)[i1])]))*100, 2))[2] tsalari[5,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$Estima2k[which(ddrf$Salari == levels(ddrf$Salari)[i1])]))*100, 2))[2] tsalari[6,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$SalutMental2k[which(ddrf$Salari == levels(ddrf$Salari)[i1])]))*100, 2))[2] tsalari[7,i] <- sprintf("%.2f%%", sum(prop.table(table(ddrf$P41[which(ddrf$Salari == levels(ddrf$Salari)[i-1])]))[4:5]*100)) tsalari[8,i] <- sprintf("%.2f%%", round(prop.table(table(ddrf$P42A[which(ddrf$Salari == levels(ddrf$Salari)[i-1])]))*100, 2))[2] tsalari[9,i] <- sprintf("%.2f%%", prop.table(table(ddrf$Salari))*100)[i-1] } colnames(tsalari) <- c("Variable", levels(ddrf$Salari)) ftsalari <- flextable(as.data.frame.matrix(tsalari)) ftsalari <- delete_part(ftsalari, part = "header") ftsalari <- add_header(ftsalari, `600 o menys` = "600 o menys", `Entre 601 i 1000` = "Entre 601 i 1000", `Entre 1001 i 1500` = "Entre 1001 i 1500", `Entre 1501 i 2000` = "Entre 1501 i 2000", `Mes de 2000` = "Mes de 2000", top = T) ftsalari <- bold(x = ftsalari, part = "body",i = 1:9, j = 1) ftsalari <- add_footer(x = ftsalari, Variable = "Taula 9. Relació de la variable Salari amb els riscos psicosocials i les respostes")
ftsalari <- merge_at(x = ftsalari, j = 1:6, part = "footer") ftsalari <- theme_box(ftsalari) ftsalari save_as_image(ftsalari, path = "Taula Salari.png") ``` ```{r} table(ddrf$SalutMental2k); table(ddrf$P42A); table(ddrf$P41) table(ddrf$SalutMental2k, ddrf$P42A, ddrf$P41) table(ddrf$P42A[ddrf$P41 %in% c("Excel·lent", "Molt bona", "Bona")]) table(ddrf$P42A[ddrf$P41 %in% c("Regular", "Dolenta")]) 644/(644 + 1654) 860/(860 + 1451) 57/(57+184) (2566-sum(ddrf$P41 %in% c("Excel·lent", "Molt bona", "Bona")))/2566 table(ddrf$SalutMental2k, ddrf$P42A) 397/(397+380) table(ddrf$P42A) ```