Econometria I

Paulo Manoel da Silva Junior

Regressão Beta

Introdução

Introdução

“As distribuições beta são muito versáteis e uma variedade de incertezas pode ser útilmente modelada por elas. Essa flexibilidade incentiva seu uso empírico em uma ampla gama de aplicações” (Johnson, Kotz e Balakrishnan, 1995, p. 235). Várias aplicações da distribuição beta são discutidas por Bury (1999) e por Johnson, Kotz e Balakrishnan (1995).

A busca pela felicidade tem sido um tema central nas sociedades humanas ao longo da história. A Pontuação do Índice de Felicidade é uma medida de bem-estar que tem recebido considerável atenção nos últimos anos como um indicador da prosperidade geral e da qualidade de vida de um país. A pontuação do Índice de Felicidade é calculada com base em diversas variáveis, incluindo PIB per capita, apoio social, esperança de vida saudável, liberdade para fazer escolhas de vida, perceções de corrupção e generosidade.

Descrição do Objetivo

O presente estudo tem como objetivo aplicar em um banco de dados a regressão beta.

Fazendo toda a análise Exploratória e também verificando se o modelo foi bem ajustado e em procura do melhor modelo.

O banco de dados que será utilizado foi encontrado em: Índice de Felicidade

Análise de Resíduos, verificação do pseudo \(R^2\). Verificação da especificação do modelo.

Metodologia

A metodologia utilizada foi a aplicação da Regressão Beta, em software R, com o pacote betareg.

Cribari-Neto F, Zeileis A (2010). “Beta Regression in R.” Journal of Statistical Software, 34(2), 1-24. doi:10.18637/jss.v034.i02 https://doi.org/10.18637/jss.v034.i02.

Descrição das Variáveis

Descrição do Banco de Dados

Resumo do banco de dados: Este estudo analisa a associação entre a pontuação do Índice de Felicidade em 2018 e 2019, e um conjunto de variáveis independentes como Classificação geral, PIB per capita, Apoio social, Expectativa de vida saudável, Liberdade fazer escolhas de vida, Generosidade e Percepções de corrupção. O objetivo deste estudo é investigar o impacto dessas variáveis independentes no nível de felicidade dos indivíduos durante esses dois anos. Além disso, foi realizada uma análise por país para examinar as variações nas variáveis entre o país mais feliz no topo da classificação e a Índia. Múltiplas visualizações foram empregadas para identificar e ilustrar essas diferenças de maneira clara e concisa.

Descrição das variáveis:

  • Classificação geral: lista de classificações de diferentes países de 1 a 156

  • País ou região: Lista dos nomes dos diferentes países. Pontuação: Lista de pontuações de felicidade de diferentes países.

  • PIB per capita: A pontuação do PIB per capita de diferentes países.

  • Apoio social: O apoio social de diferentes países.

  • Expectativa de vida saudável: A expectativa de vida saudável de diferentes países.

  • Liberdade para fazer escolhas de vida: A pontuação da percepção de liberdade de diferentes países.

  • Generosidade: Pontuação de generosidade (a qualidade de ser gentil e generoso) de diferentes países.

  • Percepções de corrupção: A pontuação da percepção de corrupção em diferentes países.

  • Observação: Como o Score de Felicidade está entre 1 e 10, vamos dividir ela por 10, para que fique uma proporção entre 0 e 1.

Banco de Dados

Estatística Descritiva

Análise Exploratória dos Dados

O banco de dados tem 156 observações.

