Descrições das variáveis

Autor

Rafael Pereira dos Santos

1 Pacotes Utilizados

Pacotes utilizados para a análise dos dados

#load <- function(pkg){
 # new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
  #if (length(new.pkg))
   # install.packages(new.pkg, dependencies = TRUE)
  #sapply(pkg, require, character.only = TRUE)
#} 

## Pacotes utilizados nessa análise

#packages = c("tidyverse", "factoextra", "psych", "gridExtra", "readr", "janitor", "ggrepel", "patchwork", "corrplot", "corrr", "igraph", "ggraph", "ggplot", "dplyr", "tidyr")
#load(packages)

library(corrplot)
Warning: pacote 'corrplot' foi compilado no R versão 4.5.3
corrplot 0.95 loaded
library(factoextra)
Warning: pacote 'factoextra' foi compilado no R versão 4.5.3
Carregando pacotes exigidos: ggplot2
Warning: pacote 'ggplot2' foi compilado no R versão 4.5.2
Welcome to factoextra!
Want to learn more? See two factoextra-related books at https://www.datanovia.com/library/principal-component-methods

2 Objetivo da análise

Este trabalho tem como objetivo investigar a estrutura de correlação entre 18 itens utilizados para avaliar a necessidade de cognição, com base em 201 observações, por meio da Análise de Componentes Principais (PCA).

A análise busca reduzir a dimensionalidade do conjunto de dados, investigando em que medida os 18 itens podem ser representados por um número menor de componentes. Pretende-se avaliar a proporção da variância total explicada por esse componente e verificar se sua utilização é adequada para a proposta do método.

Os dados analisados estão disponíveis em: https://www.professortp.com.br/est328/dados/COGNITION.txt. Acesso em: 26/10/2026.

3 Panorâma dos dados e da análise

Em suma, as 18 questões levantadas buscam entender e análisar a extensão com que o sujeito entrevistado gosta e se envolve no raciocínio e na resolução de problemas.

A redução da dimensionalidade é o principal propósito metodológico da investigação. Por meio da busca de padrões de associação entre os itens. Essa é uma alternativa para possíveis problemas como: utilizar várias medidas separadas, ou utilizar uma única métrica. Para tanto, uma ponto de partida é a soma de escores e a uso da PCA.

a comparação entre essas métodos permite examinar se o primeiro componente principal oferece uma síntese adequada dos itens e se apresenta vantagens interpretativas. Já a adequação dos componentes é avaliada a aprtir dos resultados, sem pressupor que uma única dimensão seja suficiente para representar os dados.

As questões (variáveis do banco de dados) levantadas foram:

Variável Pergunta / Descrição
C1 Eu prefiro problemas complexos a problemas simples.
C2 Gosto de ser responsável ao lidar com uma situação que requeira muito raciocínio.
C3 Raciocinar não é minha ideia de diversão. (R)
C4 Eu prefiro fazer algo que exija pouco raciocínio do que algo que com certeza desafiaria minhas capacidades de raciocínio. (R)
C5 Tento prever e evito situações em que haja uma provável chance de eu ter que pensar profundamente sobre alguma coisa. (R)
C6 Encontro satisfação em debater profundamente por longas horas.
C7 Penso apenas o necessário. (R)
C8 Prefiro pensar em pequenos projetos diários do que em projetos em longo prazo. (R)
C9 Gosto de tarefas que exijam pouca reflexão após eu tê-las aprendido. (R)
C10 A ideia de confiar em meu raciocínio para chegar ao topo me atrai.
C11 Eu realmente gosto de uma tarefa que envolva fornecer novas soluções para os problemas.
C12 Aprender novas maneiras de raciocinar não me anima muito. (R)
C13 Prefiro que minha vida esteja repleta de problemas que devo resolver.
C14 A noção de pensar abstratamente é atraente para mim.
C15 Prefiro tarefas que envolvam raciocínio, sejam difíceis e importantes a aquelas que não exigem muito raciocínio.5
C16 Sinto alívio ao invés de satisfação quando termino uma tarefa que exigiu muito esforço mental. (R)
C17 É suficiente para mim que algo termine o trabalho: não me importo como ou por que funciona. (R)
C18 Normalmente, acabo por debater as questões, mesmo que não me afetem pessoalmente.

4 Leitura e inspeção dos dados

Carregamento e verificação dos dados quanto ao tipo, quantidade de linhas e colunas, e visualização das 50 primeras observações.

path_link <- "https://www.professortp.com.br/est328/dados/COGNITION.txt"

dados <- read.table(path_link, header = TRUE)

# Visualizar as primeiras linhas
head(dados,50)
   ID C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18
