{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Análise Multivariada e Aprendizado Não-Supervisionado\n",
"\n",
"por Cibele Russo.\n",
"\n",
"ICMC USP São Carlos.\n",
"\n",
"## Aula 8b: Análise Fatorial - Aplicação em Python"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Exemplo: percepções de cereais prontos para comer** \n",
"(Lattin, James; Carroll, J. Douglas; Green, Paul E. Análise de dados multivariados. São Paulo: Cengage Learning, v. 455, 2011, capítulo 5, página 119, exemplo 5.3.1)\n",
" \n",
"Como parte de um estudo das impressões do consumidor sobre cereais prontos para comer, patrocinado pela Kellogg da Austrália, Roberts e Lattin (1991) pesquisaram a percepção desses consumidores em relação às suas marcas favoritas de cereais. Solicitou-se a cada respondente que avaliasse suas três marcas preferidas tendo em mente cada um dos 25 atributos. Uma escala de cinco pontos foi utilizada para indicar a extensão de cada atributo em relação a cada marca.\n",
"\n",
"São apresentados os dados de 12 marcas, com respostas de 116 pessoas em 235 observações.\n",
"\n",
"**Cereais:**\n",
"1. All Bran\n",
"2. Cerola Muesli\n",
"3. Just right\n",
"4. Kellogg's Corn Flakes\n",
"5. Komplete\n",
"6. NutriGrain\n",
"7. Purina Muesli\n",
"8. Rice Bubbles\n",
"9. Special K\n",
"10. Sustain\n",
"11. Vitabrit\n",
"12. Weetbrix\n",
"\n",
"**Atributos:**\n",
"- Satisfaz\n",
"- Natural\n",
"- Fibra\n",
"- Doce\n",
"- Fácil\n",
"- Sal\n",
"- Gratificante\n",
"- Energia\n",
"- Divertido\n",
"- Crianças\n",
"- Encharcado\n",
"- Econômico\n",
"- Saúde\n",
"- Família\n",
"- Calorias\n",
"- Simples\n",
"- Crocante\n",
"- Regular\n",
"- Açúcar\n",
"- Fruta\n",
"- Processo\n",
"- Qualidade\n",
"- Prazer\n",
"- Chato\n",
"- Nutritivo"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"from sklearn.datasets import load_digits\n",
"from sklearn.decomposition import FactorAnalysis\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"#! pip install factor_analyzer==0.3.2\n",
"\n",
"# Fonte: https://pypi.org/project/factor-analyzer/\n",
"# Ver https://www.datacamp.com/community/tutorials/introduction-factor-analysis\n",
"\n",
"from factor_analyzer import FactorAnalyzer\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Name: factor-analyzer\r\n",
"Version: 0.3.2\r\n",
"Summary: A Factor Analysis class\r\n",
"Home-page: https://github.com/EducationalTestingService/factor_analyzer\r\n",
"Author: Jeremy Biggs\r\n",
"Author-email: jbiggs@ets.org\r\n",
"License: UNKNOWN\r\n",
"Location: /home/cibele/anaconda3/lib/python3.7/site-packages\r\n",
"Requires: scipy, numpy, scikit-learn, pandas\r\n",
"Required-by: \r\n"
]
}
],
"source": [
"!pip show factor_analyzer"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Col1 | \n",
" Col2 | \n",
" Col3 | \n",
" Col4 | \n",
" Col5 | \n",
" Col6 | \n",
" Col7 | \n",
" Col8 | \n",
" Col9 | \n",
" Col10 | \n",
" ... | \n",
" Col18 | \n",
" Col19 | \n",
" Col20 | \n",
" Col21 | \n",
" Col22 | \n",
" Col23 | \n",
" Col24 | \n",
" Col25 | \n",
" Col26 | \n",
" Col27 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 101 | \n",
" 25 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 4 | \n",
" ... | \n",
" 3 | \n",
" 1 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 1 | \n",
" 1 | \n",
" 5 | \n",
"
\n",
" \n",
" 1 | \n",
" 101 | \n",
" 21 | \n",
" 1 | \n",
" 2 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 1 | \n",
" ... | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
"
\n",
" \n",
" 2 | \n",
" 103 | \n",
" 21 | \n",
" 5 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 5 | \n",
" 4 | \n",
" 3 | \n",
" 1 | \n",
" 2 | \n",
" 5 | \n",
" 4 | \n",
" 1 | \n",
" 5 | \n",
"
\n",
" \n",
" 3 | \n",
" 103 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
"
\n",
" \n",
" 4 | \n",
" 104 | \n",
" 14 | \n",
" 4 | \n",
" 5 | \n",
" 3 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 5 | \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 27 columns
\n",
"
"
],
"text/plain": [
" Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Col10 ... Col18 \\\n",
"0 101 25 5 5 5 1 2 1 5 4 ... 3 \n",
"1 101 21 1 2 2 1 5 2 5 1 ... 5 \n",
"2 103 21 5 4 5 5 5 3 5 5 ... 1 \n",
"3 103 3 5 5 5 3 5 2 5 5 ... 1 \n",
"4 104 14 4 5 3 2 5 2 5 4 ... 1 \n",
"\n",
" Col19 Col20 Col21 Col22 Col23 Col24 Col25 Col26 Col27 \n",
"0 1 4 1 1 3 5 1 1 5 \n",
"1 5 1 2 1 5 2 1 1 3 \n",
"2 5 4 3 1 2 5 4 1 5 \n",
"3 1 4 2 5 2 5 5 1 5 \n",
"4 5 3 1 1 3 5 5 1 4 \n",
"\n",
"[5 rows x 27 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv(\"/home/cibele/CibelePython/AMANS/Aula 8/rte_cereal.csv\")\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"df = df.rename(columns={ 'Col1':'Voluntário', 'Col2': 'Cereal'})"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Voluntário | \n",
" Cereal | \n",
" Col3 | \n",
" Col4 | \n",
" Col5 | \n",
" Col6 | \n",
" Col7 | \n",
" Col8 | \n",
" Col9 | \n",
" Col10 | \n",
" ... | \n",
" Col18 | \n",
" Col19 | \n",
" Col20 | \n",
" Col21 | \n",
" Col22 | \n",
" Col23 | \n",
" Col24 | \n",
" Col25 | \n",
" Col26 | \n",
" Col27 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 101 | \n",
" 25 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 4 | \n",
" ... | \n",
" 3 | \n",
" 1 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 1 | \n",
" 1 | \n",
" 5 | \n",
"
\n",
" \n",
" 1 | \n",
" 101 | \n",
" 21 | \n",
" 1 | \n",
" 2 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 1 | \n",
" ... | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
"
\n",
" \n",
" 2 | \n",
" 103 | \n",
" 21 | \n",
" 5 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 5 | \n",
" 4 | \n",
" 3 | \n",
" 1 | \n",
" 2 | \n",
" 5 | \n",
" 4 | \n",
" 1 | \n",
" 5 | \n",
"
\n",
" \n",
" 3 | \n",
" 103 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
"
\n",
" \n",
" 4 | \n",
" 104 | \n",
" 14 | \n",
" 4 | \n",
" 5 | \n",
" 3 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 5 | \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 27 columns
\n",
"
"
],
"text/plain": [
" Voluntário Cereal Col3 Col4 Col5 Col6 Col7 Col8 Col9 Col10 ... \\\n",
"0 101 25 5 5 5 1 2 1 5 4 ... \n",
"1 101 21 1 2 2 1 5 2 5 1 ... \n",
"2 103 21 5 4 5 5 5 3 5 5 ... \n",
"3 103 3 5 5 5 3 5 2 5 5 ... \n",
"4 104 14 4 5 3 2 5 2 5 4 ... \n",
"\n",
" Col18 Col19 Col20 Col21 Col22 Col23 Col24 Col25 Col26 Col27 \n",
"0 3 1 4 1 1 3 5 1 1 5 \n",
"1 5 5 1 2 1 5 2 1 1 3 \n",
"2 1 5 4 3 1 2 5 4 1 5 \n",
"3 1 1 4 2 5 2 5 5 1 5 \n",
"4 1 5 3 1 1 3 5 5 1 4 \n",
"\n",
"[5 rows x 27 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"df['Cereal'] = pd.Categorical(df['Cereal']) \n",
"df['Voluntário'] = pd.Categorical(df['Voluntário']) "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" col_0 | \n",
" count | \n",
"
\n",
" \n",
" Cereal | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 1 | \n",
" 15 | \n",
"
\n",
" \n",
" 3 | \n",
" 13 | \n",
"
\n",
" \n",
" 13 | \n",
" 16 | \n",
"
\n",
" \n",
" 14 | \n",
" 27 | \n",
"
\n",
" \n",
" 15 | \n",
" 14 | \n",
"
\n",
" \n",
" 16 | \n",
" 24 | \n",
"
\n",
" \n",
" 17 | \n",
" 18 | \n",
"
\n",
" \n",
" 19 | \n",
" 21 | \n",
"
\n",
" \n",
" 21 | \n",
" 23 | \n",
"
\n",
" \n",
" 23 | \n",
" 12 | \n",
"
\n",
" \n",
" 24 | \n",
" 25 | \n",
"
\n",
" \n",
" 25 | \n",
" 27 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"col_0 count\n",
"Cereal \n",
"1 15\n",
"3 13\n",
"13 16\n",
"14 27\n",
"15 14\n",
"16 24\n",
"17 18\n",
"19 21\n",
"21 23\n",
"23 12\n",
"24 25\n",
"25 27"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(index=df['Cereal'], columns='count') "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" col_0 | \n",
" count | \n",
"
\n",
" \n",
" Voluntário | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 101 | \n",
" 2 | \n",
"
\n",
" \n",
" 103 | \n",
" 2 | \n",
"
\n",
" \n",
" 104 | \n",
" 3 | \n",
"
\n",
" \n",
" 105 | \n",
" 3 | \n",
"
\n",
" \n",
" 106 | \n",
" 2 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 635 | \n",
" 2 | \n",
"
\n",
" \n",
" 636 | \n",
" 3 | \n",
"
\n",
" \n",
" 637 | \n",
" 2 | \n",
"
\n",
" \n",
" 638 | \n",
" 2 | \n",
"
\n",
" \n",
" 639 | \n",
" 2 | \n",
"
\n",
" \n",
"
\n",
"
116 rows × 1 columns
\n",
"
"
],
"text/plain": [
"col_0 count\n",
"Voluntário \n",
"101 2\n",
"103 2\n",
"104 3\n",
"105 3\n",
"106 2\n",
"... ...\n",
"635 2\n",
"636 3\n",
"637 2\n",
"638 2\n",
"639 2\n",
"\n",
"[116 rows x 1 columns]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(index=df['Voluntário'], columns='count') "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"df = df.rename(columns={\n",
"'Col3': 'Satisfaz',\n",
"'Col4': 'Natural',\n",
"'Col5': 'Fibra',\n",
"'Col6': 'Doce',\n",
"'Col7': 'Fácil',\n",
"'Col8': 'Sal',\n",
"'Col9': 'Gratificante',\n",
"'Col10': 'Energia',\n",
"'Col11': 'Divertido',\n",
"'Col12': 'Crianças',\n",
"'Col13': 'Encharcado',\n",
"'Col14': 'Econômico',\n",
"'Col15': 'Saúde',\n",
"'Col16': 'Família',\n",
"'Col17': 'Calorias',\n",
"'Col18': 'Simples',\n",
"'Col19': 'Crocante',\n",
"'Col20': 'Regular',\n",
"'Col21': 'Açúcar',\n",
"'Col22': 'Fruta',\n",
"'Col23': 'Processo',\n",
"'Col24': 'Qualidade',\n",
"'Col25': 'Prazer',\n",
"'Col26': 'Chato',\n",
"'Col27': 'Nutritivo'})"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Voluntário | \n",
" Cereal | \n",
" Satisfaz | \n",
" Natural | \n",
" Fibra | \n",
" Doce | \n",
" Fácil | \n",
" Sal | \n",
" Gratificante | \n",
" Energia | \n",
" ... | \n",
" Simples | \n",
" Crocante | \n",
" Regular | \n",
" Açúcar | \n",
" Fruta | \n",
" Processo | \n",
" Qualidade | \n",
" Prazer | \n",
" Chato | \n",
" Nutritivo | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 101 | \n",
" 25 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 4 | \n",
" ... | \n",
" 3 | \n",
" 1 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 1 | \n",
" 1 | \n",
" 5 | \n",
"
\n",
" \n",
" 1 | \n",
" 101 | \n",
" 21 | \n",
" 1 | \n",
" 2 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 1 | \n",
" ... | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
"
\n",
" \n",
" 2 | \n",
" 103 | \n",
" 21 | \n",
" 5 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 5 | \n",
" 4 | \n",
" 3 | \n",
" 1 | \n",
" 2 | \n",
" 5 | \n",
" 4 | \n",
" 1 | \n",
" 5 | \n",
"
\n",
" \n",
" 3 | \n",
" 103 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
"
\n",
" \n",
" 4 | \n",
" 104 | \n",
" 14 | \n",
" 4 | \n",
" 5 | \n",
" 3 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 5 | \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 27 columns
\n",
"
"
],
"text/plain": [
" Voluntário Cereal Satisfaz Natural Fibra Doce Fácil Sal Gratificante \\\n",
"0 101 25 5 5 5 1 2 1 5 \n",
"1 101 21 1 2 2 1 5 2 5 \n",
"2 103 21 5 4 5 5 5 3 5 \n",
"3 103 3 5 5 5 3 5 2 5 \n",
"4 104 14 4 5 3 2 5 2 5 \n",
"\n",
" Energia ... Simples Crocante Regular Açúcar Fruta Processo \\\n",
"0 4 ... 3 1 4 1 1 3 \n",
"1 1 ... 5 5 1 2 1 5 \n",
"2 5 ... 1 5 4 3 1 2 \n",
"3 5 ... 1 1 4 2 5 2 \n",
"4 4 ... 1 5 3 1 1 3 \n",
"\n",
" Qualidade Prazer Chato Nutritivo \n",
"0 5 1 1 5 \n",
"1 2 1 1 3 \n",
"2 5 4 1 5 \n",
"3 5 5 1 5 \n",
"4 5 5 1 4 \n",
"\n",
"[5 rows x 27 columns]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Satisfaz | \n",
" Natural | \n",
" Fibra | \n",
" Doce | \n",
" Fácil | \n",
" Sal | \n",
" Gratificante | \n",
" Energia | \n",
" Divertido | \n",
" Crianças | \n",
" ... | \n",
" Simples | \n",
" Crocante | \n",
" Regular | \n",
" Açúcar | \n",
" Fruta | \n",
" Processo | \n",
" Qualidade | \n",
" Prazer | \n",
" Chato | \n",
" Nutritivo | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
" ... | \n",
" 3 | \n",
" 1 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 1 | \n",
" 1 | \n",
" 5 | \n",
"
\n",
" \n",
" 1 | \n",
" 1 | \n",
" 2 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 1 | \n",
" 1 | \n",
" 5 | \n",
" ... | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
"
\n",
" \n",
" 2 | \n",
" 5 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 5 | \n",
" 4 | \n",
" 3 | \n",
" 1 | \n",
" 2 | \n",
" 5 | \n",
" 4 | \n",
" 1 | \n",
" 5 | \n",
"
\n",
" \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
"
\n",
" \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 3 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 5 | \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 230 | \n",
" 3 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
" 2 | \n",
" 3 | \n",
" 3 | \n",
" 2 | \n",
" 4 | \n",
" ... | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" 4 | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
"
\n",
" \n",
" 231 | \n",
" 5 | \n",
" 4 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" 2 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
"
\n",
" \n",
" 232 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" ... | \n",
" 3 | \n",
" 3 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" 3 | \n",
" 2 | \n",
" 4 | \n",
"
\n",
" \n",
" 233 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" 4 | \n",
" 2 | \n",
" 3 | \n",
" 3 | \n",
" 2 | \n",
" 3 | \n",
" ... | \n",
" 3 | \n",
" 2 | \n",
" 3 | \n",
" 2 | \n",
" 1 | \n",
" 3 | \n",
" 3 | \n",
" 2 | \n",
" 2 | \n",
" 3 | \n",
"
\n",
" \n",
" 234 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
" 3 | \n",
" 2 | \n",
" 4 | \n",
" ... | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" 2 | \n",
" 4 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
"
\n",
" \n",
"
\n",
"
235 rows × 25 columns
\n",
"
"
],
"text/plain": [
" Satisfaz Natural Fibra Doce Fácil Sal Gratificante Energia \\\n",
"0 5 5 5 1 2 1 5 4 \n",
"1 1 2 2 1 5 2 5 1 \n",
"2 5 4 5 5 5 3 5 5 \n",
"3 5 5 5 3 5 2 5 5 \n",
"4 4 5 3 2 5 2 5 4 \n",
".. ... ... ... ... ... ... ... ... \n",
"230 3 4 4 1 4 2 3 3 \n",
"231 5 4 4 3 4 3 4 4 \n",
"232 4 4 4 1 4 1 4 4 \n",
"233 3 3 3 3 4 2 3 3 \n",
"234 4 4 4 1 4 1 4 3 \n",
"\n",
" Divertido Crianças ... Simples Crocante Regular Açúcar Fruta \\\n",
"0 1 4 ... 3 1 4 1 1 \n",
"1 1 5 ... 5 5 1 2 1 \n",
"2 5 5 ... 1 5 4 3 1 \n",
"3 5 5 ... 1 1 4 2 5 \n",
"4 5 5 ... 1 5 3 1 1 \n",
".. ... ... ... ... ... ... ... ... \n",
"230 2 4 ... 4 3 4 1 1 \n",
"231 4 4 ... 1 4 4 3 4 \n",
"232 3 4 ... 3 3 4 1 1 \n",
"233 2 3 ... 3 2 3 2 1 \n",
"234 2 4 ... 2 2 4 1 1 \n",
"\n",
" Processo Qualidade Prazer Chato Nutritivo \n",
"0 3 5 1 1 5 \n",
"1 5 2 1 1 3 \n",
"2 2 5 4 1 5 \n",
"3 2 5 5 1 5 \n",
"4 3 5 5 1 4 \n",
".. ... ... ... ... ... \n",
"230 3 4 2 2 4 \n",
"231 2 4 4 1 4 \n",
"232 2 3 3 2 4 \n",
"233 3 3 2 2 3 \n",
"234 2 4 2 3 4 \n",
"\n",
"[235 rows x 25 columns]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X = df.iloc[:, 2:27]\n",
"X"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([6.5044682 , 3.8210452 , 2.50199528, 1.68399409, 1.08535397,\n",
" 0.93300686, 0.8516405 , 0.78683657, 0.73171687, 0.69585069,\n",
" 0.6468294 , 0.54795846, 0.52915688, 0.48962363, 0.41774279,\n",
" 0.38707401, 0.362461 , 0.35882947, 0.30475407, 0.27419206,\n",
" 0.26244808, 0.24227943, 0.2179754 , 0.19853087, 0.16423623])"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Create factor analysis object and perform factor analysis\n",
"\n",
"fa = FactorAnalyzer(n_factors=25, rotation='varimax')\n",
"fa.fit(X)\n",
"\n",
"# Check Eigenvalues\n",
"ev, v = fa.get_eigenvalues()\n",
"ev"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Create scree plot using matplotlib\n",
"\n",
"plt.figure(figsize=(20,10))\n",
"plt.scatter(range(1,X.shape[1]+1),ev)\n",
"plt.plot(range(1,X.shape[1]+1),ev)\n",
"plt.title('Scree Plot')\n",
"plt.xlabel('Factors')\n",
"plt.ylabel('Eigenvalue')\n",
"\n",
"plt.grid()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Vamos considerar 4 fatores para a Análise Fatorial!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Análise Fatorial com fatores não rotacionados**"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"FactorAnalyzer(n_factors=4, rotation=None, rotation_kwargs={})"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fa = FactorAnalyzer(n_factors=4, rotation=None)\n",
"fa.fit(X)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Matriz L de cargas fatoriais estimada**"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0.72, 0.1 , -0.07, 0.18],\n",
" [ 0.73, -0.24, -0.11, 0.11],\n",
" [ 0.72, -0.24, -0.31, 0.17],\n",
" [ 0.08, 0.74, -0.21, 0.15],\n",
" [ 0.32, 0.14, 0.2 , 0.11],\n",
" [-0.21, 0.51, -0.14, 0.41],\n",
" [ 0.72, 0.18, 0.16, 0.17],\n",
" [ 0.7 , 0.13, -0.07, 0.12],\n",
" [ 0.39, 0.49, 0.21, -0.16],\n",
" [ 0.22, 0.28, 0.76, 0.12],\n",
" [-0.1 , -0.23, 0.15, 0.4 ],\n",
" [ 0.15, -0.23, 0.47, 0.1 ],\n",
" [ 0.81, -0.31, -0.11, 0.08],\n",
" [ 0.31, 0.22, 0.67, 0.03],\n",
" [-0.16, 0.57, -0.17, 0.21],\n",
" [-0.31, -0.36, 0.22, 0.43],\n",
" [ 0.29, 0.45, 0.21, -0.18],\n",
" [ 0.58, -0.13, -0.18, 0.07],\n",
" [-0.25, 0.74, -0.25, 0.25],\n",
" [ 0.37, 0.25, -0.47, -0.15],\n",
" [-0.3 , 0.27, 0. , 0.23],\n",
" [ 0.73, -0.14, 0.05, -0.03],\n",
" [ 0.47, 0.57, 0.07, -0.21],\n",
" [-0.38, -0.26, -0.1 , 0.34],\n",
" [ 0.8 , -0.22, -0.15, 0.13]])"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L = fa.loadings_\n",
"np.round(L,2)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([6.08645101, 3.36420207, 2.05504928, 1.11555393]),\n",
" array([0.24345804, 0.13456808, 0.08220197, 0.04462216]),\n",
" array([0.24345804, 0.37802612, 0.46022809, 0.50485025]))"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fa.get_factor_variance()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Análise Fatorial com fatores rotacionados (varimax, testar outras)**"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"FactorAnalyzer(n_factors=4, rotation='varimax', rotation_kwargs={})"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fa = FactorAnalyzer(n_factors=4, rotation='varimax')\n",
"fa.fit(X)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Matriz L de cargas fatoriais estimada**"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" FA1 | \n",
" FA2 | \n",
" FA3 | \n",
" FA4 | \n",
"
\n",
" \n",
" \n",
" \n",
" Satisfaz | \n",
" 0.705926 | \n",
" 0.088167 | \n",
" 0.198222 | \n",
" 0.152237 | \n",
"
\n",
" \n",
" Natural | \n",
" 0.752800 | \n",
" -0.208911 | \n",
" 0.054740 | \n",
" 0.036777 | \n",
"
\n",
" \n",
" Fibra | \n",
" 0.821203 | \n",
" -0.116397 | \n",
" -0.120859 | \n",
" 0.020583 | \n",
"
\n",
" \n",
" Doce | \n",
" 0.068946 | \n",
" 0.701790 | \n",
" 0.071968 | \n",
" 0.347628 | \n",
"
\n",
" \n",
" Fácil | \n",
" 0.238564 | \n",
" 0.063576 | \n",
" 0.324555 | \n",
" 0.065804 | \n",
"
\n",
" \n",
" Sal | \n",
" -0.091826 | \n",
" 0.685617 | \n",
" 0.015718 | \n",
" -0.083106 | \n",
"
\n",
" \n",
" Gratificante | \n",
" 0.625896 | \n",
" 0.076987 | \n",
" 0.422415 | \n",
" 0.172316 | \n",
"
\n",
" \n",
" Energia | \n",
" 0.659684 | \n",
" 0.078210 | \n",
" 0.191243 | \n",
" 0.210825 | \n",
"
\n",
" \n",
" Divertido | \n",
" 0.163479 | \n",
" 0.176578 | \n",
" 0.415016 | \n",
" 0.480073 | \n",
"
\n",
" \n",
" Crianças | \n",
" -0.024322 | \n",
" 0.035050 | \n",
" 0.850781 | \n",
" 0.013842 | \n",
"
\n",
" \n",
" Encharcado | \n",
" 0.033180 | \n",
" 0.014651 | \n",
" 0.096186 | \n",
" -0.480159 | \n",
"
\n",
" \n",
" Econômico | \n",
" 0.068874 | \n",
" -0.280265 | \n",
" 0.416057 | \n",
" -0.227187 | \n",
"
\n",
" \n",
" Saúde | \n",
" 0.828531 | \n",
" -0.288274 | \n",
" 0.051120 | \n",
" 0.046116 | \n",
"
\n",
" \n",
" Família | \n",
" 0.062455 | \n",
" -0.054532 | \n",
" 0.760629 | \n",
" 0.093225 | \n",
"
\n",
" \n",
" Calorias | \n",
" -0.113644 | \n",
" 0.626649 | \n",
" -0.008372 | \n",
" 0.120616 | \n",
"
\n",
" \n",
" Simples | \n",
" -0.146444 | \n",
" -0.061650 | \n",
" 0.071122 | \n",
" -0.656386 | \n",
"
\n",
" \n",
" Crocante | \n",
" 0.073932 | \n",
" 0.145985 | \n",
" 0.370988 | \n",
" 0.437885 | \n",
"
\n",
" \n",
" Regular | \n",
" 0.613091 | \n",
" -0.100074 | \n",
" -0.027949 | \n",
" 0.088827 | \n",
"
\n",
" \n",
" Açúcar | \n",
" -0.183849 | \n",
" 0.816649 | \n",
" -0.053763 | \n",
" 0.165341 | \n",
"
\n",
" \n",
" Fruta | \n",
" 0.376150 | \n",
" 0.186503 | \n",
" -0.269375 | \n",
" 0.441862 | \n",
"
\n",
" \n",
" Processo | \n",
" -0.236000 | \n",
" 0.373960 | \n",
" 0.026508 | \n",
" -0.125563 | \n",
"
\n",
" \n",
" Qualidade | \n",
" 0.646587 | \n",
" -0.244715 | \n",
" 0.203617 | \n",
" 0.171207 | \n",
"
\n",
" \n",
" Prazer | \n",
" 0.244884 | \n",
" 0.233365 | \n",
" 0.333632 | \n",
" 0.603503 | \n",
"
\n",
" \n",
" Chato | \n",
" -0.164759 | \n",
" 0.066893 | \n",
" -0.223157 | \n",
" -0.505794 | \n",
"
\n",
" \n",
" Nutritivo | \n",
" 0.831418 | \n",
" -0.176957 | \n",
" 0.050701 | \n",
" 0.056027 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" FA1 FA2 FA3 FA4\n",
"Satisfaz 0.705926 0.088167 0.198222 0.152237\n",
"Natural 0.752800 -0.208911 0.054740 0.036777\n",
"Fibra 0.821203 -0.116397 -0.120859 0.020583\n",
"Doce 0.068946 0.701790 0.071968 0.347628\n",
"Fácil 0.238564 0.063576 0.324555 0.065804\n",
"Sal -0.091826 0.685617 0.015718 -0.083106\n",
"Gratificante 0.625896 0.076987 0.422415 0.172316\n",
"Energia 0.659684 0.078210 0.191243 0.210825\n",
"Divertido 0.163479 0.176578 0.415016 0.480073\n",
"Crianças -0.024322 0.035050 0.850781 0.013842\n",
"Encharcado 0.033180 0.014651 0.096186 -0.480159\n",
"Econômico 0.068874 -0.280265 0.416057 -0.227187\n",
"Saúde 0.828531 -0.288274 0.051120 0.046116\n",
"Família 0.062455 -0.054532 0.760629 0.093225\n",
"Calorias -0.113644 0.626649 -0.008372 0.120616\n",
"Simples -0.146444 -0.061650 0.071122 -0.656386\n",
"Crocante 0.073932 0.145985 0.370988 0.437885\n",
"Regular 0.613091 -0.100074 -0.027949 0.088827\n",
"Açúcar -0.183849 0.816649 -0.053763 0.165341\n",
"Fruta 0.376150 0.186503 -0.269375 0.441862\n",
"Processo -0.236000 0.373960 0.026508 -0.125563\n",
"Qualidade 0.646587 -0.244715 0.203617 0.171207\n",
"Prazer 0.244884 0.233365 0.333632 0.603503\n",
"Chato -0.164759 0.066893 -0.223157 -0.505794\n",
"Nutritivo 0.831418 -0.176957 0.050701 0.056027"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L = pd.DataFrame(fa.loadings_)\n",
"np.round(L,2)\n",
"L.index = X.columns\n",
"L.columns = ['FA1','FA2','FA3','FA4']\n",
"L\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Maiores cargas nos primeiros dois fatores:**\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" FA1 | \n",
" FA2 | \n",
" FA3 | \n",
" FA4 | \n",
"
\n",
" \n",
" \n",
" \n",
" Nutritivo | \n",
" 0.831418 | \n",
" -0.176957 | \n",
" 0.050701 | \n",
" 0.056027 | \n",
"
\n",
" \n",
" Saúde | \n",
" 0.828531 | \n",
" -0.288274 | \n",
" 0.051120 | \n",
" 0.046116 | \n",
"
\n",
" \n",
" Fibra | \n",
" 0.821203 | \n",
" -0.116397 | \n",
" -0.120859 | \n",
" 0.020583 | \n",
"
\n",
" \n",
" Natural | \n",
" 0.752800 | \n",
" -0.208911 | \n",
" 0.054740 | \n",
" 0.036777 | \n",
"
\n",
" \n",
" Satisfaz | \n",
" 0.705926 | \n",
" 0.088167 | \n",
" 0.198222 | \n",
" 0.152237 | \n",
"
\n",
" \n",
" Energia | \n",
" 0.659684 | \n",
" 0.078210 | \n",
" 0.191243 | \n",
" 0.210825 | \n",
"
\n",
" \n",
" Qualidade | \n",
" 0.646587 | \n",
" -0.244715 | \n",
" 0.203617 | \n",
" 0.171207 | \n",
"
\n",
" \n",
" Gratificante | \n",
" 0.625896 | \n",
" 0.076987 | \n",
" 0.422415 | \n",
" 0.172316 | \n",
"
\n",
" \n",
" Regular | \n",
" 0.613091 | \n",
" -0.100074 | \n",
" -0.027949 | \n",
" 0.088827 | \n",
"
\n",
" \n",
" Fruta | \n",
" 0.376150 | \n",
" 0.186503 | \n",
" -0.269375 | \n",
" 0.441862 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" FA1 FA2 FA3 FA4\n",
"Nutritivo 0.831418 -0.176957 0.050701 0.056027\n",
"Saúde 0.828531 -0.288274 0.051120 0.046116\n",
"Fibra 0.821203 -0.116397 -0.120859 0.020583\n",
"Natural 0.752800 -0.208911 0.054740 0.036777\n",
"Satisfaz 0.705926 0.088167 0.198222 0.152237\n",
"Energia 0.659684 0.078210 0.191243 0.210825\n",
"Qualidade 0.646587 -0.244715 0.203617 0.171207\n",
"Gratificante 0.625896 0.076987 0.422415 0.172316\n",
"Regular 0.613091 -0.100074 -0.027949 0.088827\n",
"Fruta 0.376150 0.186503 -0.269375 0.441862"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L.sort_values(by='FA1',ascending=False).head(10)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"np.round(fa.get_communalities(),2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sugestão de denominação do primeiro fator: **Saudável**"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" FA1 | \n",
" FA2 | \n",
" FA3 | \n",
" FA4 | \n",
"
\n",
" \n",
" \n",
" \n",
" Açúcar | \n",
" -0.183849 | \n",
" 0.816649 | \n",
" -0.053763 | \n",
" 0.165341 | \n",
"
\n",
" \n",
" Doce | \n",
" 0.068946 | \n",
" 0.701790 | \n",
" 0.071968 | \n",
" 0.347628 | \n",
"
\n",
" \n",
" Sal | \n",
" -0.091826 | \n",
" 0.685617 | \n",
" 0.015718 | \n",
" -0.083106 | \n",
"
\n",
" \n",
" Calorias | \n",
" -0.113644 | \n",
" 0.626649 | \n",
" -0.008372 | \n",
" 0.120616 | \n",
"
\n",
" \n",
" Processo | \n",
" -0.236000 | \n",
" 0.373960 | \n",
" 0.026508 | \n",
" -0.125563 | \n",
"
\n",
" \n",
" Prazer | \n",
" 0.244884 | \n",
" 0.233365 | \n",
" 0.333632 | \n",
" 0.603503 | \n",
"
\n",
" \n",
" Fruta | \n",
" 0.376150 | \n",
" 0.186503 | \n",
" -0.269375 | \n",
" 0.441862 | \n",
"
\n",
" \n",
" Divertido | \n",
" 0.163479 | \n",
" 0.176578 | \n",
" 0.415016 | \n",
" 0.480073 | \n",
"
\n",
" \n",
" Crocante | \n",
" 0.073932 | \n",
" 0.145985 | \n",
" 0.370988 | \n",
" 0.437885 | \n",
"
\n",
" \n",
" Satisfaz | \n",
" 0.705926 | \n",
" 0.088167 | \n",
" 0.198222 | \n",
" 0.152237 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" FA1 FA2 FA3 FA4\n",
"Açúcar -0.183849 0.816649 -0.053763 0.165341\n",
"Doce 0.068946 0.701790 0.071968 0.347628\n",
"Sal -0.091826 0.685617 0.015718 -0.083106\n",
"Calorias -0.113644 0.626649 -0.008372 0.120616\n",
"Processo -0.236000 0.373960 0.026508 -0.125563\n",
"Prazer 0.244884 0.233365 0.333632 0.603503\n",
"Fruta 0.376150 0.186503 -0.269375 0.441862\n",
"Divertido 0.163479 0.176578 0.415016 0.480073\n",
"Crocante 0.073932 0.145985 0.370988 0.437885\n",
"Satisfaz 0.705926 0.088167 0.198222 0.152237"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L.sort_values(by='FA2',ascending=False).head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sugestões de denominação do segundo fator: **Artificial** ou **Não-saudável**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Exercício: Analise o terceiro e quarto fator e sugira nomes a eles**"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" FA1 | \n",
" FA2 | \n",
" FA3 | \n",
" FA4 | \n",
"
\n",
" \n",
" \n",
" \n",
" Crianças | \n",
" -0.024322 | \n",
" 0.035050 | \n",
" 0.850781 | \n",
" 0.013842 | \n",
"
\n",
" \n",
" Família | \n",
" 0.062455 | \n",
" -0.054532 | \n",
" 0.760629 | \n",
" 0.093225 | \n",
"
\n",
" \n",
" Gratificante | \n",
" 0.625896 | \n",
" 0.076987 | \n",
" 0.422415 | \n",
" 0.172316 | \n",
"
\n",
" \n",
" Econômico | \n",
" 0.068874 | \n",
" -0.280265 | \n",
" 0.416057 | \n",
" -0.227187 | \n",
"
\n",
" \n",
" Divertido | \n",
" 0.163479 | \n",
" 0.176578 | \n",
" 0.415016 | \n",
" 0.480073 | \n",
"
\n",
" \n",
" Crocante | \n",
" 0.073932 | \n",
" 0.145985 | \n",
" 0.370988 | \n",
" 0.437885 | \n",
"
\n",
" \n",
" Prazer | \n",
" 0.244884 | \n",
" 0.233365 | \n",
" 0.333632 | \n",
" 0.603503 | \n",
"
\n",
" \n",
" Fácil | \n",
" 0.238564 | \n",
" 0.063576 | \n",
" 0.324555 | \n",
" 0.065804 | \n",
"
\n",
" \n",
" Qualidade | \n",
" 0.646587 | \n",
" -0.244715 | \n",
" 0.203617 | \n",
" 0.171207 | \n",
"
\n",
" \n",
" Satisfaz | \n",
" 0.705926 | \n",
" 0.088167 | \n",
" 0.198222 | \n",
" 0.152237 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" FA1 FA2 FA3 FA4\n",
"Crianças -0.024322 0.035050 0.850781 0.013842\n",
"Família 0.062455 -0.054532 0.760629 0.093225\n",
"Gratificante 0.625896 0.076987 0.422415 0.172316\n",
"Econômico 0.068874 -0.280265 0.416057 -0.227187\n",
"Divertido 0.163479 0.176578 0.415016 0.480073\n",
"Crocante 0.073932 0.145985 0.370988 0.437885\n",
"Prazer 0.244884 0.233365 0.333632 0.603503\n",
"Fácil 0.238564 0.063576 0.324555 0.065804\n",
"Qualidade 0.646587 -0.244715 0.203617 0.171207\n",
"Satisfaz 0.705926 0.088167 0.198222 0.152237"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L.sort_values(by='FA3',ascending=False).head(10)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" FA1 | \n",
" FA2 | \n",
" FA3 | \n",
" FA4 | \n",
"
\n",
" \n",
" \n",
" \n",
" Prazer | \n",
" 0.244884 | \n",
" 0.233365 | \n",
" 0.333632 | \n",
" 0.603503 | \n",
"
\n",
" \n",
" Divertido | \n",
" 0.163479 | \n",
" 0.176578 | \n",
" 0.415016 | \n",
" 0.480073 | \n",
"
\n",
" \n",
" Fruta | \n",
" 0.376150 | \n",
" 0.186503 | \n",
" -0.269375 | \n",
" 0.441862 | \n",
"
\n",
" \n",
" Crocante | \n",
" 0.073932 | \n",
" 0.145985 | \n",
" 0.370988 | \n",
" 0.437885 | \n",
"
\n",
" \n",
" Doce | \n",
" 0.068946 | \n",
" 0.701790 | \n",
" 0.071968 | \n",
" 0.347628 | \n",
"
\n",
" \n",
" Energia | \n",
" 0.659684 | \n",
" 0.078210 | \n",
" 0.191243 | \n",
" 0.210825 | \n",
"
\n",
" \n",
" Gratificante | \n",
" 0.625896 | \n",
" 0.076987 | \n",
" 0.422415 | \n",
" 0.172316 | \n",
"
\n",
" \n",
" Qualidade | \n",
" 0.646587 | \n",
" -0.244715 | \n",
" 0.203617 | \n",
" 0.171207 | \n",
"
\n",
" \n",
" Açúcar | \n",
" -0.183849 | \n",
" 0.816649 | \n",
" -0.053763 | \n",
" 0.165341 | \n",
"
\n",
" \n",
" Satisfaz | \n",
" 0.705926 | \n",
" 0.088167 | \n",
" 0.198222 | \n",
" 0.152237 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" FA1 FA2 FA3 FA4\n",
"Prazer 0.244884 0.233365 0.333632 0.603503\n",
"Divertido 0.163479 0.176578 0.415016 0.480073\n",
"Fruta 0.376150 0.186503 -0.269375 0.441862\n",
"Crocante 0.073932 0.145985 0.370988 0.437885\n",
"Doce 0.068946 0.701790 0.071968 0.347628\n",
"Energia 0.659684 0.078210 0.191243 0.210825\n",
"Gratificante 0.625896 0.076987 0.422415 0.172316\n",
"Qualidade 0.646587 -0.244715 0.203617 0.171207\n",
"Açúcar -0.183849 0.816649 -0.053763 0.165341\n",
"Satisfaz 0.705926 0.088167 0.198222 0.152237"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L.sort_values(by='FA4',ascending=False).head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Variância explicada por cada fator**"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([5.20310472, 2.66037191, 2.46709534, 2.29068431]),\n",
" array([0.20812419, 0.10641488, 0.09868381, 0.09162737]),\n",
" array([0.20812419, 0.31453907, 0.41322288, 0.50485025]))"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fa.get_factor_variance()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"14.566842922737894"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.sum(fa.get_factor_variance())"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.35718822, 0.18263202, 0.16936376, 0.15725331],\n",
" [0.01428753, 0.00730528, 0.00677455, 0.00629013],\n",
" [0.01428753, 0.02159281, 0.02836736, 0.03465749]])"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fa.get_factor_variance()/np.sum(fa.get_factor_variance())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Variância percentual explicada por cada fator**"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.36, 0.18, 0.17, 0.16],\n",
" [0.01, 0.01, 0.01, 0.01],\n",
" [0.01, 0.02, 0.03, 0.03]])"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.round(fa.get_factor_variance()/np.sum(fa.get_factor_variance()),2)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"df[['Fator1','Fator2','Fator3','Fator4']] = np.array(fa.fit_transform(X))[:, 0:4]"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Voluntário | \n",
" Cereal | \n",
" Satisfaz | \n",
" Natural | \n",
" Fibra | \n",
" Doce | \n",
" Fácil | \n",
" Sal | \n",
" Gratificante | \n",
" Energia | \n",
" ... | \n",
" Fruta | \n",
" Processo | \n",
" Qualidade | \n",
" Prazer | \n",
" Chato | \n",
" Nutritivo | \n",
" Fator1 | \n",
" Fator2 | \n",
" Fator3 | \n",
" Fator4 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 101 | \n",
" 25 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 1 | \n",
" 1 | \n",
" 5 | \n",
" 1.511203 | \n",
" -1.227816 | \n",
" 0.205665 | \n",
" -1.623202 | \n",
"
\n",
" \n",
" 1 | \n",
" 101 | \n",
" 21 | \n",
" 1 | \n",
" 2 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 1 | \n",
" ... | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" -2.071909 | \n",
" -0.588471 | \n",
" 1.374526 | \n",
" -1.162636 | \n",
"
\n",
" \n",
" 2 | \n",
" 103 | \n",
" 21 | \n",
" 5 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 2 | \n",
" 5 | \n",
" 4 | \n",
" 1 | \n",
" 5 | \n",
" 1.473021 | \n",
" 0.812784 | \n",
" 1.088764 | \n",
" 0.696806 | \n",
"
\n",
" \n",
" 3 | \n",
" 103 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
" 1.647908 | \n",
" -0.057011 | \n",
" 0.503627 | \n",
" 1.035769 | \n",
"
\n",
" \n",
" 4 | \n",
" 104 | \n",
" 14 | \n",
" 4 | \n",
" 5 | \n",
" 3 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 4 | \n",
" 0.414373 | \n",
" -0.798018 | \n",
" 1.162082 | \n",
" 1.180994 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 230 | \n",
" 637 | \n",
" 25 | \n",
" 3 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
" 2 | \n",
" 3 | \n",
" 3 | \n",
" ... | \n",
" 1 | \n",
" 3 | \n",
" 4 | \n",
" 2 | \n",
" 2 | \n",
" 4 | \n",
" -0.049875 | \n",
" -0.852049 | \n",
" 0.007291 | \n",
" -1.038142 | \n",
"
\n",
" \n",
" 231 | \n",
" 638 | \n",
" 17 | \n",
" 5 | \n",
" 4 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" 4 | \n",
" ... | \n",
" 4 | \n",
" 2 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
" 0.542971 | \n",
" 0.801985 | \n",
" -0.184593 | \n",
" 1.278528 | \n",
"
\n",
" \n",
" 232 | \n",
" 638 | \n",
" 25 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" 3 | \n",
" 2 | \n",
" 4 | \n",
" 0.187454 | \n",
" -0.898705 | \n",
" -0.030857 | \n",
" -0.212396 | \n",
"
\n",
" \n",
" 233 | \n",
" 639 | \n",
" 21 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" 4 | \n",
" 2 | \n",
" 3 | \n",
" 3 | \n",
" ... | \n",
" 1 | \n",
" 3 | \n",
" 3 | \n",
" 2 | \n",
" 2 | \n",
" 3 | \n",
" -0.619609 | \n",
" -0.234930 | \n",
" -0.743400 | \n",
" -0.332749 | \n",
"
\n",
" \n",
" 234 | \n",
" 639 | \n",
" 25 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
" 3 | \n",
" ... | \n",
" 1 | \n",
" 2 | \n",
" 4 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
" 0.165715 | \n",
" -1.207375 | \n",
" -0.043000 | \n",
" -0.644129 | \n",
"
\n",
" \n",
"
\n",
"
235 rows × 31 columns
\n",
"
"
],
"text/plain": [
" Voluntário Cereal Satisfaz Natural Fibra Doce Fácil Sal \\\n",
"0 101 25 5 5 5 1 2 1 \n",
"1 101 21 1 2 2 1 5 2 \n",
"2 103 21 5 4 5 5 5 3 \n",
"3 103 3 5 5 5 3 5 2 \n",
"4 104 14 4 5 3 2 5 2 \n",
".. ... ... ... ... ... ... ... ... \n",
"230 637 25 3 4 4 1 4 2 \n",
"231 638 17 5 4 4 3 4 3 \n",
"232 638 25 4 4 4 1 4 1 \n",
"233 639 21 3 3 3 3 4 2 \n",
"234 639 25 4 4 4 1 4 1 \n",
"\n",
" Gratificante Energia ... Fruta Processo Qualidade Prazer Chato \\\n",
"0 5 4 ... 1 3 5 1 1 \n",
"1 5 1 ... 1 5 2 1 1 \n",
"2 5 5 ... 1 2 5 4 1 \n",
"3 5 5 ... 5 2 5 5 1 \n",
"4 5 4 ... 1 3 5 5 1 \n",
".. ... ... ... ... ... ... ... ... \n",
"230 3 3 ... 1 3 4 2 2 \n",
"231 4 4 ... 4 2 4 4 1 \n",
"232 4 4 ... 1 2 3 3 2 \n",
"233 3 3 ... 1 3 3 2 2 \n",
"234 4 3 ... 1 2 4 2 3 \n",
"\n",
" Nutritivo Fator1 Fator2 Fator3 Fator4 \n",
"0 5 1.511203 -1.227816 0.205665 -1.623202 \n",
"1 3 -2.071909 -0.588471 1.374526 -1.162636 \n",
"2 5 1.473021 0.812784 1.088764 0.696806 \n",
"3 5 1.647908 -0.057011 0.503627 1.035769 \n",
"4 4 0.414373 -0.798018 1.162082 1.180994 \n",
".. ... ... ... ... ... \n",
"230 4 -0.049875 -0.852049 0.007291 -1.038142 \n",
"231 4 0.542971 0.801985 -0.184593 1.278528 \n",
"232 4 0.187454 -0.898705 -0.030857 -0.212396 \n",
"233 3 -0.619609 -0.234930 -0.743400 -0.332749 \n",
"234 4 0.165715 -1.207375 -0.043000 -0.644129 \n",
"\n",
"[235 rows x 31 columns]"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Voluntário | \n",
" Cereal | \n",
" Satisfaz | \n",
" Natural | \n",
" Fibra | \n",
" Doce | \n",
" Fácil | \n",
" Sal | \n",
" Gratificante | \n",
" Energia | \n",
" ... | \n",
" Fruta | \n",
" Processo | \n",
" Qualidade | \n",
" Prazer | \n",
" Chato | \n",
" Nutritivo | \n",
" Fator1 | \n",
" Fator2 | \n",
" Fator3 | \n",
" Fator4 | \n",
"
\n",
" \n",
" \n",
" \n",
" 40 | \n",
" 121 | \n",
" 23 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
" 1.800709 | \n",
" 1.772916 | \n",
" 0.594875 | \n",
" 0.946000 | \n",
"
\n",
" \n",
" 158 | \n",
" 509 | \n",
" 24 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 4 | \n",
" 5 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 3 | \n",
" 3 | \n",
" 1 | \n",
" 1 | \n",
" 5 | \n",
" 1.785628 | \n",
" 0.970817 | \n",
" -0.017714 | \n",
" -1.697611 | \n",
"
\n",
" \n",
" 31 | \n",
" 116 | \n",
" 1 | \n",
" 5 | \n",
" 4 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 4 | \n",
" 5 | \n",
" 1.701156 | \n",
" -0.150973 | \n",
" -1.156637 | \n",
" -0.790033 | \n",
"
\n",
" \n",
" 78 | \n",
" 214 | \n",
" 24 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 2 | \n",
" 4 | \n",
" 1 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 3 | \n",
" 5 | \n",
" 1.667463 | \n",
" -0.266892 | \n",
" 0.957614 | \n",
" -1.141936 | \n",
"
\n",
" \n",
" 3 | \n",
" 103 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
" 1.647908 | \n",
" -0.057011 | \n",
" 0.503627 | \n",
" 1.035769 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 31 columns
\n",
"
"
],
"text/plain": [
" Voluntário Cereal Satisfaz Natural Fibra Doce Fácil Sal \\\n",
"40 121 23 5 5 5 5 5 3 \n",
"158 509 24 5 5 5 4 5 4 \n",
"31 116 1 5 4 5 1 5 2 \n",
"78 214 24 5 5 5 2 4 1 \n",
"3 103 3 5 5 5 3 5 2 \n",
"\n",
" Gratificante Energia ... Fruta Processo Qualidade Prazer Chato \\\n",
"40 5 5 ... 4 4 4 5 1 \n",
"158 5 5 ... 1 3 3 1 1 \n",
"31 5 5 ... 1 3 5 2 4 \n",
"78 5 5 ... 1 5 5 3 3 \n",
"3 5 5 ... 5 2 5 5 1 \n",
"\n",
" Nutritivo Fator1 Fator2 Fator3 Fator4 \n",
"40 5 1.800709 1.772916 0.594875 0.946000 \n",
"158 5 1.785628 0.970817 -0.017714 -1.697611 \n",
"31 5 1.701156 -0.150973 -1.156637 -0.790033 \n",
"78 5 1.667463 -0.266892 0.957614 -1.141936 \n",
"3 5 1.647908 -0.057011 0.503627 1.035769 \n",
"\n",
"[5 rows x 31 columns]"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.sort_values(by='Fator1',ascending=False).head()"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Voluntário | \n",
" Cereal | \n",
" Satisfaz | \n",
" Natural | \n",
" Fibra | \n",
" Doce | \n",
" Fácil | \n",
" Sal | \n",
" Gratificante | \n",
" Energia | \n",
" ... | \n",
" Fruta | \n",
" Processo | \n",
" Qualidade | \n",
" Prazer | \n",
" Chato | \n",
" Nutritivo | \n",
" Fator1 | \n",
" Fator2 | \n",
" Fator3 | \n",
" Fator4 | \n",
"
\n",
" \n",
" \n",
" \n",
" 84 | \n",
" 216 | \n",
" 16 | \n",
" 3 | \n",
" 1 | \n",
" 2 | \n",
" 5 | \n",
" 3 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 5 | \n",
" 1 | \n",
" 1 | \n",
" 5 | \n",
" 1 | \n",
" -2.004780 | \n",
" 3.232060 | \n",
" -1.070181 | \n",
" -1.209752 | \n",
"
\n",
" \n",
" 19 | \n",
" 110 | \n",
" 17 | \n",
" 3 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 4 | \n",
" 5 | \n",
" 3 | \n",
" ... | \n",
" 3 | \n",
" 5 | \n",
" 4 | \n",
" 3 | \n",
" 1 | \n",
" 3 | \n",
" 0.106473 | \n",
" 2.658713 | \n",
" -1.662884 | \n",
" 0.032212 | \n",
"
\n",
" \n",
" 12 | \n",
" 107 | \n",
" 3 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" ... | \n",
" 3 | \n",
" 3 | \n",
" 2 | \n",
" 3 | \n",
" 2 | \n",
" 3 | \n",
" 0.014755 | \n",
" 2.311869 | \n",
" -0.117537 | \n",
" 0.073186 | \n",
"
\n",
" \n",
" 202 | \n",
" 623 | \n",
" 16 | \n",
" 4 | \n",
" 2 | \n",
" 2 | \n",
" 5 | \n",
" 4 | \n",
" 2 | \n",
" 4 | \n",
" 3 | \n",
" ... | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 4 | \n",
" 2 | \n",
" 1 | \n",
" -1.808149 | \n",
" 2.130614 | \n",
" 0.954689 | \n",
" 0.653752 | \n",
"
\n",
" \n",
" 13 | \n",
" 107 | \n",
" 17 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 4 | \n",
" 4 | \n",
" ... | \n",
" 3 | \n",
" 3 | \n",
" 2 | \n",
" 3 | \n",
" 2 | \n",
" 3 | \n",
" -0.099413 | \n",
" 2.065421 | \n",
" 0.247917 | \n",
" 0.163003 | \n",
"
\n",
" \n",
"
\n",
"
5 rows × 31 columns
\n",
"
"
],
"text/plain": [
" Voluntário Cereal Satisfaz Natural Fibra Doce Fácil Sal \\\n",
"84 216 16 3 1 2 5 3 4 \n",
"19 110 17 3 4 3 4 5 4 \n",
"12 107 3 4 4 4 5 5 4 \n",
"202 623 16 4 2 2 5 4 2 \n",
"13 107 17 4 4 4 5 5 3 \n",
"\n",
" Gratificante Energia ... Fruta Processo Qualidade Prazer Chato \\\n",
"84 3 4 ... 1 5 1 1 5 \n",
"19 5 3 ... 3 5 4 3 1 \n",
"12 4 4 ... 3 3 2 3 2 \n",
"202 4 3 ... 1 5 2 4 2 \n",
"13 4 4 ... 3 3 2 3 2 \n",
"\n",
" Nutritivo Fator1 Fator2 Fator3 Fator4 \n",
"84 1 -2.004780 3.232060 -1.070181 -1.209752 \n",
"19 3 0.106473 2.658713 -1.662884 0.032212 \n",
"12 3 0.014755 2.311869 -0.117537 0.073186 \n",
"202 1 -1.808149 2.130614 0.954689 0.653752 \n",
"13 3 -0.099413 2.065421 0.247917 0.163003 \n",
"\n",
"[5 rows x 31 columns]"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.sort_values(by='Fator2',ascending=False).head()"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Voluntário | \n",
" Cereal | \n",
" Satisfaz | \n",
" Natural | \n",
" Fibra | \n",
" Doce | \n",
" Fácil | \n",
" Sal | \n",
" Gratificante | \n",
" Energia | \n",
" ... | \n",
" Fruta | \n",
" Processo | \n",
" Qualidade | \n",
" Prazer | \n",
" Chato | \n",
" Nutritivo | \n",
" Fator1 | \n",
" Fator2 | \n",
" Fator3 | \n",
" Fator4 | \n",
"
\n",
" \n",
" \n",
" \n",
" 14 | \n",
" 108 | \n",
" 14 | \n",
" 4 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" 6 | \n",
" 4 | \n",
" 6 | \n",
" 4 | \n",
" ... | \n",
" 2 | \n",
" 6 | \n",
" 5 | \n",
" 6 | \n",
" 2 | \n",
" 4 | \n",
" 0.457386 | \n",
" 2.033867 | \n",
" 2.395862 | \n",
" 0.620719 | \n",
"
\n",
" \n",
" 67 | \n",
" 208 | \n",
" 16 | \n",
" 5 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
" 0.224355 | \n",
" -0.971851 | \n",
" 1.603950 | \n",
" 1.525069 | \n",
"
\n",
" \n",
" 86 | \n",
" 217 | \n",
" 16 | \n",
" 5 | \n",
" 4 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 4 | \n",
" 0.142001 | \n",
" 1.139136 | \n",
" 1.572300 | \n",
" 1.188624 | \n",
"
\n",
" \n",
" 6 | \n",
" 104 | \n",
" 21 | \n",
" 4 | \n",
" 4 | \n",
" 3 | \n",
" 2 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 4 | \n",
" 0.343484 | \n",
" -0.613576 | \n",
" 1.568627 | \n",
" 1.362000 | \n",
"
\n",
" \n",
" 16 | \n",
" 109 | \n",
" 19 | \n",
" 3 | \n",
" 2 | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 4 | \n",
" 2 | \n",
" ... | \n",
" 1 | \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 1 | \n",
" -2.247778 | \n",
" -0.429522 | \n",
" 1.528648 | \n",
" 0.937863 | \n",
"
\n",
" \n",
" 164 | \n",
" 601 | \n",
" 14 | \n",
" 5 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 4 | \n",
" 0.474218 | \n",
" 1.160796 | \n",
" 1.519926 | \n",
" 0.706265 | \n",
"
\n",
" \n",
" 32 | \n",
" 116 | \n",
" 14 | \n",
" 5 | \n",
" 4 | \n",
" 3 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 4 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 3 | \n",
" 0.091426 | \n",
" 0.428634 | \n",
" 1.518692 | \n",
" 1.290257 | \n",
"
\n",
" \n",
" 5 | \n",
" 104 | \n",
" 19 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" 2 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
" 4 | \n",
" 0.232809 | \n",
" -0.298089 | \n",
" 1.429301 | \n",
" 1.187791 | \n",
"
\n",
" \n",
" 1 | \n",
" 101 | \n",
" 21 | \n",
" 1 | \n",
" 2 | \n",
" 2 | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 1 | \n",
" ... | \n",
" 1 | \n",
" 5 | \n",
" 2 | \n",
" 1 | \n",
" 1 | \n",
" 3 | \n",
" -2.071909 | \n",
" -0.588471 | \n",
" 1.374526 | \n",
" -1.162636 | \n",
"
\n",
" \n",
" 154 | \n",
" 507 | \n",
" 16 | \n",
" 5 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 5 | \n",
" 3 | \n",
" 5 | \n",
" 5 | \n",
" ... | \n",
" 1 | \n",
" 4 | \n",
" 3 | \n",
" 5 | \n",
" 1 | \n",
" 4 | \n",
" 0.442696 | \n",
" 0.433320 | \n",
" 1.346596 | \n",
" 0.288051 | \n",
"
\n",
" \n",
" 39 | \n",
" 121 | \n",
" 14 | \n",
" 4 | \n",
" 5 | \n",
" 2 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 5 | \n",
" 3 | \n",
" ... | \n",
" 1 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" 1 | \n",
" 3 | \n",
" -0.054382 | \n",
" 0.695968 | \n",
" 1.272317 | \n",
" -1.409241 | \n",
"
\n",
" \n",
" 7 | \n",
" 105 | \n",
" 21 | \n",
" 4 | \n",
" 3 | \n",
" 3 | \n",
" 2 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 2 | \n",
" 4 | \n",
" 2 | \n",
" 1 | \n",
" 3 | \n",
" -0.377005 | \n",
" -1.060711 | \n",
" 1.246173 | \n",
" 0.384114 | \n",
"
\n",
" \n",
" 9 | \n",
" 105 | \n",
" 14 | \n",
" 4 | \n",
" 3 | \n",
" 3 | \n",
" 2 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 2 | \n",
" 4 | \n",
" 2 | \n",
" 1 | \n",
" 3 | \n",
" -0.377005 | \n",
" -1.060711 | \n",
" 1.246173 | \n",
" 0.384114 | \n",
"
\n",
" \n",
" 8 | \n",
" 105 | \n",
" 19 | \n",
" 4 | \n",
" 3 | \n",
" 3 | \n",
" 2 | \n",
" 5 | \n",
" 1 | \n",
" 5 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 2 | \n",
" 4 | \n",
" 2 | \n",
" 1 | \n",
" 3 | \n",
" -0.377005 | \n",
" -1.060711 | \n",
" 1.246173 | \n",
" 0.384114 | \n",
"
\n",
" \n",
" 150 | \n",
" 505 | \n",
" 19 | \n",
" 4 | \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
" 5 | \n",
" 2 | \n",
" 4 | \n",
" 4 | \n",
" ... | \n",
" 1 | \n",
" 3 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
" 4 | \n",
" -0.450616 | \n",
" 0.460411 | \n",
" 1.239492 | \n",
" 0.627744 | \n",
"
\n",
" \n",
"
\n",
"
15 rows × 31 columns
\n",
"
"
],
"text/plain": [
" Voluntário Cereal Satisfaz Natural Fibra Doce Fácil Sal \\\n",
"14 108 14 4 4 3 4 6 4 \n",
"67 208 16 5 3 3 3 5 1 \n",
"86 217 16 5 4 3 4 5 3 \n",
"6 104 21 4 4 3 2 5 1 \n",
"16 109 19 3 2 1 3 5 2 \n",
"164 601 14 5 3 4 5 5 3 \n",
"32 116 14 5 4 3 2 5 2 \n",
"5 104 19 4 4 4 2 5 2 \n",
"1 101 21 1 2 2 1 5 2 \n",
"154 507 16 5 4 4 1 5 3 \n",
"39 121 14 4 5 2 3 5 2 \n",
"7 105 21 4 3 3 2 5 1 \n",
"9 105 14 4 3 3 2 5 1 \n",
"8 105 19 4 3 3 2 5 1 \n",
"150 505 19 4 3 3 3 5 2 \n",
"\n",
" Gratificante Energia ... Fruta Processo Qualidade Prazer Chato \\\n",
"14 6 4 ... 2 6 5 6 2 \n",
"67 5 5 ... 1 3 5 5 1 \n",
"86 5 5 ... 1 4 5 5 1 \n",
"6 5 5 ... 1 3 5 5 1 \n",
"16 4 2 ... 1 1 4 4 1 \n",
"164 5 4 ... 1 2 5 5 1 \n",
"32 5 5 ... 1 4 5 5 1 \n",
"5 5 4 ... 1 3 5 5 1 \n",
"1 5 1 ... 1 5 2 1 1 \n",
"154 5 5 ... 1 4 3 5 1 \n",
"39 5 3 ... 1 3 3 3 1 \n",
"7 5 4 ... 1 2 4 2 1 \n",
"9 5 4 ... 1 2 4 2 1 \n",
"8 5 4 ... 1 2 4 2 1 \n",
"150 4 4 ... 1 3 4 4 1 \n",
"\n",
" Nutritivo Fator1 Fator2 Fator3 Fator4 \n",
"14 4 0.457386 2.033867 2.395862 0.620719 \n",
"67 5 0.224355 -0.971851 1.603950 1.525069 \n",
"86 4 0.142001 1.139136 1.572300 1.188624 \n",
"6 4 0.343484 -0.613576 1.568627 1.362000 \n",
"16 1 -2.247778 -0.429522 1.528648 0.937863 \n",
"164 4 0.474218 1.160796 1.519926 0.706265 \n",
"32 3 0.091426 0.428634 1.518692 1.290257 \n",
"5 4 0.232809 -0.298089 1.429301 1.187791 \n",
"1 3 -2.071909 -0.588471 1.374526 -1.162636 \n",
"154 4 0.442696 0.433320 1.346596 0.288051 \n",
"39 3 -0.054382 0.695968 1.272317 -1.409241 \n",
"7 3 -0.377005 -1.060711 1.246173 0.384114 \n",
"9 3 -0.377005 -1.060711 1.246173 0.384114 \n",
"8 3 -0.377005 -1.060711 1.246173 0.384114 \n",
"150 4 -0.450616 0.460411 1.239492 0.627744 \n",
"\n",
"[15 rows x 31 columns]"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.sort_values(by='Fator3',ascending=False).head(15)"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Satisfaz | \n",
" Natural | \n",
" Fibra | \n",
" Doce | \n",
" Fácil | \n",
" Sal | \n",
" Gratificante | \n",
" Energia | \n",
" Divertido | \n",
" Crianças | \n",
" ... | \n",
" Fruta | \n",
" Processo | \n",
" Qualidade | \n",
" Prazer | \n",
" Chato | \n",
" Nutritivo | \n",
" Fator1 | \n",
" Fator2 | \n",
" Fator3 | \n",
" Fator4 | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.0 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" ... | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
" 12.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 4.250000 | \n",
" 4.166667 | \n",
" 4.166667 | \n",
" 2.5 | \n",
" 4.750000 | \n",
" 1.750000 | \n",
" 4.416667 | \n",
" 4.333333 | \n",
" 3.250000 | \n",
" 3.333333 | \n",
" ... | \n",
" 3.416667 | \n",
" 2.583333 | \n",
" 4.000000 | \n",
" 3.250000 | \n",
" 1.333333 | \n",
" 4.166667 | \n",
" 0.677950 | \n",
" -0.304194 | \n",
" -0.328501 | \n",
" 0.856943 | \n",
"
\n",
" \n",
" std | \n",
" 0.753778 | \n",
" 0.717741 | \n",
" 0.577350 | \n",
" 1.0 | \n",
" 0.621582 | \n",
" 0.753778 | \n",
" 0.514929 | \n",
" 0.492366 | \n",
" 1.356801 | \n",
" 1.302678 | \n",
" ... | \n",
" 0.668558 | \n",
" 0.792961 | \n",
" 0.603023 | \n",
" 1.215431 | \n",
" 0.651339 | \n",
" 0.389249 | \n",
" 0.576499 | \n",
" 0.918673 | \n",
" 0.876071 | \n",
" 0.468176 | \n",
"
\n",
" \n",
" min | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 1.0 | \n",
" 3.000000 | \n",
" 1.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" ... | \n",
" 2.000000 | \n",
" 1.000000 | \n",
" 3.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 4.000000 | \n",
" -0.271603 | \n",
" -1.175071 | \n",
" -1.690997 | \n",
" -0.183898 | \n",
"
\n",
" \n",
" 25% | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 2.0 | \n",
" 5.000000 | \n",
" 1.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 2.000000 | \n",
" 2.750000 | \n",
" ... | \n",
" 3.000000 | \n",
" 2.000000 | \n",
" 4.000000 | \n",
" 2.750000 | \n",
" 1.000000 | \n",
" 4.000000 | \n",
" 0.379106 | \n",
" -0.987525 | \n",
" -0.838936 | \n",
" 0.617901 | \n",
"
\n",
" \n",
" 50% | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 2.0 | \n",
" 5.000000 | \n",
" 2.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" ... | \n",
" 3.500000 | \n",
" 3.000000 | \n",
" 4.000000 | \n",
" 3.000000 | \n",
" 1.000000 | \n",
" 4.000000 | \n",
" 0.563984 | \n",
" -0.534336 | \n",
" -0.364881 | \n",
" 0.868307 | \n",
"
\n",
" \n",
" 75% | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 4.250000 | \n",
" 3.0 | \n",
" 5.000000 | \n",
" 2.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 4.250000 | \n",
" 4.250000 | \n",
" ... | \n",
" 4.000000 | \n",
" 3.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 1.250000 | \n",
" 4.000000 | \n",
" 0.967569 | \n",
" -0.033562 | \n",
" 0.244718 | \n",
" 1.201676 | \n",
"
\n",
" \n",
" max | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.0 | \n",
" 5.000000 | \n",
" 3.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" ... | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 3.000000 | \n",
" 5.000000 | \n",
" 1.800709 | \n",
" 1.772916 | \n",
" 1.194799 | \n",
" 1.513775 | \n",
"
\n",
" \n",
"
\n",
"
8 rows × 29 columns
\n",
"
"
],
"text/plain": [
" Satisfaz Natural Fibra Doce Fácil Sal \\\n",
"count 12.000000 12.000000 12.000000 12.0 12.000000 12.000000 \n",
"mean 4.250000 4.166667 4.166667 2.5 4.750000 1.750000 \n",
"std 0.753778 0.717741 0.577350 1.0 0.621582 0.753778 \n",
"min 3.000000 3.000000 3.000000 1.0 3.000000 1.000000 \n",
"25% 4.000000 4.000000 4.000000 2.0 5.000000 1.000000 \n",
"50% 4.000000 4.000000 4.000000 2.0 5.000000 2.000000 \n",
"75% 5.000000 5.000000 4.250000 3.0 5.000000 2.000000 \n",
"max 5.000000 5.000000 5.000000 5.0 5.000000 3.000000 \n",
"\n",
" Gratificante Energia Divertido Crianças ... Fruta \\\n",
"count 12.000000 12.000000 12.000000 12.000000 ... 12.000000 \n",
"mean 4.416667 4.333333 3.250000 3.333333 ... 3.416667 \n",
"std 0.514929 0.492366 1.356801 1.302678 ... 0.668558 \n",
"min 4.000000 4.000000 1.000000 1.000000 ... 2.000000 \n",
"25% 4.000000 4.000000 2.000000 2.750000 ... 3.000000 \n",
"50% 4.000000 4.000000 3.000000 3.000000 ... 3.500000 \n",
"75% 5.000000 5.000000 4.250000 4.250000 ... 4.000000 \n",
"max 5.000000 5.000000 5.000000 5.000000 ... 4.000000 \n",
"\n",
" Processo Qualidade Prazer Chato Nutritivo Fator1 \\\n",
"count 12.000000 12.000000 12.000000 12.000000 12.000000 12.000000 \n",
"mean 2.583333 4.000000 3.250000 1.333333 4.166667 0.677950 \n",
"std 0.792961 0.603023 1.215431 0.651339 0.389249 0.576499 \n",
"min 1.000000 3.000000 1.000000 1.000000 4.000000 -0.271603 \n",
"25% 2.000000 4.000000 2.750000 1.000000 4.000000 0.379106 \n",
"50% 3.000000 4.000000 3.000000 1.000000 4.000000 0.563984 \n",
"75% 3.000000 4.000000 4.000000 1.250000 4.000000 0.967569 \n",
"max 4.000000 5.000000 5.000000 3.000000 5.000000 1.800709 \n",
"\n",
" Fator2 Fator3 Fator4 \n",
"count 12.000000 12.000000 12.000000 \n",
"mean -0.304194 -0.328501 0.856943 \n",
"std 0.918673 0.876071 0.468176 \n",
"min -1.175071 -1.690997 -0.183898 \n",
"25% -0.987525 -0.838936 0.617901 \n",
"50% -0.534336 -0.364881 0.868307 \n",
"75% -0.033562 0.244718 1.201676 \n",
"max 1.772916 1.194799 1.513775 \n",
"\n",
"[8 rows x 29 columns]"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[df['Cereal']==23].describe()"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Satisfaz | \n",
" Natural | \n",
" Fibra | \n",
" Doce | \n",
" Fácil | \n",
" Sal | \n",
" Gratificante | \n",
" Energia | \n",
" Divertido | \n",
" Crianças | \n",
" ... | \n",
" Fruta | \n",
" Processo | \n",
" Qualidade | \n",
" Prazer | \n",
" Chato | \n",
" Nutritivo | \n",
" Fator1 | \n",
" Fator2 | \n",
" Fator3 | \n",
" Fator4 | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.00000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" ... | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
" 24.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 4.000000 | \n",
" 3.166667 | \n",
" 3.041667 | \n",
" 3.291667 | \n",
" 4.50000 | \n",
" 2.416667 | \n",
" 4.000000 | \n",
" 3.833333 | \n",
" 3.375000 | \n",
" 4.583333 | \n",
" ... | \n",
" 1.083333 | \n",
" 3.333333 | \n",
" 3.250000 | \n",
" 3.333333 | \n",
" 1.791667 | \n",
" 3.333333 | \n",
" -0.425268 | \n",
" 0.811222 | \n",
" 0.547825 | \n",
" 0.288638 | \n",
"
\n",
" \n",
" std | \n",
" 0.834058 | \n",
" 1.049500 | \n",
" 1.041703 | \n",
" 1.122078 | \n",
" 0.65938 | \n",
" 0.928611 | \n",
" 0.884652 | \n",
" 0.916831 | \n",
" 1.209114 | \n",
" 0.829702 | \n",
" ... | \n",
" 0.282330 | \n",
" 1.239448 | \n",
" 1.224745 | \n",
" 1.129319 | \n",
" 1.215092 | \n",
" 1.129319 | \n",
" 1.010920 | \n",
" 0.958173 | \n",
" 0.770270 | \n",
" 0.850119 | \n",
"
\n",
" \n",
" min | \n",
" 2.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 3.00000 | \n",
" 1.000000 | \n",
" 2.000000 | \n",
" 2.000000 | \n",
" 1.000000 | \n",
" 2.000000 | \n",
" ... | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" -2.255889 | \n",
" -0.971851 | \n",
" -1.574086 | \n",
" -1.339032 | \n",
"
\n",
" \n",
" 25% | \n",
" 4.000000 | \n",
" 2.750000 | \n",
" 2.000000 | \n",
" 2.000000 | \n",
" 4.00000 | \n",
" 2.000000 | \n",
" 4.000000 | \n",
" 3.750000 | \n",
" 3.000000 | \n",
" 4.750000 | \n",
" ... | \n",
" 1.000000 | \n",
" 2.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 1.000000 | \n",
" 3.000000 | \n",
" -0.929506 | \n",
" 0.179558 | \n",
" 0.419480 | \n",
" -0.251599 | \n",
"
\n",
" \n",
" 50% | \n",
" 4.000000 | \n",
" 3.000000 | \n",
" 3.000000 | \n",
" 3.500000 | \n",
" 5.00000 | \n",
" 2.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 3.000000 | \n",
" 5.000000 | \n",
" ... | \n",
" 1.000000 | \n",
" 4.000000 | \n",
" 3.000000 | \n",
" 3.500000 | \n",
" 1.000000 | \n",
" 3.500000 | \n",
" -0.393224 | \n",
" 0.971815 | \n",
" 0.730821 | \n",
" 0.489832 | \n",
"
\n",
" \n",
" 75% | \n",
" 4.250000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 5.00000 | \n",
" 3.000000 | \n",
" 5.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 5.000000 | \n",
" ... | \n",
" 1.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 2.250000 | \n",
" 4.000000 | \n",
" 0.316187 | \n",
" 1.350222 | \n",
" 0.955864 | \n",
" 0.965475 | \n",
"
\n",
" \n",
" max | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.00000 | \n",
" 4.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" ... | \n",
" 2.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 5.000000 | \n",
" 1.328698 | \n",
" 3.232060 | \n",
" 1.603950 | \n",
" 1.525069 | \n",
"
\n",
" \n",
"
\n",
"
8 rows × 29 columns
\n",
"
"
],
"text/plain": [
" Satisfaz Natural Fibra Doce Fácil Sal \\\n",
"count 24.000000 24.000000 24.000000 24.000000 24.00000 24.000000 \n",
"mean 4.000000 3.166667 3.041667 3.291667 4.50000 2.416667 \n",
"std 0.834058 1.049500 1.041703 1.122078 0.65938 0.928611 \n",
"min 2.000000 1.000000 1.000000 1.000000 3.00000 1.000000 \n",
"25% 4.000000 2.750000 2.000000 2.000000 4.00000 2.000000 \n",
"50% 4.000000 3.000000 3.000000 3.500000 5.00000 2.000000 \n",
"75% 4.250000 4.000000 4.000000 4.000000 5.00000 3.000000 \n",
"max 5.000000 5.000000 5.000000 5.000000 5.00000 4.000000 \n",
"\n",
" Gratificante Energia Divertido Crianças ... Fruta \\\n",
"count 24.000000 24.000000 24.000000 24.000000 ... 24.000000 \n",
"mean 4.000000 3.833333 3.375000 4.583333 ... 1.083333 \n",
"std 0.884652 0.916831 1.209114 0.829702 ... 0.282330 \n",
"min 2.000000 2.000000 1.000000 2.000000 ... 1.000000 \n",
"25% 4.000000 3.750000 3.000000 4.750000 ... 1.000000 \n",
"50% 4.000000 4.000000 3.000000 5.000000 ... 1.000000 \n",
"75% 5.000000 4.000000 4.000000 5.000000 ... 1.000000 \n",
"max 5.000000 5.000000 5.000000 5.000000 ... 2.000000 \n",
"\n",
" Processo Qualidade Prazer Chato Nutritivo Fator1 \\\n",
"count 24.000000 24.000000 24.000000 24.000000 24.000000 24.000000 \n",
"mean 3.333333 3.250000 3.333333 1.791667 3.333333 -0.425268 \n",
"std 1.239448 1.224745 1.129319 1.215092 1.129319 1.010920 \n",
"min 1.000000 1.000000 1.000000 1.000000 1.000000 -2.255889 \n",
"25% 2.000000 3.000000 3.000000 1.000000 3.000000 -0.929506 \n",
"50% 4.000000 3.000000 3.500000 1.000000 3.500000 -0.393224 \n",
"75% 4.000000 4.000000 4.000000 2.250000 4.000000 0.316187 \n",
"max 5.000000 5.000000 5.000000 5.000000 5.000000 1.328698 \n",
"\n",
" Fator2 Fator3 Fator4 \n",
"count 24.000000 24.000000 24.000000 \n",
"mean 0.811222 0.547825 0.288638 \n",
"std 0.958173 0.770270 0.850119 \n",
"min -0.971851 -1.574086 -1.339032 \n",
"25% 0.179558 0.419480 -0.251599 \n",
"50% 0.971815 0.730821 0.489832 \n",
"75% 1.350222 0.955864 0.965475 \n",
"max 3.232060 1.603950 1.525069 \n",
"\n",
"[8 rows x 29 columns]"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[df['Cereal']==16].describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}