Estatística Descritiva do Banco de dados
Score de Felicidade PIB Suporte Social Expectativa de Vida Saudável Liberdade para fazer escolhas de vida Generosidade Percepção de Corrupção
Mean 0.5407 0.9051 1.2088 0.7252 0.3926 0.1848 0.1106
Maximum 0.7769 1.6840 1.6240 1.1410 0.6310 0.5660 0.4530
Minimum 0.2853 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
Median 0.5379 0.9600 1.2715 0.7890 0.4170 0.1775 0.0855
Mean + 3 standard deviation 0.8746 2.1003 2.1064 1.4516 0.8224 0.4706 0.3942
Mean + 2 standard deviation 0.7633 1.7019 1.8072 1.2095 0.6791 0.3754 0.2997
Mean + 1 standard deviation 0.6520 1.3035 1.5080 0.9674 0.5359 0.2801 0.2051
Mean - 1 standard deviation 0.4294 0.5068 0.9096 0.4831 0.2493 0.0896 0.0161
Mean - 2 standard deviation 0.3181 0.1084 0.6104 0.2410 0.1060 -0.0057 -0.0785
Mean - 3 standard deviation 0.2068 -0.2900 0.3112 -0.0011 -0.0373 -0.1009 -0.1730
Quantile (99.87%) 0.7735 1.6689 1.6165 1.1372 0.6266 0.5523 0.4445
Quantile (97.73%) 0.7491 1.5014 1.5647 1.0568 0.5970 0.3734 0.3863
Quantile (84.14%) 0.6445 1.3253 1.4853 0.9960 0.5354 0.2678 0.1691
Quantile (15.87%) 0.4356 0.3898 0.8856 0.4430 0.2386 0.0830 0.0340
Quantile (2.28%) 0.3286 0.0842 0.4844 0.2134 0.0474 0.0397 0.0060
Quantile (0.14%) 0.2903 0.0056 0.0820 0.0228 0.0022 0.0054 0.0009
n 156.0000 156.0000 156.0000 156.0000 156.0000 156.0000 156.0000
Range 0.4916 1.6840 1.6240 1.1410 0.6310 0.5660 0.4530
Variance 0.0124 0.1587 0.0895 0.0586 0.0205 0.0091 0.0089
Standard deviation 0.1113 0.3984 0.2992 0.2421 0.1433 0.0953 0.0945
Standard error of the mean 0.0089 0.0319 0.0240 0.0194 0.0115 0.0076 0.0076
Coefficient of variation (%) 20.5863 44.0138 24.7508 33.3852 36.5003 51.5317 85.4753
Skewness 0.0113 -0.3815 -1.1238 -0.6079 -0.6790 0.7387 1.6345
Kurtosis 2.3727 2.2163 4.1517 2.6685 2.8951 4.0977 5.3018
P-value (Shapiro-Wilk) 0.1633 0.0006 0.0000 0.0000 0.0001 0.0004 0.0000
  • Podemos observar que estamos diante de uma variável de interesse Score de Felicidade que está no intervalo: (0,1), ou seja, iremos utilizar a regressão beta.

Visualização Gráfica

Podemos observar que não estamos diante de dados simétricos.

Visualização Gráfica

Visualizando o gráfico de dispersão das variáveis independentes com a variável dependente.

Podemos observar uma tendência crescente diante, ou seja, parece existir uma correlação positiva, alta que a medida que o PIB cresce, o score de felicidade também cresce. Uma correlação de 0.794.

Visualização Gráfica

Mais uma vez observamos uma relação linear entre essas duas variáveis, a medida que o suporte social cresce, o score de felicidade também aumenta.

Visualização Gráfica

Através da visualização gráfica, podemos analisar um padrão positivo, ou seja, a influência da expectativa de vida saudável é positiva no score de felicidade.

Visualização Gráfica

Mais uma vez observamos um padrão positivo, todavia com uma dispersão maior nos dados, talvez em um problema de regressão linear, um problema com heterocedasticidade, todavia o modelo de regressão beta não necessita de tal pressuposto.

Visualização Gráfica

De acordo com a visualização gráfica não conseguimos observar um padrão identificável dessas duas variáveis.

Visualização Gráfica

Através da análise gráfica não parece haver nenhum padrão entre essas duas variáveis.

Correlação

Resultados

Ajuste do modelo

Ajuste do modelo com precisão fixa

De maneira inicial, estaremos realizando o ajuste do modelo de precisão fixa, com todas as variáveis e função de ligação logit que é utilizada por default. Depois vamos estar observando quais variáveis são significativas e posteriormente testando outras funções de ligação.