1   1  1  3  4  4  3  4  3  4  4   3   4   3   4   4   3   2   2   2
2   2  2  4  1  1  2  1  4  2  2   4   4   3   2   2   4   2   1   4
3   3  4  4  1  1  1  3  1  3  2   4   5   1   5   4   5   2   2   4
4   4  3  1  4  5  4  3  3  3  5   1   1   2   3   5   1   5   5   3
5   5  4  4  2  2  1  4  2  2  1   4   5   1   4   2   4   1   1   2
6   6  5  5  1  1  1  5  1  3  1   5   5   1   5   5   5   1   2   4
7   7  3  3  1  2  2  1  4  3  2   4   4   2   3   2   3   2   1   2
8   8  3  4  1  1  1  3  2  3  3   4   5   1   3   5   4   2   1   2
9   9  4  4  1  2  2  4  4  3  1   5   5   2   4   4   4   4   1   4
10 10  4  4  2  2  1  3  5  2  2   4   5   1   3   4   4   2   1   5
11 11  2  3  3  3  2  3  4  2  2   4   4   2   4   3   3   3   4   2
12 12  2  3  2  3  3  2  3  3  4   4   5   5   4   2   4   4   2   4
13 13  1  5  1  1  2  5  1  4  4   5   5   1   4   5   4   1   4   4
14 14  3  3  3  2  1  3  2  2  2   3   4   2   3   3   3   2   1   3
15 15  2  5  1  1  1  4  1  1  1   5   5   1   4   4   2   5   1   2
16 16  2  2  3  4  4  3  1  3  5   4   4   3   1   2   4   1   3   3
17 17  4  4  1  2  3  4  2  3  2   5   5   1   4   4   4   3   2   4
18 18  5  5  1  1  1  1  1  1  1   5   5   1   5   5   5   1   1   4
19 19  5  5  1  1  1  1  4  2  1   5   5   1   5   4   5   1   2   2
20 20  4  5  1  1  1  4  1  1  2   5   5   1   4   4   4   2   1   1
21 21  4  5  1  3  1  4  3  2  4   3   4   3   2   5   5   1   1   5
22 22  2  5  5  2  2  4  5  2  2   4   4   1   5   4   4   5   1   1
23 23  4  3  1  1  1  4  2  2  2   5   5   1   4   5   5   5   2   3
24 24  4  4  2  2  2  3  1  2  1   4   4   3   3   5   4   3   2   4
25 25  1  4  1  2  2  2  4  1  1   5   4   2   1   5   3   2   1   4
26 26  2  4  1  2  2  1  4  2  2   3   4   3   4   4   3   2   2   2
27 27  1  1  1  1  1  4  4  4  2   5   5   1   1   5   3   1   1   1
28 28  4  4  1  2  2  4  3  2  1   4   4   2   4   4   4   2   2   2
29 29  5  5  1  5  4  5  5  4  5   4   3   2   1   5   5   4   3   1
30 30  3  4  1  2  1  3  2  2  2   5   4   2   4   4   5   1   1   4
31 31  4  4  2  1  1  4  2  2  2   4   4   2   3   3   4   2   1   5
32 32  4  4  2  1  2  5  4  2  2   4   5   2   3   4   4   1   2   4
33 33  3  3  3  2  2  1  5  5  2   3   5   1   5   5   3   3   3   4
34 34  4  5  1  1  1  5  3  4  1   5   5   1   4   4   5   1   1   5
35 35  3  4  2  2  2  3  2  2  3   4   4   2   4   2   2   2   2   3
36 36  4  4  2  2  2  4  4  2  2   4   4   2   4   4   4   2   2   4
37 37  4  4  1  1  1  4  1  2  1   4   5   1   5   4   5   2   2   4
38 38  1  4  1  1  1  2  2  1  1   5   4   1   4   4   2   4   1   4
39 39  3  2  4  4  4  4  2  4  4   3   5   2   2   3   4   2   1   4
40 40  4  5  1  2  1  2  2  2  1   4   4   2   2   3   4   2   2   2
41 41  4  3  1  3  2  2  1  2  2   4   4   1   3   5   4   2   1   2
42 42  4  5  1  1  1  5  1  1  1   5   5   1   4   5   5   1   1   4
43 43  4  5  1  5  2  2  3  4  2   4   4   1   4   4   3   2   3   2
44 44  3  4  1  2  2  4  1  1  2   5   3   3   2   4   4   2   2   5
45 45  2  4  1  1  1  2  1  1  1   3   4   2   1   1   3   2   1   4
46 46  2  3  3  5  4  1  3  4  5   4   3   4   3   4   4   4   5   5
47 47  4  4  1  1  1  3  3  4  2   5   4   1   4   2   4   2   2   3
48 48  3  5  1  2  1  4  2  2  2   5   5   1   3   4   4   1   2   4
49 49  2  4  1  1  2  3  2  4  2   4   5   1   4   5   3   2   2   5
50 50  5  5  1  1  1  5  1  1  1   5   5   1   4   4   5   1   1   4
# Verificar a estrutura
str(dados)
'data.frame':   201 obs. of  19 variables:
 $ ID : int  1 2 3 4 5 6 7 8 9 10 ...
 $ C1 : int  1 2 4 3 4 5 3 3 4 4 ...
 $ C2 : int  3 4 4 1 4 5 3 4 4 4 ...
 $ C3 : int  4 1 1 4 2 1 1 1 1 2 ...
 $ C4 : int  4 1 1 5 2 1 2 1 2 2 ...
 $ C5 : int  3 2 1 4 1 1 2 1 2 1 ...
 $ C6 : chr  "4" "1" "3" "3" ...
 $ C7 : int  3 4 1 3 2 1 4 2 4 5 ...
 $ C8 : int  4 2 3 3 2 3 3 3 3 2 ...
 $ C9 : chr  "4" "2" "2" "5" ...
 $ C10: chr  "3" "4" "4" "1" ...
 $ C11: chr  "4" "4" "5" "1" ...
 $ C12: int  3 3 1 2 1 1 2 1 2 1 ...
 $ C13: int  4 2 5 3 4 5 3 3 4 3 ...
 $ C14: chr  "4" "2" "4" "5" ...
 $ C15: chr  "3" "4" "5" "1" ...
 $ C16: chr  "2" "2" "2" "5" ...
 $ C17: chr  "2" "1" "2" "5" ...
 $ C18: chr  "2" "4" "4" "3" ...
