{ "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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Col1Col2Col3Col4Col5Col6Col7Col8Col9Col10...Col18Col19Col20Col21Col22Col23Col24Col25Col26Col27
01012555512154...3141135115
11012112215251...5512152113
21032154555355...1543125415
3103355535255...1142525515
41041445325254...1531135514
\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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
VoluntárioCerealCol3Col4Col5Col6Col7Col8Col9Col10...Col18Col19Col20Col21Col22Col23Col24Col25Col26Col27
01012555512154...3141135115
11012112215251...5512152113
21032154555355...1543125415
3103355535255...1142525515
41041445325254...1531135514
\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", " \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", " \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", " \n", " \n", " \n", " \n", "
col_0count
Cereal
115
313
1316
1427
1514
1624
1718
1921
2123
2312
2425
2527
\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", " \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", " \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", "
col_0count
Voluntário
1012
1032
1043
1053
1062
......
6352
6363
6372
6382
6392
\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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
VoluntárioCerealSatisfazNaturalFibraDoceFácilSalGratificanteEnergia...SimplesCrocanteRegularAçúcarFrutaProcessoQualidadePrazerChatoNutritivo
01012555512154...3141135115
11012112215251...5512152113
21032154555355...1543125415
3103355535255...1142525515
41041445325254...1531135514
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SatisfazNaturalFibraDoceFácilSalGratificanteEnergiaDivertidoCrianças...SimplesCrocanteRegularAçúcarFrutaProcessoQualidadePrazerChatoNutritivo
05551215414...3141135115
11221525115...5512152113
25455535555...1543125415
35553525555...1142525515
44532525455...1531135514
..................................................................
2303441423324...4341134224
2315443434444...1443424414
2324441414434...3341123324
2333333423323...3232133223
2344441414324...2241124234
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FA1FA2FA3FA4
Satisfaz0.7059260.0881670.1982220.152237
Natural0.752800-0.2089110.0547400.036777
Fibra0.821203-0.116397-0.1208590.020583
Doce0.0689460.7017900.0719680.347628
Fácil0.2385640.0635760.3245550.065804
Sal-0.0918260.6856170.015718-0.083106
Gratificante0.6258960.0769870.4224150.172316
Energia0.6596840.0782100.1912430.210825
Divertido0.1634790.1765780.4150160.480073
Crianças-0.0243220.0350500.8507810.013842
Encharcado0.0331800.0146510.096186-0.480159
Econômico0.068874-0.2802650.416057-0.227187
Saúde0.828531-0.2882740.0511200.046116
Família0.062455-0.0545320.7606290.093225
Calorias-0.1136440.626649-0.0083720.120616
Simples-0.146444-0.0616500.071122-0.656386
Crocante0.0739320.1459850.3709880.437885
Regular0.613091-0.100074-0.0279490.088827
Açúcar-0.1838490.816649-0.0537630.165341
Fruta0.3761500.186503-0.2693750.441862
Processo-0.2360000.3739600.026508-0.125563
Qualidade0.646587-0.2447150.2036170.171207
Prazer0.2448840.2333650.3336320.603503
Chato-0.1647590.066893-0.223157-0.505794
Nutritivo0.831418-0.1769570.0507010.056027
\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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FA1FA2FA3FA4
Nutritivo0.831418-0.1769570.0507010.056027
Saúde0.828531-0.2882740.0511200.046116
Fibra0.821203-0.116397-0.1208590.020583
Natural0.752800-0.2089110.0547400.036777
Satisfaz0.7059260.0881670.1982220.152237
Energia0.6596840.0782100.1912430.210825
Qualidade0.646587-0.2447150.2036170.171207
Gratificante0.6258960.0769870.4224150.172316
Regular0.613091-0.100074-0.0279490.088827
Fruta0.3761500.186503-0.2693750.441862
\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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FA1FA2FA3FA4
Açúcar-0.1838490.816649-0.0537630.165341
Doce0.0689460.7017900.0719680.347628
Sal-0.0918260.6856170.015718-0.083106
Calorias-0.1136440.626649-0.0083720.120616
Processo-0.2360000.3739600.026508-0.125563
Prazer0.2448840.2333650.3336320.603503
Fruta0.3761500.186503-0.2693750.441862
Divertido0.1634790.1765780.4150160.480073
Crocante0.0739320.1459850.3709880.437885
Satisfaz0.7059260.0881670.1982220.152237
\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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FA1FA2FA3FA4
Crianças-0.0243220.0350500.8507810.013842
Família0.062455-0.0545320.7606290.093225
Gratificante0.6258960.0769870.4224150.172316
Econômico0.068874-0.2802650.416057-0.227187
Divertido0.1634790.1765780.4150160.480073
Crocante0.0739320.1459850.3709880.437885
Prazer0.2448840.2333650.3336320.603503
Fácil0.2385640.0635760.3245550.065804
Qualidade0.646587-0.2447150.2036170.171207
Satisfaz0.7059260.0881670.1982220.152237
\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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FA1FA2FA3FA4
Prazer0.2448840.2333650.3336320.603503
Divertido0.1634790.1765780.4150160.480073
Fruta0.3761500.186503-0.2693750.441862
Crocante0.0739320.1459850.3709880.437885
Doce0.0689460.7017900.0719680.347628
Energia0.6596840.0782100.1912430.210825
Gratificante0.6258960.0769870.4224150.172316
Qualidade0.646587-0.2447150.2036170.171207
Açúcar-0.1838490.816649-0.0537630.165341
Satisfaz0.7059260.0881670.1982220.152237
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
VoluntárioCerealSatisfazNaturalFibraDoceFácilSalGratificanteEnergia...FrutaProcessoQualidadePrazerChatoNutritivoFator1Fator2Fator3Fator4
01012555512154...1351151.511203-1.2278160.205665-1.623202
11012112215251...152113-2.071909-0.5884711.374526-1.162636
21032154555355...1254151.4730210.8127841.0887640.696806
3103355535255...5255151.647908-0.0570110.5036271.035769
41041445325254...1355140.414373-0.7980181.1620821.180994
..................................................................
2306372534414233...134224-0.049875-0.8520490.007291-1.038142
2316381754434344...4244140.5429710.801985-0.1845931.278528
2326382544414144...1233240.187454-0.898705-0.030857-0.212396
2336392133334233...133223-0.619609-0.234930-0.743400-0.332749
2346392544414143...1242340.165715-1.207375-0.043000-0.644129
\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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
VoluntárioCerealSatisfazNaturalFibraDoceFácilSalGratificanteEnergia...FrutaProcessoQualidadePrazerChatoNutritivoFator1Fator2Fator3Fator4
401212355555355...4445151.8007091.7729160.5948750.946000
1585092455545455...1331151.7856280.970817-0.017714-1.697611
31116154515255...1352451.701156-0.150973-1.156637-0.790033
782142455524155...1553351.667463-0.2668920.957614-1.141936
3103355535255...5255151.647908-0.0570110.5036271.035769
\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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
VoluntárioCerealSatisfazNaturalFibraDoceFácilSalGratificanteEnergia...FrutaProcessoQualidadePrazerChatoNutritivoFator1Fator2Fator3Fator4
842161631253434...151151-2.0047803.232060-1.070181-1.209752
191101734345453...3543130.1064732.658713-1.6628840.032212
12107344455444...3323230.0147552.311869-0.1175370.073186
2026231642254243...152421-1.8081492.1306140.9546890.653752
131071744455344...332323-0.0994132.0654210.2479170.163003
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
VoluntárioCerealSatisfazNaturalFibraDoceFácilSalGratificanteEnergia...FrutaProcessoQualidadePrazerChatoNutritivoFator1Fator2Fator3Fator4
141081444346464...2656240.4573862.0338672.3958620.620719
672081653335155...1355150.224355-0.9718511.6039501.525069
862171654345355...1455140.1420011.1391361.5723001.188624
61042144325155...1355140.343484-0.6135761.5686271.362000
161091932135242...114411-2.247778-0.4295221.5286480.937863
1646011453455354...1255140.4742181.1607961.5199260.706265
321161454325255...1455130.0914260.4286341.5186921.290257
51041944425254...1355140.232809-0.2980891.4293011.187791
11012112215251...152113-2.071909-0.5884711.374526-1.162636
1545071654415355...1435140.4426960.4333201.3465960.288051
391211445235253...133313-0.0543820.6959681.272317-1.409241
71052143325154...124213-0.377005-1.0607111.2461730.384114
91051443325154...124213-0.377005-1.0607111.2461730.384114
81051943325154...124213-0.377005-1.0607111.2461730.384114
1505051943335244...134414-0.4506160.4604111.2394920.627744
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", "
SatisfazNaturalFibraDoceFácilSalGratificanteEnergiaDivertidoCrianças...FrutaProcessoQualidadePrazerChatoNutritivoFator1Fator2Fator3Fator4
count12.00000012.00000012.00000012.012.00000012.00000012.00000012.00000012.00000012.000000...12.00000012.00000012.00000012.00000012.00000012.00000012.00000012.00000012.00000012.000000
mean4.2500004.1666674.1666672.54.7500001.7500004.4166674.3333333.2500003.333333...3.4166672.5833334.0000003.2500001.3333334.1666670.677950-0.304194-0.3285010.856943
std0.7537780.7177410.5773501.00.6215820.7537780.5149290.4923661.3568011.302678...0.6685580.7929610.6030231.2154310.6513390.3892490.5764990.9186730.8760710.468176
min3.0000003.0000003.0000001.03.0000001.0000004.0000004.0000001.0000001.000000...2.0000001.0000003.0000001.0000001.0000004.000000-0.271603-1.175071-1.690997-0.183898
25%4.0000004.0000004.0000002.05.0000001.0000004.0000004.0000002.0000002.750000...3.0000002.0000004.0000002.7500001.0000004.0000000.379106-0.987525-0.8389360.617901
50%4.0000004.0000004.0000002.05.0000002.0000004.0000004.0000003.0000003.000000...3.5000003.0000004.0000003.0000001.0000004.0000000.563984-0.534336-0.3648810.868307
75%5.0000005.0000004.2500003.05.0000002.0000005.0000005.0000004.2500004.250000...4.0000003.0000004.0000004.0000001.2500004.0000000.967569-0.0335620.2447181.201676
max5.0000005.0000005.0000005.05.0000003.0000005.0000005.0000005.0000005.000000...4.0000004.0000005.0000005.0000003.0000005.0000001.8007091.7729161.1947991.513775
\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", "
SatisfazNaturalFibraDoceFácilSalGratificanteEnergiaDivertidoCrianças...FrutaProcessoQualidadePrazerChatoNutritivoFator1Fator2Fator3Fator4
count24.00000024.00000024.00000024.00000024.0000024.00000024.00000024.00000024.00000024.000000...24.00000024.00000024.00000024.00000024.00000024.00000024.00000024.00000024.00000024.000000
mean4.0000003.1666673.0416673.2916674.500002.4166674.0000003.8333333.3750004.583333...1.0833333.3333333.2500003.3333331.7916673.333333-0.4252680.8112220.5478250.288638
std0.8340581.0495001.0417031.1220780.659380.9286110.8846520.9168311.2091140.829702...0.2823301.2394481.2247451.1293191.2150921.1293191.0109200.9581730.7702700.850119
min2.0000001.0000001.0000001.0000003.000001.0000002.0000002.0000001.0000002.000000...1.0000001.0000001.0000001.0000001.0000001.000000-2.255889-0.971851-1.574086-1.339032
25%4.0000002.7500002.0000002.0000004.000002.0000004.0000003.7500003.0000004.750000...1.0000002.0000003.0000003.0000001.0000003.000000-0.9295060.1795580.419480-0.251599
50%4.0000003.0000003.0000003.5000005.000002.0000004.0000004.0000003.0000005.000000...1.0000004.0000003.0000003.5000001.0000003.500000-0.3932240.9718150.7308210.489832
75%4.2500004.0000004.0000004.0000005.000003.0000005.0000004.0000004.0000005.000000...1.0000004.0000004.0000004.0000002.2500004.0000000.3161871.3502220.9558640.965475
max5.0000005.0000005.0000005.0000005.000004.0000005.0000005.0000005.0000005.000000...2.0000005.0000005.0000005.0000005.0000005.0000001.3286983.2320601.6039501.525069
\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 }