Call:
betareg::betareg(formula = Score ~ PIB + Suporte_Social + Expectativa_de_vida_saudavel + 
    liberdade + generosidade + percepção_corrupção, data = banco)

Standardized weighted residuals 2:
    Min      1Q  Median      3Q     Max 
-3.4301 -0.6784  0.0986  0.7357  2.3375 

Coefficients (mean model with logit link):
                             Estimate Std. Error z value Pr(>|z|)    
(Intercept)                  -1.33496    0.08768 -15.225  < 2e-16 ***
PIB                           0.31325    0.08896   3.521 0.000430 ***
Suporte_Social                0.47530    0.09711   4.895 9.85e-07 ***
Expectativa_de_vida_saudavel  0.44439    0.13553   3.279 0.001042 ** 
liberdade                     0.58385    0.15285   3.820 0.000134 ***
generosidade                  0.21306    0.20295   1.050 0.293801    
percepção_corrupção           0.48045    0.22612   2.125 0.033608 *  

Phi coefficients (precision model with identity link):
      Estimate Std. Error z value Pr(>|z|)    
(phi)   86.897      9.785   8.881   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Type of estimator: ML (maximum likelihood)
Log-likelihood: 239.8 on 8 Df
Pseudo R-squared: 0.7771
Number of iterations: 25 (BFGS) + 3 (Fisher scoring) 

Comentário: Depois de realizado o primeiro ajuste, observamos que todas as variáveis foram significativas, exceto a Generosidade, sendo assim, nos próximos ajustes faremos a retirada dela para que o modelo possa estar bem específicado. Tivemos um pseudo \(R^2\) de 77.71%, ou seja, o modelo consegue explicar essa porcentagem da variabilidade total. Um bom valor, todavia, vamos modelar com precisão variável. De início considerando todas as variáveis na estrutura de precisão, ou seja, no \(\phi\).

Ajuste do modelo de precisão variável

Como sabemos do modelo anterior que para a estrutura de \(\mu\) a variável generosidade não é siginificante, já vamos proceder com a retirada dela na estrutura da média.


Call:
betareg::betareg(formula = Score ~ PIB + Suporte_Social + Expectativa_de_vida_saudavel + 
    liberdade + percepção_corrupção | PIB + Suporte_Social + Expectativa_de_vida_saudavel + 
    liberdade + generosidade + percepção_corrupção, data = banco)

Standardized weighted residuals 2:
    Min      1Q  Median      3Q     Max 
-2.9306 -0.6768  0.0572  0.6867  2.5601 

Coefficients (mean model with logit link):
                             Estimate Std. Error z value Pr(>|z|)    
(Intercept)                  -1.32527    0.08627 -15.363  < 2e-16 ***
PIB                           0.29775    0.08543   3.485 0.000491 ***
Suporte_Social                0.39239    0.09575   4.098 4.17e-05 ***
Expectativa_de_vida_saudavel  0.56306    0.13003   4.330 1.49e-05 ***
liberdade                     0.70912    0.12612   5.622 1.88e-08 ***
percepção_corrupção           0.60371    0.22179   2.722 0.006489 ** 

Phi coefficients (precision model with log link):
                             Estimate Std. Error z value Pr(>|z|)    
(Intercept)                   3.83036    0.55485   6.903 5.08e-12 ***
PIB                          -0.05033    0.57445  -0.088   0.9302    
Suporte_Social                1.33300    0.62283   2.140   0.0323 *  
Expectativa_de_vida_saudavel  0.34485    0.88119   0.391   0.6955    
liberdade                    -2.74692    0.98937  -2.776   0.0055 ** 
generosidade                  1.04636    1.31167   0.798   0.4250    
percepção_corrupção          -1.61526    1.42650  -1.132   0.2575    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Type of estimator: ML (maximum likelihood)
Log-likelihood: 248.7 on 13 Df
Pseudo R-squared: 0.7735
Number of iterations: 20 (BFGS) + 3 (Fisher scoring) 