# Conferir as dimensões
dim(dados)
[1] 201  19
#Resumo dos dados
summary(dados)
       ID            C1              C2              C3              C4       
 Min.   :  1   Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
 1st Qu.: 51   1st Qu.:2.000   1st Qu.:3.000   1st Qu.:1.000   1st Qu.:1.000  
 Median :101   Median :4.000   Median :4.000   Median :1.000   Median :2.000  
 Mean   :101   Mean   :3.224   Mean   :3.915   Mean   :1.811   Mean   :1.975  
 3rd Qu.:151   3rd Qu.:4.000   3rd Qu.:5.000   3rd Qu.:2.000   3rd Qu.:2.000  
 Max.   :201   Max.   :5.000   Max.   :5.000   Max.   :5.000   Max.   :5.000  
       C5             C6                  C7              C8       
 Min.   :1.000   Length:201         Min.   :1.000   Min.   :1.000  
 1st Qu.:1.000   Class :character   1st Qu.:1.000   1st Qu.:2.000  
 Median :2.000   Mode  :character   Median :2.000   Median :2.000  
 Mean   :1.861                      Mean   :2.468   Mean   :2.527  
 3rd Qu.:2.000                      3rd Qu.:4.000   3rd Qu.:4.000  
 Max.   :5.000                      Max.   :5.000   Max.   :5.000  
      C9                C10                C11                 C12       
 Length:201         Length:201         Length:201         Min.   :1.000  
 Class :character   Class :character   Class :character   1st Qu.:1.000  
 Mode  :character   Mode  :character   Mode  :character   Median :1.000  
                                                          Mean   :1.776  
                                                          3rd Qu.:2.000  
                                                          Max.   :5.000  
      C13            C14                C15                C16           
 Min.   :1.000   Length:201         Length:201         Length:201        
 1st Qu.:3.000   Class :character   Class :character   Class :character  
 Median :3.000   Mode  :character   Mode  :character   Mode  :character  
 Mean   :3.294                                                           
 3rd Qu.:4.000                                                           
 Max.   :5.000                                                           
     C17                C18           
 Length:201         Length:201        
 Class :character   Class :character  
 Mode  :character   Mode  :character  
                                      
                                      
                                      

O conjunto de dados denominado “COGNITION” apresenta 201 observações dispostas em 19 colunas. Dentre as colunas, a primeira representa a identificação do respondentes e as demais, cujo a interpretação dos resultados é dado pela tabela nomeada de C1 até C18, representam o grau de conformidade dada a pergunta.

Dentre as varíaveis observadas, ao aplicar a função str(dados), algumas se apresentaram como “character”. Dado a natureza da pesquisa apresentada, e os objetivos da análise proposto. O seguinte critério de avaliação e mudança foi proposto.

  1. Avaliar se a variálvel é de natureza não inteira.
  2. Caso positivo, converter a variável para tipo inteiro.
  3. Valores divergentes, não numéricos, foram transformados em Valor Ausente (NA)

4.1 Tratamento dos dados e verificação de inconsistências

# Identificação de colunas que não são numéricas ou inteiras

for (i in 1:ncol(dados)) {

  if (!is.numeric(dados[[i]]) || !is.integer(dados[[i]])) {

    print(names(dados)[i])

  }

}
[1] "C6"
[1] "C9"
[1] "C10"
[1] "C11"
[1] "C14"
[1] "C15"
[1] "C16"
[1] "C17"
[1] "C18"

Com as devidas colunas identificadas, o objetivo do código abaixo está em examinar colunas, linhas e valores apresentados como “character”. Desse modo, é possível investigar a natureza dos dados não numéricos.

