“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.
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.
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.
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.
O banco de dados tem 156 observações.
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 |
Score de Felicidade
que está no intervalo: (0,1), ou seja, iremos utilizar a regressão beta.Podemos observar que não estamos diante de dados simétricos.
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.
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.
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.
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.
De acordo com a visualização gráfica não conseguimos observar um padrão identificável dessas duas variáveis.
Através da análise gráfica não parece haver nenhum padrão entre essas duas variáveis.
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\).
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.
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 |
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.
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.
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\) |
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.
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.
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)
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)
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)
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)
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.
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
.
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.
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.
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.
Econometria I