Comentário: Observamos após a realização do ajuste do modelo de precisão variável, que na estrutura da média, como já havíamos retirado a variável que não era significativa, generosidade, todas as outras mostraram-se significativas no ajuste. Quanto a estrutura de precisão, do \(\phi\), podemos observar que somente as variáveis Suporte Social e liberdade para fazer escolhas de vida foram significativas para a estrutura de precisão no modelo. O valor do pseudo \(R^2\) foi de 77.35%, explicando essa porcentagem da variabilidade total.

Antes de passar para o teste da razão de verossimilhança para saber se utilizaremos o modelo de precisão fixa, ou de precisão variável, vamos estar retirando as variáveis que não são significantes para ambas as estruturas, tendo assim o possível melhor modelo, todavia, mais a frente será realizado o teste RESET para verificar a especificação do modelo.

Verificação do modelo de precisão fixa ou variável

Teste da razão de verossimilhança

Testamos as seguintes hipóteses:

\[H_0: Modelo \hspace{0.1cm} de \hspace{0.1cm} precisão \hspace{0.1cm} fixa \]

\[H_1: Modelo \hspace{0.1cm} de \hspace{0.1cm} precisão \hspace{0.1cm} fixa \hspace{0.1cm} não \hspace{0.1cm} é \hspace{0.1cm} o \hspace{0.1cm}melhor \]

Likelihood ratio test

Model 1: Score ~ PIB + Suporte_Social + Expectativa_de_vida_saudavel + 
    liberdade + percepção_corrupção
Model 2: Score ~ PIB + Suporte_Social + Expectativa_de_vida_saudavel + 
    liberdade + percepção_corrupção | Suporte_Social + liberdade
  #Df LogLik Df  Chisq Pr(>Chisq)    
1   7 239.24                         
2   9 247.84  2 17.205  0.0001836 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Conclusão: Rejeitamos \(H_0\), ao nível de significância de 5%, ou seja, nesse ajuste deve ser utilizado o modelo de precisão variável.

Sendo assim, daqui em diante, utilizaremos o modelo com estrutura variável, onde as variáveis são as seguintes:

Tabela: Variáveis do modelo de Regressão

Para \(\mu\) Para \(\phi\)
PIB Suporte Social
Suporte Social liberdade para fazer escolhas de vida
Expectativa de vida saudável
liberdade para fazer escolhas de vida
Percepções de corrupção

Verificando se o modelo está bem específicado

Utilização do teste RESET

Para verificação se o modelo está bem específicado, estaremos utilizando o teste RESET, que consiste em testar possíveis adições de variáveis preditoras ao quadrado, se forem significativas, podemos concluir que o teste não está bem específicado.

Podemos definir as hipóteses dessa maneira, acrescentamos ao modelo já ajustado um \(\alpha\), que seria essas variáveis que já fazem parte do modelo ao quadrado, ou alguma interação entre elas. E as hipóteses são as seguintes:

\[H_0: \alpha = 0, \quad ou \hspace{0.1cm} seja \hspace{0.1cm} o \hspace{0.1cm} modelo \hspace{0.1cm} está \hspace{0.1cm} bem \hspace{0.1cm} especificado \] \[H_0: \alpha \neq 0, \quad ou \hspace{0.1cm} seja \hspace{0.1cm} o \hspace{0.1cm} modelo \hspace{0.1cm}não \hspace{0.1cm} está \hspace{0.1cm} bem \hspace{0.1cm} especificado\]

Comentário: Ao nível de significância de 5%, rejeitamos a hipótese nula de que o modelo está bem específicado, ou seja, é possível acrescentar alguma variável para que o modelo fique bem específicado. Por isso, de acordo com a visualização gráfica, podemos tentar acrescentar o suporte social ao quadrado e a percepção de corrupção também.

Acréscimo de variáveis ao quadrado


Call:
betareg::betareg(formula = Score ~ PIB + Suporte_Social + Expectativa_de_vida_saudavel + 
    liberdade + percepção_corrupção + percepção_corrupção_quad + 
    Suporte_Social_quad | Suporte_Social + liberdade, data = banco)

Standardized weighted residuals 2:
    Min      1Q  Median      3Q     Max 
-3.1436 -0.6734  0.0835  0.6882  2.2453 