for (i in 1:ncol(dados)) {

  if (is.character(dados[[i]])) {

    x_num <- as.numeric(dados[[i]])

    posicao <- which(!is.na(dados[[i]]) & is.na(x_num))

    if (length(posicao) > 0) {

      print(names(dados)[i])

      for (j in posicao) {

        print(paste("Linha:", j,
                    "Valor:", dados[j, i]))

      }

    }

  }

}
Warning: NAs introduzidos por coerção
[1] "C6"
[1] "Linha: 101 Valor: ."
[1] "Linha: 129 Valor: ."
Warning: NAs introduzidos por coerção
[1] "C9"
[1] "Linha: 129 Valor: ."
[1] "Linha: 159 Valor: ."
Warning: NAs introduzidos por coerção
[1] "C10"
[1] "Linha: 129 Valor: ."
[1] "Linha: 131 Valor: ."
Warning: NAs introduzidos por coerção
[1] "C11"
[1] "Linha: 129 Valor: ."
[1] "Linha: 131 Valor: ."
Warning: NAs introduzidos por coerção
[1] "C14"
[1] "Linha: 129 Valor: ."
Warning: NAs introduzidos por coerção
[1] "C15"
[1] "Linha: 135 Valor: ."
[1] "Linha: 141 Valor: ."
Warning: NAs introduzidos por coerção
[1] "C16"
[1] "Linha: 129 Valor: ."
Warning: NAs introduzidos por coerção
[1] "C17"
[1] "Linha: 129 Valor: ."
Warning: NAs introduzidos por coerção
[1] "C18"
[1] "Linha: 129 Valor: ."

Para garantir a integridade dos dados, nessa etapa optou-se pela cópia do banco de dados de modo que o tratamento referente as linhas com valores não numéricos pudesse ser realziada.

dados_tratados <- dados

Conversão das colunas não munéricas (character) para colunas numéricas. Nessa etapa os textos inválidos foram convertidos em Valores Ausentes (ÑA).

for (i in 1:ncol(dados_tratados)) {

  if (is.character(dados_tratados[[i]])) {

    dados_tratados[[i]] <- as.numeric(dados_tratados[[i]])

  }

}
Warning: NAs introduzidos por coerção
Warning: NAs introduzidos por coerção
Warning: NAs introduzidos por coerção
Warning: NAs introduzidos por coerção
Warning: NAs introduzidos por coerção
Warning: NAs introduzidos por coerção
Warning: NAs introduzidos por coerção
Warning: NAs introduzidos por coerção
Warning: NAs introduzidos por coerção

A inspeção inicial identificou valores ausentes em 6 (seis) ds 201 observações. Considerando que a análise de componentes principais desenvolvida se apoia nas 18 variáveis presentes no banco de dados, foi adotado a posição de exclisão dos casos incompletos, de modo que pudesse ser obtido uma matriz de dados completa. A decisão pela exclusão preserva a aplicação da PCA, por exemplo, por meio do método prcomp(), mas reduziu a amostra para 195 obsrvações.

Observação: um outro processo possível para está análise seria uma avaliação das observações para o processo de tratamento de dados via imputação. Estratégia não adotada para o presente trabalho.

#Exclusão de linhas com valores ausentes

linhas_excluir <- which(
  rowSums(is.na(dados_tratados[, 2:19])) > 0
)

dados_tratados <- dados_tratados[-linhas_excluir, ]

Excluído as linhas com valores ausentes. Por fim, será aplicada o prcoesso de verificação para avaliar a adequação dos dados com os métodos propostos.

# Conferência de resultado

str(dados)
'data.frame':   201 obs. of  19 variables:
 $ ID : int  1 2 3 4 5 6 7 8 9 10 ...
 $ C1 : int  1 2 4 3 4 5 3 3 4 4 ...
 $ C2 : int  3 4 4 1 4 5 3 4 4 4 ...
 $ C3 : int  4 1 1 4 2 1 1 1 1 2 ...
 $ C4 : int  4 1 1 5 2 1 2 1 2 2 ...
 $ C5 : int  3 2 1 4 1 1 2 1 2 1 ...
 $ C6 : chr  "4" "1" "3" "3" ...
 $ C7 : int  3 4 1 3 2 1 4 2 4 5 ...
 $ C8 : int  4 2 3 3 2 3 3 3 3 2 ...
 $ C9 : chr  "4" "2" "2" "5" ...
 $ C10: chr  "3" "4" "4" "1" ...
 $ C11: chr  "4" "4" "5" "1" ...
 $ C12: int  3 3 1 2 1 1 2 1 2 1 ...
 $ C13: int  4 2 5 3 4 5 3 3 4 3 ...
 $ C14: chr  "4" "2" "4" "5" ...
 $ C15: chr  "3" "4" "5" "1" ...
 $ C16: chr  "2" "2" "2" "5" ...
 $ C17: chr  "2" "1" "2" "5" ...
 $ C18: chr  "2" "4" "4" "3" ...
