SAUDAÇÕES!

Seja bem vindo à página do professor Pedro Albuquerque. Para saber mais sobre meu currículo, disciplinas ministradas e interesses de pesquisa, navegue no menu disponível no topo da página.
Mostrando postagens com marcador Equações Estruturais. Mostrar todas as postagens
Mostrando postagens com marcador Equações Estruturais. Mostrar todas as postagens

quinta-feira, 15 de setembro de 2016

Equações Estruturais usando lavaan.shiny.


O pacote lavaan.shiny é uma ótima ferramenta para quem possui dificuldades com a programação em R, mas deseja fazer análises complexas envolvendo Equações Estruturais.

#Limpa o Workspace
rm(list=ls())
#Instalçao do pacote lavaan.shiny
install.packages("lavaan.shiny")
#Instalçao do pacote para gráficos
install.packages("DiagrammeR")
#Invoca a biblioteca
library(lavaan.shiny)
#Abre o shiny do lavaan
lavaan.shiny()

Após a execução desse código, o R apresenta uma tela mais amigável para o desenvolvimento dos modelos de Equações Estruturais, a seguir um exemplo de especificação do modelo:


O próprio lavaan.shiny já apresenta um exemplo pronto de um modelo de Análise Fatorial Confirmatória baseado no trabalho de Holzinger, K. J., & Swineford, F. (1939). A study in factor analysis: the stability of a bi-factor solution. Supplementary Educational Monographs.

Para realizar uma análise prática, o primeiro passo é a inserção do banco de dados de interesse. No final da página do lavaan.shiny você deve copiar e colocar os dados. Você pode fazer isso copiando e colando direto do Excel:


Ao continuar descendo na página há ainda outros resultados, como estatísticas descritivas, correlações, estimativas dos parâmetros e também o gráfico de caminhos:


O pacote lavaan.shiny é uma ótima opção para aqueles que desejam trabalhar com modelos como Análise Fatorial Confirmatória e Equações Estruturais sem a necessidade de programação.

A única programação necessária é a instalação do pacote e execução da função lavaan.shiny() todo o resto ocorre em um navegador na máquina do usuário.

sexta-feira, 11 de dezembro de 2015

Cálculo do tamanho de amostras: Equações Estruturais.


Já vimos em dois posts como calcular o Tamanho Amostral necessário sobre a abordagem de populações finitas para Proporções e Médias.

Existe em estatística, dois paradigmas acerca do cálculo do tamanho amostral:

  • Abordagem de Populações Finitas:
  • Nessa proposta, o objetivo é construir uma amostra representativa de uma população finita de modo a manter "mais ou menos" as mesmas características da população alvo para o conjunto de variáveis de interesse.
  • Abordagem de Populações Infinitas (modelo de superpopulação):
  • Já na abordagem de Populações Infinitas o interesse está em obter uma amostra representativa de uma população teoricamente infinita, para que um determinado modelo (Regressão, Correlação, Equações Estruturais, etc.) possa ser aplicado a determinados níveis de Erro Tipo I e Erro Tipo II.

Nesse sentido, o objetivo desse post é apresentar como o tamanho amostral deve ser calculado quando o interesse é a realização de um modelo de Equações Estruturais, o qual engloba modelos de regressão e análise fatorial confirmatória, por exemplo.

Para isso, utilizaremos como base dois textos: MacCallum, Browne e Sugawara (1996) - Power Analysis and Determination of Sample Size for Covariance Structure Modeling e Rigdon(1994) - Calculating degrees of freedom for a structural equation model. Especificamente, MacCallum, Browne e Sugawara (1996) considera que o interesse do analista que executa um modelo de Equações Estruturais é avaliar o adequamento global do modelo segundo alguma medida de ajuste, em especial o RMSEA - The Root Mean Square Error of Approximation. Em outras palavras o interesse é testar algo como:

$$
\begin{cases}
H_{0}:RMSEA>\kappa_{1}\\
H_{a}:RMSEA\leq\kappa_{2}\\
\end{cases}
$$

onde $\kappa_{1}$ e $\kappa_{2}$ são níveis considerados para o RMSEA. MacCallum, Browne e Sugawara (1996) sugere os seguintes níveis:

  • $RMSEA \geq 0.10$ (Ajuste ruim).
  • $RMSEA \leq 0.10$ (Ajuste medíocre)
  • $RMSEA \leq 0.08$ (Ajuste aceitável).
  • $RMSEA \leq 0.05 $ (Ajuste adequado)
  • $RMSEA = 0.00 $ (Ajuste exato)

Assim, para se calcular o tamanho amostral desejado para um modelo de Equações Estruturais são necessários alguns insumos: níveis máximos admitidos para os Erros Tipo I e Tipo II (usualmente $\alpha=0.05$ e $\beta=0.2$, respectivamente), limites considerados para o teste de hipótese do RMSEA (usualmente, $\kappa_{1}=0.08$ e $\kappa_{2}=0.05$) e o número de graus de liberdade do modelo.

O cálculo do tamanho amostral necessário necessita de algum conhecimento prévio teórico sobre os Modelos de Equações Estruturais, uma boa referência é o livro Bollen (2014) - Structural equations with latent variables.

Considere o seguinte modelo proposto por Rigdon(1994):


O cálculo do número de graus de liberdade desse modelo é a diferença entre o número de informações manifestas não redundantes disponíveis (isto é, número de variâncias e covariâncias possíveis de serem calculadas diretamente com base nos dados $\frac{6\times(6+1)}{2}=21$) e o número de parâmetros livres a ser estimados ($\boldsymbol\theta=(\lambda_{1},\dots,\lambda_{6},\phi_{21},\psi_{1},\dots,\psi_{6})^{T})$ onde $\lambda_{1},\dots,\lambda_{6}$ representam as cargas fatoriais, $\phi_{21}$ a covariância entre as variáveis latentes e $\psi_{1},\dots,\psi_{6}$ as variâncias associadas aos termos de erro $\delta_{1},\dots,\delta_{6}$ tal que para o modelo apresentado temos $dim(\boldsymbol\theta)=13$ e portanto o número de graus de liberdade é igual a $21-13=8$).

Portanto, para o teste de hipótese na forma:

$$
\begin{cases}
H_{0}:RMSEA>0.08\\
H_{a}:RMSEA\leq 0.05\\
\end{cases}
$$

No R basta fazer:

#Chama a biblioteca semTools
library(semTools)
#Define o erro do tipo 1:
erro1<-0.05
#Define o erro do tipo 2:
erro2<-0.20
#Define o número de graus de liberdade
gl<-8
#Define o limite para a hipótese nula do RMSEA
k1REMSEA<-0.08
#Define o limite para a hipótese alternativa do RMSEA
k2REMSEA<-0.05
#Calcula o tamanho amostral
findRMSEAsamplesize(rmsea=k1REMSEA,
                    rmseaA=k2REMSEA, 
                    df=gl, power=(1-erro2), alpha=erro1)
Após a execução do código anterior, o pacote semTools fornece um tamanho amostral mínimo igual a 961 observações. É importante ressaltar que cada modelo pode possuir graus de liberdade diferentes, e portanto, o tamanho amostral dependerá da estrutura gráfica considerada para o modelo de Equações Estruturais.