Coefficients (mean model with logit link):
                             Estimate Std. Error z value Pr(>|z|)    
(Intercept)                  -0.84960    0.21254  -3.997 6.40e-05 ***
PIB                           0.26372    0.08483   3.109  0.00188 ** 
Suporte_Social               -0.55524    0.38743  -1.433  0.15182    
Expectativa_de_vida_saudavel  0.55730    0.12571   4.433 9.28e-06 ***
liberdade                     0.71833    0.12847   5.591 2.25e-08 ***
percepção_corrupção           0.64541    0.57442   1.124  0.26119    
percepção_corrupção_quad     -0.39637    1.52949  -0.259  0.79552    
Suporte_Social_quad           0.45514    0.17633   2.581  0.00985 ** 

Phi coefficients (precision model with log link):
               Estimate Std. Error z value Pr(>|z|)    
(Intercept)      3.9031     0.4837   8.069 7.08e-16 ***
Suporte_Social   1.3879     0.4211   3.296  0.00098 ***
liberdade       -2.4784     0.8816  -2.811  0.00493 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Type of estimator: ML (maximum likelihood)
Log-likelihood: 250.9 on 11 Df
Pseudo R-squared: 0.788
Number of iterations: 19 (BFGS) + 7 (Fisher scoring) 

Depois de alterados, podemos observar que as variáveis origininais não se mostraram mais significativas, sendo assim, vamos retirar elas do modelo e proceder com o teste de especificação.


Call:
betareg::betareg(formula = Score ~ PIB + Expectativa_de_vida_saudavel + 
    liberdade + Suporte_Social | Suporte_Social + liberdade, data = banco)

Standardized weighted residuals 2:
    Min      1Q  Median      3Q     Max 
-3.2242 -0.7032  0.0570  0.8119  2.1745 

Coefficients (mean model with logit link):
                             Estimate Std. Error z value Pr(>|z|)    
(Intercept)                  -1.26860    0.08133 -15.598  < 2e-16 ***
PIB                           0.33481    0.08523   3.928 8.55e-05 ***
Expectativa_de_vida_saudavel  0.54848    0.12731   4.308 1.64e-05 ***
liberdade                     0.86747    0.11696   7.417 1.20e-13 ***
Suporte_Social                0.32871    0.09215   3.567 0.000361 ***

Phi coefficients (precision model with log link):
               Estimate Std. Error z value Pr(>|z|)    
(Intercept)      4.4236     0.4837   9.146  < 2e-16 ***
Suporte_Social   1.2096     0.4209   2.874  0.00405 ** 
liberdade       -3.4755     0.8811  -3.944    8e-05 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Type of estimator: ML (maximum likelihood)
Log-likelihood: 244.1 on 8 Df
Pseudo R-squared: 0.7635
Number of iterations: 15 (BFGS) + 3 (Fisher scoring) 
Likelihood ratio test

Model 1: Score ~ PIB + Expectativa_de_vida_saudavel + liberdade + Suporte_Social | 
    Suporte_Social + liberdade
Model 2: Score ~ PIB + Expectativa_de_vida_saudavel + liberdade + Suporte_Social + 
    I(predict(ajuste_logit_pv3, type = "link")^2) | Suporte_Social + 
    liberdade
  #Df LogLik Df  Chisq Pr(>Chisq)    
1   8 244.15                         
2   9 254.71  1 21.127  4.298e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Ainda não encontramos o melhor modelo.

Teste de mais um modelo

Depois de alguns testes para ver se o modelo estava bem especificado, ficamos com o seguinte modelo.


Call:
betareg::betareg(formula = Score ~ Suporte_Social + liberdade + Expectativa_quad * 
    PIB | Suporte_Social + liberdade, data = banco)

Standardized weighted residuals 2:
    Min      1Q  Median      3Q     Max 
-3.0508 -0.6080  0.0244  0.6916  2.4607 

Coefficients (mean model with logit link):
                      Estimate Std. Error z value Pr(>|z|)    