str(dados_tratados)
'data.frame':   195 obs. of  19 variables:
 $ ID : int  1 2 3 4 5 6 7 8 9 10 ...
 $ C1 : int  1 2 4 3 4 5 3 3 4 4 ...
 $ C2 : int  3 4 4 1 4 5 3 4 4 4 ...
 $ C3 : int  4 1 1 4 2 1 1 1 1 2 ...
 $ C4 : int  4 1 1 5 2 1 2 1 2 2 ...
 $ C5 : int  3 2 1 4 1 1 2 1 2 1 ...
 $ C6 : num  4 1 3 3 4 5 1 3 4 3 ...
 $ C7 : int  3 4 1 3 2 1 4 2 4 5 ...
 $ C8 : int  4 2 3 3 2 3 3 3 3 2 ...
 $ C9 : num  4 2 2 5 1 1 2 3 1 2 ...
 $ C10: num  3 4 4 1 4 5 4 4 5 4 ...
 $ C11: num  4 4 5 1 5 5 4 5 5 5 ...
 $ C12: int  3 3 1 2 1 1 2 1 2 1 ...
 $ C13: int  4 2 5 3 4 5 3 3 4 3 ...
 $ C14: num  4 2 4 5 2 5 2 5 4 4 ...
 $ C15: num  3 4 5 1 4 5 3 4 4 4 ...
 $ C16: num  2 2 2 5 1 1 2 2 4 2 ...
 $ C17: num  2 1 2 5 1 2 1 1 1 1 ...
 $ C18: num  2 4 4 3 2 4 2 2 4 5 ...
dim(dados)
[1] 201  19
dim(dados_tratados)
[1] 195  19
colSums(is.na(dados_tratados))
 ID  C1  C2  C3  C4  C5  C6  C7  C8  C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 
  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 
View(dados_tratados)

4.2 Recodificação dos dados de classificação reversa

Após o tratamento dos valores ausentes (NA) e a conversão das variáveis para o tipo numérico, a próxima etapa consiste na recodificação dos itens formulados em sentido reverso. Esse procedimento tem como objetivo orientar todos os itens na mesma direção interpretativa, de modo que escores mais elevados representem uma maior necessidade de cognição. Dessa forma, torna-se mais coerente comparar os itens e construir um índice sintético por meio da soma dos escores, além de realizar análises multivariadas.

Com base nos enunciados das questões disponibilizadas na pesquisa, foram identificados nove itens com codificação reversa: C3, C4, C5, C7, C8, C9, C12, C16 e C17.

# Criar uma cópia para análise
dados_pca <- dados_tratados

# Identificar os itens reversos
itens_reversos <- c(
  "C3", "C4", "C5", "C7", "C8",
  "C9", "C12", "C16", "C17"
)

# Recodificar os itens reversos
for (i in itens_reversos) {
  dados_pca[[i]] <- 6 - dados_pca[[i]]
}

View(dados_pca)

5 Análise Exploratória dos dados

Nesta etapa, são análisadas as variáveis presentes no conjunto de dados pós tratamento. O objetibo consiste em analisar tanto individualemnte por meio de processos de visuação como resumo dos dados, dsitrbuição de frequência (histograma e bloxplot) , quanto de maneira conjunta, por meio matrizes de covariância e correlação.

5.1 Leitura dos dados (resumo)

Após a adequação das variáveis para que os resumos estatísticos pudessem ser explorados, por meio do método summary(), temos os seguintes resultados

summary(dados_pca[,2:19])
       C1              C2              C3              C4       
 Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
 1st Qu.:2.000   1st Qu.:3.500   1st Qu.:4.000   1st Qu.:4.000  
 Median :4.000   Median :4.000   Median :5.000   Median :4.000  
 Mean   :3.241   Mean   :3.913   Mean   :4.179   Mean   :4.026  
 3rd Qu.:4.000   3rd Qu.:5.000   3rd Qu.:5.000   3rd Qu.:5.000  
 Max.   :5.000   Max.   :5.000   Max.   :5.000   Max.   :5.000  
       C5              C6              C7              C8       
 Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
 1st Qu.:4.000   1st Qu.:2.000   1st Qu.:2.000   1st Qu.:2.000  
 Median :4.000   Median :4.000   Median :4.000   Median :4.000  
 Mean   :4.169   Mean   :3.287   Mean   :3.513   Mean   :3.482  
 3rd Qu.:5.000   3rd Qu.:4.000   3rd Qu.:5.000   3rd Qu.:4.000  
 Max.   :5.000   Max.   :5.000   Max.   :5.000   Max.   :5.000  
       C9             C10             C11             C12       
 Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
 1st Qu.:3.000   1st Qu.:4.000   1st Qu.:4.000   1st Qu.:4.000  
 Median :4.000   Median :4.000   Median :4.000   Median :5.000  
 Mean   :3.733   Mean   :4.056   Mean   :4.205   Mean   :4.246  
 3rd Qu.:5.000   3rd Qu.:5.000   3rd Qu.:5.000   3rd Qu.:5.000  
 Max.   :5.000   Max.   :5.000   Max.   :5.000   Max.   :5.000  
      C13             C14             C15             C16       
 Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
 1st Qu.:3.000   1st Qu.:3.000   1st Qu.:3.000   1st Qu.:3.000  
 Median :3.000   Median :4.000   Median :4.000   Median :4.000  
 Mean   :3.287   Mean   :3.749   Mean   :3.677   Mean   :3.708  
 3rd Qu.:4.000   3rd Qu.:5.000   3rd Qu.:4.000   3rd Qu.:5.000  
 Max.   :5.000   Max.   :5.000   Max.   :5.000   Max.   :5.000  
      C17             C18       
 Min.   :1.000   Min.   :1.000  
 1st Qu.:4.000   1st Qu.:2.000  
 Median :4.000   Median :4.000  
 Mean   :4.097   Mean   :3.328  
 3rd Qu.:5.000   3rd Qu.:4.000  
 Max.   :5.000   Max.   :5.000  

Inicialmente, foi realizada uma análise descritiva dos 18 itens que compõem a escala de necessidade de cognição, considerando medidas de tendência central, como média e mediana, e medidas de posição, como primeiro e terceiro quartis. Essa etapa tem como objetivo compreender o comportamento geral das respostas, identificar diferenças entre os itens e observar possíveis padrões.

De maneira geral, observa-se que as médias dos itens variam entre 3,241 (C1) e 4,246 (C12), enquanto as medianas se encontram entre 3 e 5. Esse comportamento indica que, considerando os valores apresentados, existe uma tendência de respostas em categorias intermediárias e superiores da escala. Para garantir a correta interpretação, o processo de recodificação foi realizado, de modo que todas categorias apresentem o mesmo sentido, do menor (1) para o maior (5) da necessidade de cognição.

Entre os itens com maiores médias, destacam-se C12 (4,246), C11 (4,205), C3 (4,179), C5 (4,169) e C17 (4,097). Por outro lado, C1 (3,241), C6 (3,287), C13 (3,287) e C18 (3,328) apresentam as menores médias. Essa diferença da evidencias de que os participantes não responderam de maneira uniforme, com aparente diferença entre aos aspectos avaliados.

A análise das medianas complementa esse resultado. Os itens C3 e C12 apresentam mediana igual a 5, indicando que o valor central das respostas se encontra na categoria mais elevada da escala. Já C13 apresenta mediana igual a 3, sendo o único item com esse valor. Os demais itens apresentam mediana igual a 4. Esse resultado apresenta uma tedência central inferior para a necessidade de cognição de C13 (Prefiro que minha vida esteja repleta de problemas que devo resolver).

Já em relação aos quartis, 4 (quatro) itens apresentam amplitude entre quatis igual a 1, indício de menor dispersão entre os 50% centrais dos dados. Já 14 variáveis apresentam amplitude entre quartis maior ou igual a 2, o que pode indicar maior variabilidade entre os 50% centrais dos dados.

Em geral, a análise acima permitiu evidenciar diferenças entre a posição central e seus quartis. Contudo, a descrição funciona de maneira individual, e isso por si só não sustenta, ou permite identificar, relações para uma única representação da necessidade de cognição, objetivo da análise.

5.2 Visualização exploratória e frequência dos dados

A partir dos resultados obtidos por meio do resumos dos dados, posição central e amplitude, a visuzação da frequência de cada categoria nos permite avaliar o comportamento das variáveis e a possível identificação de variáveis extremas - que podem concentrar muitas respotas para baixa necessidade de cognição, ou alta necessidade.

# Selecionar os nomes das variáveis, excluindo ID
attr_names <- setdiff(names(dados_pca), "ID")

library("tidyverse")
Warning: pacote 'tidyverse' foi compilado no R versão 4.5.3
Warning: pacote 'tibble' foi compilado no R versão 4.5.2
Warning: pacote 'tidyr' foi compilado no R versão 4.5.2
Warning: pacote 'readr' foi compilado no R versão 4.5.2
Warning: pacote 'purrr' foi compilado no R versão 4.5.2
Warning: pacote 'dplyr' foi compilado no R versão 4.5.2
Warning: pacote 'stringr' foi compilado no R versão 4.5.2
Warning: pacote 'forcats' foi compilado no R versão 4.5.2
Warning: pacote 'lubridate' foi compilado no R versão 4.5.2
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.2.0     ✔ readr     2.2.0
✔ forcats   1.0.1     ✔ stringr   1.6.0
✔ lubridate 1.9.5     ✔ tibble    3.3.1
✔ purrr     1.2.1     ✔ tidyr     1.3.2
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
# Selecionar somente os itens
X <- dados_pca %>%
  select(all_of(attr_names))

# Transformar os dados para formato longo
X_long <- dados_pca %>%
  pivot_longer(
    cols = all_of(attr_names),
    names_to = "atributo",
    values_to = "nota"
  )

# Guardar a coluna ID separadamente como fator
ID_fac <- dados_pca %>%
  mutate(ID = as.factor(ID)) %>%
  pull(ID)

# Padronizar as variáveis
X_scaled <- scale(X)

df_scaled <- data.frame(
  ID = ID_fac,
  X_scaled
)

# Histogramas facetados
p_hist <- ggplot(X_long, aes(x = nota)) +
  geom_histogram(
    binwidth = 1,
    boundary = 0.5,
    color = "white",
    fill = "#2E9FDF"
  ) +
  facet_wrap(
    ~ atributo,
    scales = "fixed"
  ) +
  scale_x_continuous(
    breaks = 1:5,
    limits = c(0.5, 5.5)
  ) +
  scale_y_continuous(
    breaks = seq(0, 100, by = 10),
    limits = c(0, 100)
  ) +
  labs(
    title = "Distribuição das respostas por item",
    x = "Nível de necessidade de cognição",
    y = "Frequência"
  ) +
  theme_minimal()