(Intercept)          -0.999846   0.084229 -11.871  < 2e-16 ***
Suporte_Social        0.423391   0.089651   4.723 2.33e-06 ***
liberdade             0.799028   0.113253   7.055 1.72e-12 ***
Expectativa_quad      0.004573   0.201761   0.023  0.98192    
PIB                   0.063408   0.107350   0.591  0.55474    
Expectativa_quad:PIB  0.448971   0.159647   2.812  0.00492 ** 

Phi coefficients (precision model with log link):
               Estimate Std. Error z value Pr(>|z|)    
(Intercept)      4.6199     0.4844   9.538  < 2e-16 ***
Suporte_Social   1.0361     0.4216   2.458  0.01399 *  
liberdade       -3.1735     0.8818  -3.599  0.00032 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Type of estimator: ML (maximum likelihood)
Log-likelihood: 252.4 on 9 Df
Pseudo R-squared: 0.7922
Number of iterations: 16 (BFGS) + 2 (Fisher scoring) 

Comentário: Podemos observar que algumas variáveis não foram significativas no modelo ajustado, todavia permaneceremos com elas nesse primeiro momento para verificar se o modelo estará bem específicado. Temos que o modelo ajustado teve um pseudo \(R^2\) de 79.22%, ou seja, temos uma boa proporção de variabilidade total explicada pelo modelo.

Sendo assim, temos que as variáveis que fazem parte do modelo ajustado são:

Tabela: Variáveis do modelo de Regressão

Para \(\mu\) Para \(\phi\)
PIB Suporte Social
Suporte Social liberdade para fazer escolhas de vida
Expectativa de vida saudável\(^2\)
liberdade para fazer escolhas de vida
PIB \(\times\) Expectativa de vida saudável\(^2\)

Teste RESET

Likelihood ratio test

Model 1: Score ~ Suporte_Social + liberdade + Expectativa_quad * PIB | 
    Suporte_Social + liberdade
Model 2: Score ~ Suporte_Social + liberdade + Expectativa_quad + PIB + 
    I(predict(ajuste_logit_pv4, type = "link")^2) + Expectativa_quad:PIB | 
    Suporte_Social + liberdade
  #Df LogLik Df  Chisq Pr(>Chisq)  
1   9 252.37                       
2  10 253.77  1 2.8089    0.09374 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Resposta: Ao nível de significicância de 5% não rejeitamos a hipótese nula, ou seja, ao nível de 5% de significância o modelo está bem específicado. Prosseguiremos com esse modelo.

Teste de outras funções

Cauchit

Vamos estar ajustando o modelo com a função Cauchit, e ver os resultados, o modelo que estará sendo utilizado é o que passou no ajuste do teste RESET


Call:
betareg::betareg(formula = Score ~ Suporte_Social + liberdade + Expectativa_quad * 
    PIB | Suporte_Social + liberdade, data = banco, link = "cauchit")

Standardized weighted residuals 2:
    Min      1Q  Median      3Q     Max 
-3.0042 -0.6411  0.0122  0.7161  2.5295 

Coefficients (mean model with cauchit link):
                     Estimate Std. Error z value Pr(>|z|)    
(Intercept)          -0.79807    0.07294 -10.941  < 2e-16 ***
Suporte_Social        0.34745    0.07422   4.681 2.85e-06 ***
liberdade             0.66143    0.09357   7.069 1.56e-12 ***
Expectativa_quad     -0.05313    0.16837  -0.316  0.75234    
PIB                   0.01245    0.08964   0.139  0.88957    
Expectativa_quad:PIB  0.44032    0.13758   3.200  0.00137 ** 

Phi coefficients (precision model with log link):
               Estimate Std. Error z value Pr(>|z|)    
(Intercept)      4.6102     0.4844   9.518  < 2e-16 ***
Suporte_Social   1.0375     0.4216   2.461 0.013858 *  
liberdade       -3.1577     0.8818  -3.581 0.000342 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Type of estimator: ML (maximum likelihood)
Log-likelihood: 252.3 on 9 Df
Pseudo R-squared: 0.7857
Number of iterations: 18 (BFGS) + 1 (Fisher scoring) 