p_hist
Warning: Removed 1 row containing missing values or values outside the scale range
(`geom_bar()`).

A visualização gráfica permite observar a distribuição das respostas nos 18 itens da escala. De maneira geral, nota-se uma concentração de respostas nas categorias superiores, especialmente nos níveis 4 e 5, embora esse comportamento apresente diferenças entre os itens. Algumas variáveis, como C10, C11, C12 e C17, demonstram concentração mais acentuada nessas categorias, enquanto C1, C6, C13 e C18 apresentam distribuições relativamente mais dispersas entre os níveis de resposta. como esperado, algumas variáveis apresentam maior concentração em um nível específico, já outras possuem seus resultados mais heterogêneos.

E como complemento da análise visual, a frequência dos dados é expressa por;

for (i in 2:19) {

  freq <- prop.table(table(dados_pca[[i]])) *100

  cat("\nVariável:", names(dados_pca)[i], "\n")
  print(freq)
}

Variável: C1 

       1        2        3        4        5 
13.84615 13.84615 18.46154 42.05128 11.79487 

Variável: C2 

        1         2         3         4         5 
 3.076923  8.205128 13.846154 44.102564 30.769231 

Variável: C3 

        1         2         3         4         5 
 3.076923  7.179487  8.717949 30.769231 50.256410 

Variável: C4 

        1         2         3         4         5 
 4.615385  8.717949 10.256410 32.307692 44.102564 

Variável: C5 

        1         2         3         4         5 
 2.051282  9.230769  7.179487 32.820513 48.717949 

Variável: C6 

       1        2        3        4        5 
10.76923 14.87179 23.58974 36.41026 14.35897 

Variável: C7 

        1         2         3         4         5 
 8.205128 18.974359 16.410256 26.153846 30.256410 

Variável: C8 

        1         2         3         4         5 
 7.179487 18.461538 14.358974 38.974359 21.025641 

Variável: C9 

        1         2         3         4         5 
 7.692308 14.871795  5.641026 40.000000 31.794872 

Variável: C10 

        1         2         3         4         5 
 2.564103  5.128205 11.282051 46.153846 34.871795 

Variável: C11 

        1         2         3         4         5 
 3.076923  4.102564  7.179487 40.512821 45.128205 

Variável: C12 

        1         2         3         4         5 
 3.076923  6.153846  9.743590 25.128205 55.897436 

Variável: C13 

        1         2         3         4         5 
 8.717949 15.384615 28.205128 33.846154 13.846154 

Variável: C14 

        1         2         3         4         5 
 4.102564 12.307692 13.846154 44.102564 25.641026 

Variável: C15 

        1         2         3         4         5 
 5.641026  7.179487 23.076923 42.051282 22.051282 

Variável: C16 

        1         2         3         4         5 
 6.153846 13.333333 12.307692 40.000000 28.205128 

Variável: C17 

        1         2         3         4         5 
 3.589744  8.717949 11.282051 27.179487 49.230769 

Variável: C18 

        1         2         3         4         5 
 8.205128 20.512821 17.948718 36.923077 16.410256 

Entre os itens apresentados, C12 destaca-se por apresentar 55,90% das respostas na categoria 5, seguido de C3 (50,26%), C17 (49,23%), C5 (48,72%) e C11 (45,13%). Esses resultados demonstram uma concentração expressiva de respostas na categoria superior da escala.

Por outro lado, C13 apresenta uma distribuição mais equilibrada entre as categorias intermediárias, com 28,21% das respostas na categoria 3 e 33,85% na categoria 4. Esse comportamento está de acordo com sua mediana igual a 3.

Assim, a análise das frequências proporcionais complementa as medidas descritivas, permitindo identificar com maior precisão as categorias que concentram as respostas dos participantes. A próxima etapa consiste no estudo da correlação entre as variáveis.

5.3 Matriz de correlação

A partir dos levantamentos realizados por meio das medidas centrais, intervalar e, por meio da visualização da distribuição de frequência de cada um das variáveis. A etapa subsequente consiste em avaliar a correlação entre as variáveis. Dessa forma é possível examinar como as diferentes variáveis se comportam duas a duas, e se possuem algum padrão evidente.

cormat <- cor(dados_pca[2:19])
corrplot(cormat, method = "color", type = "upper", addCoef.col = "black",
tl.col = "black", tl.srt = 45, number.cex = .6,
title = "Matriz de correlações entre variáveis")

O primeiro ponto de destaque da matriz de correlação está no fato de todos os valores apresentarem correlações predominantemente positivas, esse fato é um indício de que, a´pos a recodificação dos dados reversos, resposts mais elevadas em determinado item tendem a estar associadas a respostas mais elevadas dos demais. Isto é, exigem maior necessidade de cognição.

Ao avaliar a intensidade, é possível destacar as correlações de certa forma moderadas como: C4-C5(0.57), C5-C12(0.52) e C10-C11(0.52), enquanto há outras correlações fracas como: C9-C18(0.01), C8-C18(0.03) e C13-C16(0.05).