Comentário: Depois de ajustado o modelo com função cauchit, podemos observar que o resultado foi bem próximo, do modelo logit, lembrando que em ambos os modelos foi utilizado o modelo com precisão variável.

Probit

Ajustando o modelo com função probit


Call:
betareg::betareg(formula = Score ~ Suporte_Social + liberdade + Expectativa_quad * 
    PIB | Suporte_Social + liberdade, data = banco, link = "probit")

Standardized weighted residuals 2:
    Min      1Q  Median      3Q     Max 
-3.0576 -0.6075  0.0273  0.6891  2.4493 

Coefficients (mean model with probit link):
                     Estimate Std. Error z value Pr(>|z|)    
(Intercept)          -0.62504    0.05195 -12.031  < 2e-16 ***
Suporte_Social        0.26342    0.05572   4.728 2.27e-06 ***
liberdade             0.49674    0.07045   7.051 1.77e-12 ***
Expectativa_quad      0.01003    0.12526   0.080  0.93619    
PIB                   0.04433    0.06665   0.665  0.50597    
Expectativa_quad:PIB  0.27061    0.09862   2.744  0.00607 ** 

Phi coefficients (precision model with log link):
               Estimate Std. Error z value Pr(>|z|)    
(Intercept)      4.6216     0.4844   9.541  < 2e-16 ***
Suporte_Social   1.0353     0.4216   2.456 0.014061 *  
liberdade       -3.1759     0.8818  -3.601 0.000317 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Type of estimator: ML (maximum likelihood)
Log-likelihood: 252.4 on 9 Df
Pseudo R-squared: 0.7927
Number of iterations: 17 (BFGS) + 3 (Fisher scoring) 

Cloglog

Ajustando o modelo com função cLoglog


Call:
betareg::betareg(formula = Score ~ Suporte_Social + liberdade + Expectativa_quad * 
    PIB | Suporte_Social + liberdade, data = banco, link = "cloglog")

Standardized weighted residuals 2:
    Min      1Q  Median      3Q     Max 
-3.0851 -0.5844 -0.0167  0.7120  2.4655 

Coefficients (mean model with cloglog link):
                     Estimate Std. Error z value Pr(>|z|)    
(Intercept)          -1.14765    0.06425 -17.863  < 2e-16 ***
Suporte_Social        0.32787    0.06596   4.971 6.66e-07 ***
liberdade             0.55332    0.07946   6.964 3.31e-12 ***
Expectativa_quad      0.11463    0.14001   0.819   0.4129    
PIB                   0.09600    0.07648   1.255   0.2094    
Expectativa_quad:PIB  0.18969    0.10848   1.749   0.0804 .  

Phi coefficients (precision model with log link):
               Estimate Std. Error z value Pr(>|z|)    
(Intercept)      4.5250     0.4843   9.343  < 2e-16 ***
Suporte_Social   1.0654     0.4216   2.527 0.011496 *  
liberdade       -2.9800     0.8819  -3.379 0.000728 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Type of estimator: ML (maximum likelihood)
Log-likelihood: 253.6 on 9 Df
Pseudo R-squared: 0.7911
Number of iterations: 17 (BFGS) + 3 (Fisher scoring) 

Log

Ajustando o modelo com função log


Call:
betareg::betareg(formula = Score ~ Suporte_Social + liberdade + Expectativa_quad * 
    PIB | Suporte_Social + liberdade, data = banco, link = "log")

Standardized weighted residuals 2:
    Min      1Q  Median      3Q     Max 
-3.1383 -0.5254  0.0118  0.7274  2.4483 

Coefficients (mean model with log link):
                     Estimate Std. Error z value Pr(>|z|)    
(Intercept)          -1.28379    0.04709 -27.260  < 2e-16 ***
Suporte_Social        0.24104    0.04589   5.252 1.50e-07 ***
liberdade             0.35562    0.05236   6.791 1.11e-11 ***
Expectativa_quad      0.18068    0.09147   1.975   0.0482 *  
PIB                   0.11741    0.05156   2.277   0.0228 *  
Expectativa_quad:PIB  0.01179    0.06923   0.170   0.8648    

Phi coefficients (precision model with log link):
               Estimate Std. Error z value Pr(>|z|)    
(Intercept)      4.3627     0.4842   9.009  < 2e-16 ***
Suporte_Social   1.1060     0.4215   2.624  0.00870 ** 
liberdade       -2.6424     0.8820  -2.996  0.00274 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Type of estimator: ML (maximum likelihood)
Log-likelihood:   255 on 9 Df
Pseudo R-squared: 0.7816
Number of iterations: 17 (BFGS) + 3 (Fisher scoring) 

LogLog

Ajustando o modelo com função loglog


Call:
betareg::betareg(formula = Score ~ Suporte_Social + liberdade + Expectativa_quad * 
    PIB | Suporte_Social + liberdade, data = banco, link = "loglog")

Standardized weighted residuals 2:
    Min      1Q  Median      3Q     Max 
-3.0259 -0.6416  0.0757  0.6934  2.4233 

Coefficients (mean model with loglog link):
                      Estimate Std. Error z value Pr(>|z|)    
(Intercept)          -0.289875   0.055587  -5.215 1.84e-07 ***
Suporte_Social        0.275783   0.061962   4.451 8.55e-06 ***
liberdade             0.582554   0.082352   7.074 1.51e-12 ***
Expectativa_quad     -0.090900   0.148700  -0.611 0.541001    
PIB                   0.009378   0.076956   0.122 0.903004    
Expectativa_quad:PIB  0.436028   0.119540   3.648 0.000265 ***

Phi coefficients (precision model with log link):
               Estimate Std. Error z value Pr(>|z|)    
(Intercept)      4.6953     0.4844   9.692  < 2e-16 ***
Suporte_Social   1.0011     0.4216   2.375 0.017573 *  
liberdade       -3.3082     0.8818  -3.752 0.000176 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Type of estimator: ML (maximum likelihood)
Log-likelihood: 250.9 on 9 Df
Pseudo R-squared: 0.789
Number of iterations: 18 (BFGS) + 4 (Fisher scoring) 

Resumo dos modelos

Depois de ajustado os modelos sob as mesmas condições, exceto com alteração da função, vamos estar observando uma tabela com os resultados dos pseudos \(R^2\), e do AIC dos modelos.

Lembrando a observação que todos são iguais na estrutura do \(\mu\), e que a estrutura do \(\phi\) é de precisão variável com as mesmas variáveis para todos os modelos.

Tabela: Resultados dos Ajustes

Modelo Pseudo \(R^2\)% AIC
Logit 79.22 -486.738
Probit 79.27 -486.706
Cauchit 78.57 -486.519
log 78.16 -492.06
Loglog 78.9 -483.789
cLoglog 79.11 -489.189

Conforme, o resultado final, podemos optar por escolher o modelo com função Probit.

Sendo assim, escolhemos esse modelo, e será realizado a parte de análise dos resíduos com base no modelo ajustado.

Análise de Resíduos

Análise de Resíduos

A análise de resíduos é muito importante na utilização de modelos de regressão, na utilização do modelo beta estaremos apenas utilizando o resíduo ponderado, definido como sweighted2 e o deviance.

Deviance

De acordo com a visualização gráfica dos resíduos, podemos observar que o modelo está bem ajustado, possivelmente com duas observações como pontos de influência que podem ser investigadas.

Sweighted

Conclusão Final

Verificamos que o modelo de regressão beta, para valores entre (0,1) é bem utilizada.

Podemos verificar através dos resultados expostos acima, que o modelo de regressão beta foi bem ajustado aos dados utilizados. O modelo encontrado estava bem específicado, com um valor de pseudo \(R^2\) significativo.

Referências

Kaggle (Plataforma de Datasets). Happiness Index 2018-2019. URL: https://www.kaggle.com/datasets/sougatapramanick/happiness-index-2018-2019?resource=download. Acesso em: 09/10/2023.

FERRARI, Silvia L.P.; CRIBARI-NETO, Francisco. Beta Regression for Modelling Rates and Proportions.