Ainda que o objetivo da matriz dê indícios de associação entre as variáveis, aidna não é possível afirmar que um único componente seja suficiente para representar sozinho a necessidade de cognição. Avaliação essa feita via PCA.

6 Análise via PCA

Por meio da Análise de Componentes Princiáis (PCA), a análise boscou transformar varíaveis potencialmente correlacionadas em um conjunto menor de variáveis por meio da projeção de dados ára reter a maior quantidade de informação (variância). Em resumo, buscando os candidatos da PC1 (primeiro componente principal) e PC2 (segundo componente principal) que, de certo modo, formam a base explicativa via PCA.

#Sabendo que PCA é sensível a escala

# PCA sobre correlações (equivalente a prcomp com scale.=TRUE)
pca <- prcomp(dados_pca[2:19], center = TRUE, scale. = TRUE)

pca %>% 
  summary()
Importance of components:
                          PC1     PC2     PC3     PC4     PC5     PC6    PC7
Standard deviation     2.4040 1.17973 1.10358 1.00886 0.99654 0.94898 0.9401
Proportion of Variance 0.3211 0.07732 0.06766 0.05654 0.05517 0.05003 0.0491
Cumulative Proportion  0.3211 0.39840 0.46606 0.52260 0.57777 0.62781 0.6769
                           PC8     PC9    PC10    PC11    PC12    PC13    PC14
Standard deviation     0.87703 0.83063 0.82293 0.80748 0.75681 0.73778 0.70414
Proportion of Variance 0.04273 0.03833 0.03762 0.03622 0.03182 0.03024 0.02755
Cumulative Proportion  0.71963 0.75797 0.79559 0.83181 0.86363 0.89387 0.92142
                          PC15    PC16   PC17   PC18
Standard deviation     0.66084 0.62245 0.5499 0.5366
Proportion of Variance 0.02426 0.02152 0.0168 0.0160
Cumulative Proportion  0.94568 0.96720 0.9840 1.0000

Ao avaliarmos o resultado obtido via PCA, o primeiro componente captura 32,11% da variância total. Em contrapartida, 67,89% ainda fica reservada para as outras 17 componentes. Para alcançar um valor próximo a 70%, por exemplo, deve-se acumular a informação das 8 primeiras componentes.

6.1 Gráfico de “cotovelo” - Autovalores associados as componentes explicativas

A informação apresentada via PCA sugere que uma representação unidimensional não capta de forma adquada as relações presentes nos dados.

fviz_eig(pca, geom="line",  choice = c("eigenvalue"), addlabels = TRUE, main = "")

Com base no Screen plot, é possível avaliar os autovalores, e consequentemente, o poder de dimensão. O gráfico apresenta quada acentuada entre a primeira e a segunda dimensão. Contudo, segue quase como um linha reta a partir da segunda dimensão, apresentando leve variação entre as demais.

A estrutura do gráfico reforça que existe uma componente que domina - PC1, isso não significa que ela sozinha represente bem os dados.

A representação via PCA-biplot não foi utilizada, visto que PC1 + PC2 representam menos de 40% da variabilidade total.

6.2 Análise entre comparação de escores e PC1

A ideia está em avalair se combinação ponderada da PCA ou a simples soma dos itens representam os participantes de maneira semelhante. O teste é realizado via correlação

Cálculo de escores

# Selecionar os 18 itens
X <- dados_pca[, 2:19]

# Calcular o índice tradicional
indice_soma <- rowSums(X)

# Extrair os escores individuais da primeira componente
escore_pc1 <- pca$x[, 1]

# Correlação entre as duas medidas
cor(indice_soma, escore_pc1)
[1] 0.9933774

O valor da correlação obtida foi de 0.9933 - o que indica uma correlação muito alta entre os componentes comparadas.

Visualização da coorelação

plot(
  indice_soma,
  escore_pc1,
  xlab = "Escore (soma dos itens)",
  ylab = "Escore da primeira componente (PC1)",
  main = "Comparação entre o Escore e PC1",
  pch = 19
)

abline(
  lm(escore_pc1 ~ indice_soma),
  col = "red",
  lwd = 2
)

Obitdo o valor de 0.9933 e dado o gráfico de correlação entre as medidas, o valor elevado indica qque as duas medidas tendem a ordenar os participantes de maneira semelhante.

7 Critério de escolha e conclusão

Com base no valor de correlação obtido (0.9933), a escolha pela soma dos itens (escore) produz uma ordenação dos dados semelhantes a realizada pelo PC1. A possível escolha por esse métode seria devido a sua simplificação dos cálculos quando comparada a obtenção da PC1.

A análise de componentes principais permitiu investigar a estrutura de informação das 18 variáveis para mensurar a necessidade de cognição. Os resultados obtidos indicam que a PC1 explica 32,11% da variância. Contudo, Apesar do poder explicativo da PC! em comparação com as demais componentes, dado o que fica de fora da sua variabilidade, PC1 não aparende ser um bom candidato para representar toda a informação dos dados. E como concluído acima, a soma de índices se mostrou uma alternativa viável para representar os escores. Principalmente pela sua simplicitade de cálculo e interpretação.