アイスクリーム統計学にようこそ! のページを読み進めながら、以下の課題を Python を使って解いてください。
本文を読んで概念を学んでください。また、 調査票を読んで、アンケート内容を把握してください。
__課題7.2__:アイスクリームアンケート調査結果をダウンロードして、次のコードを実行してください。
# URL によるリソースへのアクセスを提供するライブラリをインポートする。
import urllib # Python 2 の場合
# import urllib.request # Python 3 の場合
# ウェブ上のリソースを指定する
url = 'https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/icecream_chosa.txt'
# 指定したURLからリソースをダウンロードし、名前をつける。
urllib.urlretrieve(url, 'icecream_chosa.txt') # Python 2 の場合
# urllib.request.urlretrieve(url, 'icecream_chosa.txt') # Python 3 の場合
('icecream_chosa.txt', <httplib.HTTPMessage instance at 0x10411ae18>)
#最初の数レコードだけ確認する
!head icecream_chosa.txt
ID gender age birth_order frequency vanilla strawberry milk_tea macadamia_nuts cookie chocolate melon coffee almond rum_raisin mint banana caramel walnut cassis chocolate_chips orange green_tea marron chocolate_mint adzuki-bean 1 2 20 2 5 7 7 8 3 9 9 6 8 3 2 1 7 9 3 3 9 7 8 8 1 7 2 2 21 2 1 7 8 9 9 9 9 2 7 7 9 5 4 7 8 9 9 4 7 7 8 9 3 2 21 3 2 7 4 3 3 6 4 7 7 6 3 3 4 6 3 3 6 7 3 7 3 3 4 2 21 4 3 9 6 6 5 8 6 8 9 6 5 4 4 9 5 4 8 9 1 2 1 3 5 2 21 4 2 9 5 7 5 6 8 4 4 4 6 9 6 6 6 5 9 6 6 6 9 1 6 2 21 2 5 5 7 5 5 5 7 5 8 5 8 9 5 9 5 8 8 9 9 5 9 1 7 2 21 2 2 9 7 6 3 7 9 4 6 5 2 2 6 7 5 5 9 9 3 5 2 3 8 2 20 2 4 7 7 6 8 7 6 5 8 7 5 6 5 6 7 9 5 6 8 5 6 8 9 2 21 2 4 7 7 4 8 7 7 4 7 6 3 5 5 7 7 6 8 6 3 3 7 3
# バニラ、ストロベリーなどの変数間の関係を見るための「行列」 matrix に格納する。
# Pythonにおける「長さnのリスト(n個の要素が入ったリスト)」は、数学における「n次元の列ベクトル」と同じ意味。
# Pythonにおける「リストのリスト(長さnのリストがm個入ったもの)」は、数学における「m行n列の行列」と同じ意味。
# 変数の名前は val_names というリストに入れる
matrix = []
val_names = []
for i, line in enumerate(open("icecream_chosa.txt")):
if i == 0:
for j, val in enumerate(line.split()):
val_names.append(val)
matrix.append([])
else:
for j, val in enumerate(line.split()):
matrix[j].append(float(val))
import pandas as pd # データフレームワーク処理のライブラリをインポート
# # できあがったMatrixの中身を確認してください。
pd.DataFrame(matrix, index=val_names)
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ID | 1.0 | 2.0 | 3.0 | 4.0 | 5.0 | 6.0 | 7.0 | 8.0 | 9.0 | 10.0 | ... | 71.0 | 72.0 | 73.0 | 74.0 | 75.0 | 76.0 | 77.0 | 78.0 | 79.0 | 80.0 |
gender | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 | ... | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
age | 20.0 | 21.0 | 21.0 | 21.0 | 21.0 | 21.0 | 21.0 | 20.0 | 21.0 | 22.0 | ... | 22.0 | 24.0 | 20.0 | 20.0 | 21.0 | 20.0 | 20.0 | 23.0 | 23.0 | 22.0 |
birth_order | 2.0 | 2.0 | 3.0 | 4.0 | 4.0 | 2.0 | 2.0 | 2.0 | 2.0 | 4.0 | ... | 4.0 | 1.0 | 2.0 | 2.0 | 2.0 | 2.0 | 3.0 | 1.0 | 4.0 | 2.0 |
frequency | 5.0 | 1.0 | 2.0 | 3.0 | 2.0 | 5.0 | 2.0 | 4.0 | 4.0 | 4.0 | ... | 4.0 | 2.0 | 2.0 | 5.0 | 6.0 | 4.0 | 6.0 | 5.0 | 7.0 | 2.0 |
vanilla | 7.0 | 7.0 | 7.0 | 9.0 | 9.0 | 5.0 | 9.0 | 7.0 | 7.0 | 5.0 | ... | 7.0 | 6.0 | 6.0 | 8.0 | 4.0 | 5.0 | 7.0 | 4.0 | 9.0 | 8.0 |
strawberry | 7.0 | 8.0 | 4.0 | 6.0 | 5.0 | 7.0 | 7.0 | 7.0 | 7.0 | 5.0 | ... | 7.0 | 7.0 | 6.0 | 8.0 | 6.0 | 6.0 | 5.0 | 8.0 | 7.0 | 5.0 |
milk_tea | 8.0 | 9.0 | 3.0 | 6.0 | 7.0 | 5.0 | 6.0 | 6.0 | 4.0 | 9.0 | ... | 6.0 | 5.0 | 5.0 | 4.0 | 2.0 | 4.0 | 6.0 | 8.0 | 7.0 | 5.0 |
macadamia_nuts | 3.0 | 9.0 | 3.0 | 5.0 | 5.0 | 5.0 | 3.0 | 8.0 | 8.0 | 5.0 | ... | 6.0 | 6.0 | 8.0 | 8.0 | 3.0 | 9.0 | 6.0 | 9.0 | 5.0 | 2.0 |
cookie | 9.0 | 9.0 | 6.0 | 8.0 | 6.0 | 5.0 | 7.0 | 7.0 | 7.0 | 8.0 | ... | 8.0 | 4.0 | 8.0 | 9.0 | 6.0 | 6.0 | 8.0 | 9.0 | 4.0 | 5.0 |
chocolate | 9.0 | 9.0 | 4.0 | 6.0 | 8.0 | 7.0 | 9.0 | 6.0 | 7.0 | 8.0 | ... | 9.0 | 8.0 | 7.0 | 7.0 | 6.0 | 7.0 | 9.0 | 9.0 | 6.0 | 4.0 |
melon | 6.0 | 2.0 | 7.0 | 8.0 | 4.0 | 5.0 | 4.0 | 5.0 | 4.0 | 5.0 | ... | 6.0 | 8.0 | 3.0 | 3.0 | 8.0 | 4.0 | 4.0 | 4.0 | 7.0 | 7.0 |
coffee | 8.0 | 7.0 | 7.0 | 9.0 | 4.0 | 8.0 | 6.0 | 8.0 | 7.0 | 6.0 | ... | 5.0 | 7.0 | 6.0 | 6.0 | 5.0 | 3.0 | 4.0 | 8.0 | 7.0 | 1.0 |
almond | 3.0 | 7.0 | 6.0 | 6.0 | 4.0 | 5.0 | 5.0 | 7.0 | 6.0 | 3.0 | ... | 5.0 | 6.0 | 7.0 | 6.0 | 4.0 | 6.0 | 4.0 | 9.0 | 4.0 | 5.0 |
rum_raisin | 2.0 | 9.0 | 3.0 | 5.0 | 6.0 | 8.0 | 2.0 | 5.0 | 3.0 | 3.0 | ... | 5.0 | 8.0 | 7.0 | 3.0 | 2.0 | 5.0 | 5.0 | 1.0 | 5.0 | 5.0 |
mint | 1.0 | 5.0 | 3.0 | 4.0 | 9.0 | 9.0 | 2.0 | 6.0 | 5.0 | 3.0 | ... | 4.0 | 4.0 | 8.0 | 8.0 | 2.0 | 4.0 | 4.0 | 9.0 | 8.0 | 3.0 |
banana | 7.0 | 4.0 | 4.0 | 4.0 | 6.0 | 5.0 | 6.0 | 5.0 | 5.0 | 8.0 | ... | 5.0 | 4.0 | 6.0 | 5.0 | 3.0 | 5.0 | 3.0 | 6.0 | 9.0 | 4.0 |
caramel | 9.0 | 7.0 | 6.0 | 9.0 | 6.0 | 9.0 | 7.0 | 6.0 | 7.0 | 7.0 | ... | 7.0 | 2.0 | 7.0 | 4.0 | 2.0 | 5.0 | 9.0 | 8.0 | 7.0 | 5.0 |
walnut | 3.0 | 8.0 | 3.0 | 5.0 | 6.0 | 5.0 | 5.0 | 7.0 | 7.0 | 2.0 | ... | 5.0 | 6.0 | 8.0 | 8.0 | 3.0 | 5.0 | 5.0 | 9.0 | 4.0 | 5.0 |
cassis | 3.0 | 9.0 | 3.0 | 4.0 | 5.0 | 8.0 | 5.0 | 9.0 | 6.0 | 8.0 | ... | 5.0 | 8.0 | 7.0 | 8.0 | 2.0 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 |
chocolate_chips | 9.0 | 9.0 | 6.0 | 8.0 | 9.0 | 8.0 | 9.0 | 5.0 | 8.0 | 8.0 | ... | 9.0 | 4.0 | 8.0 | 9.0 | 6.0 | 7.0 | 9.0 | 9.0 | 8.0 | 5.0 |
orange | 7.0 | 4.0 | 7.0 | 9.0 | 6.0 | 9.0 | 9.0 | 6.0 | 6.0 | 6.0 | ... | 7.0 | 7.0 | 5.0 | 8.0 | 8.0 | 7.0 | 7.0 | 9.0 | 8.0 | 7.0 |
green_tea | 8.0 | 7.0 | 3.0 | 1.0 | 6.0 | 9.0 | 3.0 | 8.0 | 3.0 | 6.0 | ... | 3.0 | 8.0 | 8.0 | 9.0 | 1.0 | 4.0 | 6.0 | 9.0 | 5.0 | 1.0 |
marron | 8.0 | 7.0 | 7.0 | 2.0 | 6.0 | 5.0 | 5.0 | 5.0 | 3.0 | 2.0 | ... | 7.0 | 3.0 | 8.0 | 6.0 | 1.0 | 4.0 | 5.0 | 4.0 | 5.0 | 1.0 |
chocolate_mint | 1.0 | 8.0 | 3.0 | 1.0 | 9.0 | 9.0 | 2.0 | 6.0 | 7.0 | 1.0 | ... | 6.0 | 2.0 | 8.0 | 9.0 | 2.0 | 4.0 | 6.0 | 9.0 | 8.0 | 5.0 |
adzuki-bean | 7.0 | 9.0 | 3.0 | 3.0 | 1.0 | 1.0 | 3.0 | 8.0 | 3.0 | 1.0 | ... | 8.0 | 6.0 | 7.0 | 4.0 | 2.0 | 4.0 | 7.0 | 9.0 | 4.0 | 5.0 |
26 rows × 80 columns
# バニラ、ストロベリーなどアイスクリームの種類に関するデータは5行目以降なので、Matrixを作り直してください。
matrix = []
val_names = []
sta = 5
for i, line in enumerate(open("icecream_chosa.txt")):
# できあがったMatrixの中身を確認してください。
本文を読んで概念を学んでください。
# 平均値を求める関数
def average(list):
# 分散を求める関数
def variance(list):
# 標準偏差を求める関数
def standard_deviation(list):
# 共分散を求める関数
def covariance(list1, list2):
# 相関係数を求める関数
def correlation(list1, list2):
# 相関行列を作る関数
def correlation_matrix(matrix):
# 相関行列を計算し表示する
cormat = correlation_matrix(matrix)
pd.DataFrame(cormat)
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1.000000 | 0.028515 | 0.078549 | -0.113384 | 0.054911 | -0.110206 | -0.112804 | 0.058322 | -0.261641 | 0.103779 | ... | 0.006796 | -0.097745 | -0.173749 | -0.157352 | 0.021834 | -0.010688 | 0.015440 | 0.132379 | -0.211786 | 0.049856 |
1 | 0.028515 | 1.000000 | 0.207248 | 0.105375 | 0.035743 | 0.208958 | 0.295756 | -0.017244 | 0.120569 | 0.060223 | ... | 0.229944 | 0.142929 | 0.155927 | 0.149930 | 0.155422 | 0.170910 | 0.169990 | 0.124279 | -0.013666 | 0.213412 |
2 | 0.078549 | 0.207248 | 1.000000 | 0.341617 | 0.228646 | 0.055995 | 0.069048 | 0.358647 | 0.076171 | 0.128701 | ... | 0.401104 | 0.414177 | 0.197385 | 0.334752 | 0.106697 | 0.090938 | 0.285318 | 0.285782 | -0.019108 | 0.218824 |
3 | -0.113384 | 0.105375 | 0.341617 | 1.000000 | 0.343731 | 0.197442 | -0.093036 | 0.230645 | 0.438363 | 0.193574 | ... | 0.079780 | 0.201508 | 0.647312 | 0.302949 | 0.079059 | -0.056018 | 0.310694 | 0.291890 | 0.114404 | 0.311802 |
4 | 0.054911 | 0.035743 | 0.228646 | 0.343731 | 1.000000 | 0.259470 | -0.016390 | 0.276814 | 0.363010 | -0.028334 | ... | 0.234514 | 0.247667 | 0.281714 | 0.094633 | 0.442330 | -0.074943 | 0.016897 | 0.246303 | -0.156397 | 0.248015 |
5 | -0.110206 | 0.208958 | 0.055995 | 0.197442 | 0.259470 | 1.000000 | 0.210929 | 0.203535 | 0.230101 | -0.148296 | ... | 0.242511 | 0.295318 | 0.209069 | 0.099631 | 0.661099 | 0.123757 | 0.047984 | 0.109969 | 0.191060 | 0.209861 |
6 | -0.112804 | 0.295756 | 0.069048 | -0.093036 | -0.016390 | 0.210929 | 1.000000 | 0.193373 | -0.018380 | -0.138505 | ... | 0.241593 | 0.133873 | 0.032196 | 0.058476 | 0.106230 | 0.197470 | -0.158637 | -0.079930 | -0.109765 | 0.030297 |
7 | 0.058322 | -0.017244 | 0.358647 | 0.230645 | 0.276814 | 0.203535 | 0.193373 | 1.000000 | 0.259505 | 0.009779 | ... | 0.288617 | 0.283974 | 0.100008 | 0.312881 | 0.242711 | 0.213161 | 0.237421 | 0.157815 | 0.001101 | 0.057754 |
8 | -0.261641 | 0.120569 | 0.076171 | 0.438363 | 0.363010 | 0.230101 | -0.018380 | 0.259505 | 1.000000 | 0.141709 | ... | 0.086892 | 0.308005 | 0.546367 | 0.154778 | 0.277636 | 0.036828 | 0.078271 | 0.074451 | 0.155004 | 0.217668 |
9 | 0.103779 | 0.060223 | 0.128701 | 0.193574 | -0.028334 | -0.148296 | -0.138505 | 0.009779 | 0.141709 | 1.000000 | ... | -0.059180 | 0.047346 | 0.081568 | 0.100993 | -0.040930 | -0.190443 | 0.219083 | 0.122659 | 0.147367 | 0.012173 |
10 | -0.236248 | 0.029736 | 0.048861 | 0.116515 | -0.258632 | 0.123174 | -0.037718 | 0.081165 | 0.177390 | 0.126706 | ... | 0.111364 | 0.130338 | 0.145211 | 0.123642 | 0.160271 | 0.020442 | 0.205284 | 0.076743 | 0.833957 | -0.095770 |
11 | 0.006796 | 0.229944 | 0.401104 | 0.079780 | 0.234514 | 0.242511 | 0.241593 | 0.288617 | 0.086892 | -0.059180 | ... | 1.000000 | 0.433279 | 0.128464 | 0.241141 | 0.325065 | -0.017298 | 0.089488 | 0.383984 | 0.072743 | 0.198064 |
12 | -0.097745 | 0.142929 | 0.414177 | 0.201508 | 0.247667 | 0.295318 | 0.133873 | 0.283974 | 0.308005 | 0.047346 | ... | 0.433279 | 1.000000 | 0.289593 | 0.213386 | 0.342706 | 0.176749 | 0.048373 | 0.458127 | 0.137117 | 0.339599 |
13 | -0.173749 | 0.155927 | 0.197385 | 0.647312 | 0.281714 | 0.209069 | 0.032196 | 0.100008 | 0.546367 | 0.081568 | ... | 0.128464 | 0.289593 | 1.000000 | 0.351503 | 0.128733 | 0.080530 | 0.282190 | 0.269376 | 0.252747 | 0.330305 |
14 | -0.157352 | 0.149930 | 0.334752 | 0.302949 | 0.094633 | 0.099631 | 0.058476 | 0.312881 | 0.154778 | 0.100993 | ... | 0.241141 | 0.213386 | 0.351503 | 1.000000 | 0.123230 | 0.115750 | 0.250157 | 0.204307 | 0.177092 | 0.218333 |
15 | 0.021834 | 0.155422 | 0.106697 | 0.079059 | 0.442330 | 0.661099 | 0.106230 | 0.242711 | 0.277636 | -0.040930 | ... | 0.325065 | 0.342706 | 0.128733 | 0.123230 | 1.000000 | 0.142654 | -0.020819 | 0.097843 | 0.264442 | 0.118129 |
16 | -0.010688 | 0.170910 | 0.090938 | -0.056018 | -0.074943 | 0.123757 | 0.197470 | 0.213161 | 0.036828 | -0.190443 | ... | -0.017298 | 0.176749 | 0.080530 | 0.115750 | 0.142654 | 1.000000 | 0.070940 | -0.053342 | 0.017846 | -0.039698 |
17 | 0.015440 | 0.169990 | 0.285318 | 0.310694 | 0.016897 | 0.047984 | -0.158637 | 0.237421 | 0.078271 | 0.219083 | ... | 0.089488 | 0.048373 | 0.282190 | 0.250157 | -0.020819 | 0.070940 | 1.000000 | 0.385409 | 0.214660 | 0.348820 |
18 | 0.132379 | 0.124279 | 0.285782 | 0.291890 | 0.246303 | 0.109969 | -0.079930 | 0.157815 | 0.074451 | 0.122659 | ... | 0.383984 | 0.458127 | 0.269376 | 0.204307 | 0.097843 | -0.053342 | 0.385409 | 1.000000 | 0.157897 | 0.509220 |
19 | -0.211786 | -0.013666 | -0.019108 | 0.114404 | -0.156397 | 0.191060 | -0.109765 | 0.001101 | 0.155004 | 0.147367 | ... | 0.072743 | 0.137117 | 0.252747 | 0.177092 | 0.264442 | 0.017846 | 0.214660 | 0.157897 | 1.000000 | 0.023781 |
20 | 0.049856 | 0.213412 | 0.218824 | 0.311802 | 0.248015 | 0.209861 | 0.030297 | 0.057754 | 0.217668 | 0.012173 | ... | 0.198064 | 0.339599 | 0.330305 | 0.218333 | 0.118129 | -0.039698 | 0.348820 | 0.509220 | 0.023781 | 1.000000 |
21 rows × 21 columns
# 図やグラフを図示するためのライブラリをインポートする。
import matplotlib.pyplot as plt
%matplotlib inline
# 得られた相関行列をカラーマップで表示する。
import matplotlib.ticker as ticker
plt.pcolor(cormat, cmap=plt.cm.Blues)
plt.colorbar()
plt.gca().get_xaxis().set_major_locator(ticker.MaxNLocator(integer=True))
plt.gca().get_yaxis().set_major_locator(ticker.MaxNLocator(integer=True))
plt.xlim([0, len(cormat)])
plt.ylim([0, len(cormat)])
plt.show()
__課題7.6__:アイスクリームアンケート調査結果のデータを用い、以下の問いに答えてください。
# リストの正規化をする(Z値に変換する)関数
def normalize(data):
# リストのリストの正規化をする(Z値に変換する)関数
def normalize2(data):
list = []
for x in data:
list.append(normalize(x))
return list
__課題8.6__:因子分析を行う以下のコードを実行してください。
# 図やグラフを図示するためのライブラリをインポートする。
import matplotlib.pyplot as plt
%matplotlib inline
# 機械学習のライブラリから、因子分析のプログラムをインポート
from sklearn.decomposition import FactorAnalysis
# 因子分析の実行
fa = FactorAnalysis()
factors = fa.fit_transform(normalize2(matrix))
# 左から順に第一因子、第二因子、、、
pd.DataFrame(factors, index=val_names)
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
vanilla | -1.268569 | -0.010424 | 2.318349 | -1.735447 | -1.382064 | -0.570599 | 0.043304 | 1.511889 | -0.791865 | 0.436107 | ... | -1.055257 | 1.253882 | 0.161477 | -0.764865 | -0.873683 | -0.220023 | 0.611576 | 0.083070 | 0.236653 | 0.0 |
strawberry | -0.362126 | 0.514187 | 0.828758 | 0.426349 | -0.025311 | 2.404494 | -0.876892 | -1.471251 | -1.200159 | -1.630133 | ... | -0.141087 | 0.766327 | 1.667694 | 0.562325 | -0.354102 | 0.694906 | -0.089582 | -0.932507 | 0.166717 | 0.0 |
milk_tea | -0.779537 | -0.468727 | 0.444315 | 1.064407 | 0.688036 | -0.497059 | 1.139735 | -0.838651 | -2.017942 | -0.732853 | ... | 0.620420 | 0.552054 | -1.535757 | 0.319772 | -0.017558 | -1.123373 | -1.692677 | 0.412158 | 0.103314 | 0.0 |
macadamia_nuts | 0.311445 | -1.707769 | -0.817274 | 0.556034 | -0.726757 | -0.206691 | 0.128000 | 0.437522 | -0.584647 | -0.277903 | ... | 0.306305 | -0.170283 | 1.760713 | -0.091957 | 1.472463 | 1.285529 | 1.478071 | 0.876822 | 0.710690 | 0.0 |
cookie | -1.458831 | -0.541890 | -1.499313 | -1.012749 | -0.970025 | -0.217802 | 0.046312 | 0.042097 | 0.123070 | -0.748735 | ... | -0.932264 | -1.312443 | -0.615876 | 2.710530 | -0.165078 | -0.890660 | 0.740134 | -0.963135 | -0.323201 | 0.0 |
chocolate | -0.024004 | 1.132431 | -1.190455 | -1.116673 | 0.047021 | -0.392829 | -1.139540 | -1.087155 | 0.334334 | 0.564087 | ... | 1.118716 | 0.250017 | 0.734378 | -1.603384 | 0.098381 | -1.807891 | 0.297841 | -1.776110 | 0.191992 | 0.0 |
melon | -0.756543 | 1.807738 | 0.328962 | 1.286306 | -0.179994 | 1.727251 | 0.311477 | 1.155671 | 2.276051 | -0.372793 | ... | 0.155506 | -0.528329 | -0.471845 | 0.102185 | -0.714128 | -0.071846 | 0.151355 | 0.855306 | 0.350534 | 0.0 |
coffee | -0.648979 | 0.384299 | -0.061586 | 1.070261 | -0.617858 | -2.339395 | 1.278930 | -0.390519 | 1.665691 | -0.372049 | ... | 0.285845 | 1.298504 | 1.175483 | 0.370414 | -0.071359 | 1.163895 | -1.140516 | -1.129070 | 0.017762 | 0.0 |
almond | 0.550480 | -0.495058 | -1.684024 | 0.228919 | -1.399948 | 0.656078 | 0.592646 | 0.189591 | 0.259340 | -1.010834 | ... | -0.328161 | 1.373537 | -0.468381 | -1.293856 | 0.259451 | -1.615691 | -0.030436 | 1.522342 | 0.724886 | 0.0 |
rum_raisin | 0.758196 | -0.874934 | 1.325704 | -0.696747 | -1.694727 | 1.315742 | 1.577272 | -1.163327 | 0.606388 | 1.541298 | ... | 1.407346 | -1.161449 | -0.504667 | 0.011647 | 0.902407 | 0.098465 | -0.495305 | -0.498085 | -0.381438 | 0.0 |
mint | 2.475583 | 0.859536 | 0.378847 | -0.319773 | 0.466233 | -0.320964 | 0.773151 | 0.393056 | -0.076465 | -0.841273 | ... | -0.483645 | 0.695011 | 0.245291 | 0.672047 | 0.181762 | -0.547809 | 0.831097 | 0.141547 | -2.933925 | 0.0 |
banana | -0.786982 | 0.541323 | -0.029725 | -0.167910 | 1.884516 | 0.144592 | 1.804551 | -0.182355 | -0.200982 | -0.191326 | ... | -1.943758 | -1.264642 | -0.229517 | -1.701019 | 1.434517 | 0.439941 | 0.682724 | -0.763381 | 0.319720 | 0.0 |
caramel | -0.416261 | 0.307764 | -0.745029 | -0.023985 | 1.369855 | 0.119922 | 1.009636 | 0.779210 | -0.950273 | 0.988364 | ... | 2.396436 | 0.570968 | -0.323404 | 0.456950 | -1.432679 | 0.629128 | 1.880440 | 0.044279 | 0.263840 | 0.0 |
walnut | 0.654143 | -1.271467 | -1.070062 | 0.780755 | -0.384990 | 0.521873 | -0.584456 | 1.621193 | -0.567737 | 0.168249 | ... | -0.460775 | -0.857318 | -0.409739 | -1.346983 | -1.724783 | 1.025217 | -1.389702 | -1.592031 | -1.014018 | 0.0 |
cassis | 0.175942 | -0.437288 | 0.027866 | 1.769319 | 0.398931 | 0.032984 | -0.568923 | -1.076611 | 0.042224 | 2.937834 | ... | -1.879992 | 0.492859 | 0.572092 | 0.716653 | -0.667108 | -0.931865 | 0.438111 | 0.482704 | -0.006378 | 0.0 |
chocolate_chips | -0.226368 | 1.397066 | -1.208100 | -1.645448 | -0.312818 | -0.345273 | -0.420425 | -1.341062 | -0.483876 | 0.561314 | ... | -0.389309 | -0.455137 | -0.152339 | -0.173965 | -0.594393 | 1.955030 | -1.134501 | 2.207914 | -0.551312 | 0.0 |
orange | -0.163043 | 1.603867 | 0.601673 | 1.508254 | -0.964408 | -1.057155 | -1.711324 | 1.006225 | -1.237434 | 0.208638 | ... | 0.741975 | -1.285698 | -0.376003 | 0.006271 | 1.785554 | -0.198888 | 0.046666 | 0.183563 | -0.278720 | 0.0 |
green_tea | 0.571728 | -1.175587 | 1.308713 | 0.306476 | 0.342418 | -1.306810 | -1.144870 | -1.585395 | 1.014943 | -1.466980 | ... | 0.223698 | -1.185572 | -1.006683 | -0.777827 | -1.459262 | 0.123885 | 1.382154 | 0.542276 | 0.366592 | 0.0 |
marron | -0.417869 | -1.075406 | 0.532979 | -0.914445 | 1.786432 | -0.044534 | -0.374487 | 1.070083 | 0.676474 | -0.098205 | ... | 0.717336 | -1.056936 | 2.097705 | 0.316135 | 0.056157 | -1.317938 | -1.652146 | 1.211806 | -0.207068 | 0.0 |
chocolate_mint | 2.479726 | 0.615435 | 0.196853 | -0.823584 | 0.517045 | -0.232910 | -0.176752 | 0.699204 | -0.097836 | 0.052221 | ... | -0.526064 | 0.089772 | -0.546567 | 1.250871 | 0.076260 | 0.314771 | -0.771863 | -0.646678 | 2.935754 | 0.0 |
adzuki-bean | -0.668130 | -1.105096 | 0.012550 | -0.540319 | 1.158416 | 0.609084 | -1.707344 | 0.230584 | 1.210701 | 0.284971 | ... | 0.166729 | 1.934876 | -1.774055 | 0.258055 | 1.807181 | 0.995216 | -0.143440 | -0.262790 | -0.692393 | 0.0 |
21 rows × 21 columns
# 第一因子と第二因子でプロットする
plt.figure(figsize=(8, 8))
for x, y, name in zip(factors[:, 0], factors[:, 1], val_names):
plt.text(x, y, name, alpha=0.8, size=10)
plt.scatter(factors[:, 0], factors[:, 1], alpha=0.8)
plt.title("Factor Analysis")
plt.xlabel("The first factor score")
plt.ylabel("The second factor score")
plt.grid(True)
plt.show()
__課題8.7__:上と同様にして、第三因子と第四因子でプロットしてください。また、以上の結果から、アイスクリームの味の好みについて何が言えそうか考察してください。
__課題9.3__:アイスクリームアンケート調査結果をダウンロードして、先ほどの matrix と縦横を入れ替えた matrixTを作成してください。
# 縦横入れ替えた matrixT を作成
matrixT = []
val_names = []
ids = []
sta = 5
for i, line in enumerate(open("icecream_chosa.txt")):
if i == 0:
for j, val in enumerate(line.split()):
val_names.append(val)
else:
vec = []
for j, val in enumerate(line.split()):
if j == 0:
ids.append(val)
vec.append(float(val))
matrixT.append(vec)
# できあがったMatrixTの中身の確認
pd.DataFrame(matrixT, columns=val_names)
ID | gender | age | birth_order | frequency | vanilla | strawberry | milk_tea | macadamia_nuts | cookie | ... | banana | caramel | walnut | cassis | chocolate_chips | orange | green_tea | marron | chocolate_mint | adzuki-bean | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1.0 | 2.0 | 20.0 | 2.0 | 5.0 | 7.0 | 7.0 | 8.0 | 3.0 | 9.0 | ... | 7.0 | 9.0 | 3.0 | 3.0 | 9.0 | 7.0 | 8.0 | 8.0 | 1.0 | 7.0 |
1 | 2.0 | 2.0 | 21.0 | 2.0 | 1.0 | 7.0 | 8.0 | 9.0 | 9.0 | 9.0 | ... | 4.0 | 7.0 | 8.0 | 9.0 | 9.0 | 4.0 | 7.0 | 7.0 | 8.0 | 9.0 |
2 | 3.0 | 2.0 | 21.0 | 3.0 | 2.0 | 7.0 | 4.0 | 3.0 | 3.0 | 6.0 | ... | 4.0 | 6.0 | 3.0 | 3.0 | 6.0 | 7.0 | 3.0 | 7.0 | 3.0 | 3.0 |
3 | 4.0 | 2.0 | 21.0 | 4.0 | 3.0 | 9.0 | 6.0 | 6.0 | 5.0 | 8.0 | ... | 4.0 | 9.0 | 5.0 | 4.0 | 8.0 | 9.0 | 1.0 | 2.0 | 1.0 | 3.0 |
4 | 5.0 | 2.0 | 21.0 | 4.0 | 2.0 | 9.0 | 5.0 | 7.0 | 5.0 | 6.0 | ... | 6.0 | 6.0 | 6.0 | 5.0 | 9.0 | 6.0 | 6.0 | 6.0 | 9.0 | 1.0 |
5 | 6.0 | 2.0 | 21.0 | 2.0 | 5.0 | 5.0 | 7.0 | 5.0 | 5.0 | 5.0 | ... | 5.0 | 9.0 | 5.0 | 8.0 | 8.0 | 9.0 | 9.0 | 5.0 | 9.0 | 1.0 |
6 | 7.0 | 2.0 | 21.0 | 2.0 | 2.0 | 9.0 | 7.0 | 6.0 | 3.0 | 7.0 | ... | 6.0 | 7.0 | 5.0 | 5.0 | 9.0 | 9.0 | 3.0 | 5.0 | 2.0 | 3.0 |
7 | 8.0 | 2.0 | 20.0 | 2.0 | 4.0 | 7.0 | 7.0 | 6.0 | 8.0 | 7.0 | ... | 5.0 | 6.0 | 7.0 | 9.0 | 5.0 | 6.0 | 8.0 | 5.0 | 6.0 | 8.0 |
8 | 9.0 | 2.0 | 21.0 | 2.0 | 4.0 | 7.0 | 7.0 | 4.0 | 8.0 | 7.0 | ... | 5.0 | 7.0 | 7.0 | 6.0 | 8.0 | 6.0 | 3.0 | 3.0 | 7.0 | 3.0 |
9 | 10.0 | 2.0 | 22.0 | 4.0 | 4.0 | 5.0 | 5.0 | 9.0 | 5.0 | 8.0 | ... | 8.0 | 7.0 | 2.0 | 8.0 | 8.0 | 6.0 | 6.0 | 2.0 | 1.0 | 1.0 |
10 | 11.0 | 2.0 | 22.0 | 2.0 | 3.0 | 8.0 | 1.0 | 8.0 | 9.0 | 7.0 | ... | 4.0 | 9.0 | 7.0 | 6.0 | 6.0 | 7.0 | 8.0 | 6.0 | 4.0 | 5.0 |
11 | 12.0 | 2.0 | 21.0 | 4.0 | 3.0 | 9.0 | 4.0 | 7.0 | 5.0 | 8.0 | ... | 4.0 | 4.0 | 5.0 | 8.0 | 9.0 | 5.0 | 6.0 | 4.0 | 9.0 | 7.0 |
12 | 13.0 | 2.0 | 21.0 | 4.0 | 4.0 | 7.0 | 7.0 | 6.0 | 8.0 | 8.0 | ... | 5.0 | 9.0 | 7.0 | 5.0 | 9.0 | 7.0 | 7.0 | 6.0 | 8.0 | 8.0 |
13 | 14.0 | 2.0 | 20.0 | 4.0 | 2.0 | 9.0 | 6.0 | 4.0 | 6.0 | 9.0 | ... | 6.0 | 7.0 | 8.0 | 4.0 | 9.0 | 9.0 | 8.0 | 9.0 | 7.0 | 8.0 |
14 | 15.0 | 2.0 | 20.0 | 2.0 | 4.0 | 8.0 | 7.0 | 5.0 | 5.0 | 5.0 | ... | 4.0 | 4.0 | 6.0 | 5.0 | 8.0 | 6.0 | 9.0 | 4.0 | 9.0 | 5.0 |
15 | 16.0 | 2.0 | 21.0 | 4.0 | 2.0 | 7.0 | 4.0 | 7.0 | 4.0 | 7.0 | ... | 6.0 | 6.0 | 6.0 | 6.0 | 4.0 | 6.0 | 8.0 | 5.0 | 7.0 | 7.0 |
16 | 17.0 | 2.0 | 20.0 | 2.0 | 2.0 | 6.0 | 4.0 | 2.0 | 2.0 | 7.0 | ... | 4.0 | 6.0 | 6.0 | 5.0 | 7.0 | 5.0 | 9.0 | 6.0 | 9.0 | 6.0 |
17 | 18.0 | 2.0 | 20.0 | 3.0 | 2.0 | 8.0 | 7.0 | 5.0 | 5.0 | 6.0 | ... | 3.0 | 5.0 | 4.0 | 5.0 | 7.0 | 9.0 | 8.0 | 4.0 | 9.0 | 4.0 |
18 | 19.0 | 2.0 | 21.0 | 4.0 | 6.0 | 5.0 | 9.0 | 8.0 | 5.0 | 7.0 | ... | 6.0 | 6.0 | 7.0 | 7.0 | 8.0 | 7.0 | 9.0 | 5.0 | 8.0 | 5.0 |
19 | 20.0 | 2.0 | 20.0 | 4.0 | 2.0 | 6.0 | 6.0 | 6.0 | 8.0 | 8.0 | ... | 5.0 | 7.0 | 7.0 | 7.0 | 7.0 | 6.0 | 7.0 | 7.0 | 8.0 | 8.0 |
20 | 21.0 | 2.0 | 21.0 | 4.0 | 3.0 | 9.0 | 9.0 | 6.0 | 6.0 | 8.0 | ... | 7.0 | 6.0 | 5.0 | 9.0 | 9.0 | 9.0 | 9.0 | 7.0 | 4.0 | 8.0 |
21 | 22.0 | 2.0 | 21.0 | 1.0 | 4.0 | 7.0 | 9.0 | 9.0 | 7.0 | 9.0 | ... | 8.0 | 8.0 | 8.0 | 5.0 | 8.0 | 6.0 | 7.0 | 8.0 | 4.0 | 8.0 |
22 | 23.0 | 2.0 | 21.0 | 2.0 | 4.0 | 8.0 | 8.0 | 9.0 | 8.0 | 8.0 | ... | 5.0 | 8.0 | 8.0 | 4.0 | 9.0 | 8.0 | 9.0 | 5.0 | 5.0 | 8.0 |
23 | 24.0 | 2.0 | 20.0 | 4.0 | 4.0 | 7.0 | 7.0 | 6.0 | 5.0 | 4.0 | ... | 9.0 | 9.0 | 3.0 | 7.0 | 7.0 | 3.0 | 5.0 | 9.0 | 9.0 | 9.0 |
24 | 25.0 | 2.0 | 20.0 | 1.0 | 3.0 | 7.0 | 6.0 | 7.0 | 9.0 | 9.0 | ... | 6.0 | 8.0 | 8.0 | 5.0 | 8.0 | 4.0 | 8.0 | 9.0 | 3.0 | 9.0 |
25 | 26.0 | 2.0 | 21.0 | 4.0 | 4.0 | 7.0 | 5.0 | 8.0 | 7.0 | 9.0 | ... | 5.0 | 4.0 | 4.0 | 8.0 | 9.0 | 8.0 | 8.0 | 6.0 | 1.0 | 7.0 |
26 | 27.0 | 2.0 | 20.0 | 2.0 | 5.0 | 7.0 | 9.0 | 7.0 | 7.0 | 8.0 | ... | 2.0 | 8.0 | 8.0 | 9.0 | 8.0 | 9.0 | 6.0 | 3.0 | 1.0 | 7.0 |
27 | 28.0 | 2.0 | 21.0 | 2.0 | 4.0 | 7.0 | 6.0 | 1.0 | 7.0 | 8.0 | ... | 3.0 | 6.0 | 6.0 | 4.0 | 8.0 | 4.0 | 8.0 | 7.0 | 8.0 | 7.0 |
28 | 29.0 | 2.0 | 21.0 | 3.0 | 4.0 | 6.0 | 7.0 | 7.0 | 8.0 | 8.0 | ... | 5.0 | 9.0 | 8.0 | 7.0 | 9.0 | 7.0 | 7.0 | 5.0 | 5.0 | 3.0 |
29 | 30.0 | 2.0 | 21.0 | 4.0 | 4.0 | 7.0 | 7.0 | 7.0 | 7.0 | 9.0 | ... | 9.0 | 9.0 | 5.0 | 5.0 | 9.0 | 6.0 | 9.0 | 7.0 | 9.0 | 6.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
50 | 51.0 | 1.0 | 19.0 | 2.0 | 6.0 | 7.0 | 8.0 | 6.0 | 3.0 | 5.0 | ... | 4.0 | 5.0 | 2.0 | 3.0 | 8.0 | 5.0 | 8.0 | 3.0 | 8.0 | 2.0 |
51 | 52.0 | 1.0 | 21.0 | 1.0 | 2.0 | 9.0 | 4.0 | 5.0 | 3.0 | 7.0 | ... | 8.0 | 6.0 | 2.0 | 4.0 | 9.0 | 8.0 | 7.0 | 5.0 | 5.0 | 9.0 |
52 | 53.0 | 1.0 | 20.0 | 1.0 | 5.0 | 9.0 | 8.0 | 7.0 | 6.0 | 9.0 | ... | 7.0 | 9.0 | 7.0 | 6.0 | 9.0 | 5.0 | 3.0 | 9.0 | 1.0 | 9.0 |
53 | 54.0 | 1.0 | 21.0 | 4.0 | 5.0 | 8.0 | 8.0 | 7.0 | 5.0 | 7.0 | ... | 5.0 | 4.0 | 4.0 | 4.0 | 7.0 | 6.0 | 3.0 | 4.0 | 6.0 | 5.0 |
54 | 55.0 | 1.0 | 19.0 | 4.0 | 4.0 | 7.0 | 7.0 | 8.0 | 7.0 | 6.0 | ... | 5.0 | 6.0 | 5.0 | 9.0 | 9.0 | 7.0 | 9.0 | 7.0 | 8.0 | 9.0 |
55 | 56.0 | 1.0 | 20.0 | 2.0 | 2.0 | 5.0 | 7.0 | 5.0 | 5.0 | 5.0 | ... | 4.0 | 6.0 | 5.0 | 5.0 | 9.0 | 9.0 | 8.0 | 5.0 | 9.0 | 8.0 |
56 | 57.0 | 1.0 | 22.0 | 1.0 | 3.0 | 9.0 | 9.0 | 9.0 | 9.0 | 9.0 | ... | 7.0 | 8.0 | 6.0 | 6.0 | 8.0 | 7.0 | 9.0 | 7.0 | 1.0 | 9.0 |
57 | 58.0 | 1.0 | 19.0 | 1.0 | 3.0 | 9.0 | 3.0 | 5.0 | 7.0 | 6.0 | ... | 5.0 | 1.0 | 6.0 | 3.0 | 8.0 | 2.0 | 7.0 | 1.0 | 1.0 | 3.0 |
58 | 59.0 | 1.0 | 20.0 | 2.0 | 3.0 | 7.0 | 7.0 | 7.0 | 4.0 | 6.0 | ... | 7.0 | 8.0 | 3.0 | 6.0 | 7.0 | 7.0 | 8.0 | 6.0 | 3.0 | 6.0 |
59 | 60.0 | 1.0 | 20.0 | 4.0 | 8.0 | 7.0 | 8.0 | 8.0 | 5.0 | 7.0 | ... | 5.0 | 6.0 | 4.0 | 5.0 | 5.0 | 8.0 | 7.0 | 6.0 | 5.0 | 6.0 |
60 | 61.0 | 1.0 | 18.0 | 2.0 | 4.0 | 6.0 | 4.0 | 3.0 | 5.0 | 9.0 | ... | 3.0 | 4.0 | 3.0 | 5.0 | 8.0 | 5.0 | 1.0 | 3.0 | 5.0 | 1.0 |
61 | 62.0 | 1.0 | 25.0 | 2.0 | 3.0 | 7.0 | 8.0 | 6.0 | 5.0 | 9.0 | ... | 7.0 | 5.0 | 5.0 | 5.0 | 9.0 | 7.0 | 6.0 | 6.0 | 4.0 | 5.0 |
62 | 63.0 | 1.0 | 19.0 | 2.0 | 2.0 | 6.0 | 6.0 | 7.0 | 7.0 | 7.0 | ... | 6.0 | 8.0 | 7.0 | 5.0 | 9.0 | 5.0 | 6.0 | 6.0 | 8.0 | 5.0 |
63 | 64.0 | 1.0 | 21.0 | 2.0 | 4.0 | 8.0 | 7.0 | 9.0 | 6.0 | 9.0 | ... | 8.0 | 4.0 | 5.0 | 9.0 | 9.0 | 3.0 | 6.0 | 5.0 | 9.0 | 1.0 |
64 | 65.0 | 1.0 | 21.0 | 2.0 | 6.0 | 7.0 | 8.0 | 5.0 | 4.0 | 6.0 | ... | 4.0 | 7.0 | 7.0 | 5.0 | 6.0 | 4.0 | 8.0 | 5.0 | 4.0 | 6.0 |
65 | 66.0 | 1.0 | 20.0 | 2.0 | 1.0 | 7.0 | 7.0 | 7.0 | 7.0 | 8.0 | ... | 7.0 | 4.0 | 6.0 | 5.0 | 7.0 | 7.0 | 9.0 | 5.0 | 5.0 | 6.0 |
66 | 67.0 | 1.0 | 22.0 | 2.0 | 5.0 | 7.0 | 7.0 | 5.0 | 4.0 | 8.0 | ... | 5.0 | 3.0 | 3.0 | 4.0 | 8.0 | 7.0 | 8.0 | 5.0 | 3.0 | 4.0 |
67 | 68.0 | 1.0 | 21.0 | 2.0 | 5.0 | 5.0 | 5.0 | 6.0 | 7.0 | 7.0 | ... | 5.0 | 5.0 | 9.0 | 6.0 | 9.0 | 6.0 | 9.0 | 7.0 | 8.0 | 5.0 |
68 | 69.0 | 1.0 | 21.0 | 3.0 | 1.0 | 8.0 | 7.0 | 5.0 | 5.0 | 7.0 | ... | 6.0 | 5.0 | 4.0 | 5.0 | 7.0 | 8.0 | 5.0 | 5.0 | 5.0 | 5.0 |
69 | 70.0 | 1.0 | 21.0 | 2.0 | 6.0 | 7.0 | 7.0 | 9.0 | 8.0 | 9.0 | ... | 9.0 | 9.0 | 8.0 | 6.0 | 9.0 | 8.0 | 9.0 | 7.0 | 7.0 | 7.0 |
70 | 71.0 | 1.0 | 22.0 | 4.0 | 4.0 | 7.0 | 7.0 | 6.0 | 6.0 | 8.0 | ... | 5.0 | 7.0 | 5.0 | 5.0 | 9.0 | 7.0 | 3.0 | 7.0 | 6.0 | 8.0 |
71 | 72.0 | 1.0 | 24.0 | 1.0 | 2.0 | 6.0 | 7.0 | 5.0 | 6.0 | 4.0 | ... | 4.0 | 2.0 | 6.0 | 8.0 | 4.0 | 7.0 | 8.0 | 3.0 | 2.0 | 6.0 |
72 | 73.0 | 1.0 | 20.0 | 2.0 | 2.0 | 6.0 | 6.0 | 5.0 | 8.0 | 8.0 | ... | 6.0 | 7.0 | 8.0 | 7.0 | 8.0 | 5.0 | 8.0 | 8.0 | 8.0 | 7.0 |
73 | 74.0 | 1.0 | 20.0 | 2.0 | 5.0 | 8.0 | 8.0 | 4.0 | 8.0 | 9.0 | ... | 5.0 | 4.0 | 8.0 | 8.0 | 9.0 | 8.0 | 9.0 | 6.0 | 9.0 | 4.0 |
74 | 75.0 | 1.0 | 21.0 | 2.0 | 6.0 | 4.0 | 6.0 | 2.0 | 3.0 | 6.0 | ... | 3.0 | 2.0 | 3.0 | 2.0 | 6.0 | 8.0 | 1.0 | 1.0 | 2.0 | 2.0 |
75 | 76.0 | 1.0 | 20.0 | 2.0 | 4.0 | 5.0 | 6.0 | 4.0 | 9.0 | 6.0 | ... | 5.0 | 5.0 | 5.0 | 5.0 | 7.0 | 7.0 | 4.0 | 4.0 | 4.0 | 4.0 |
76 | 77.0 | 1.0 | 20.0 | 3.0 | 6.0 | 7.0 | 5.0 | 6.0 | 6.0 | 8.0 | ... | 3.0 | 9.0 | 5.0 | 5.0 | 9.0 | 7.0 | 6.0 | 5.0 | 6.0 | 7.0 |
77 | 78.0 | 1.0 | 23.0 | 1.0 | 5.0 | 4.0 | 8.0 | 8.0 | 9.0 | 9.0 | ... | 6.0 | 8.0 | 9.0 | 5.0 | 9.0 | 9.0 | 9.0 | 4.0 | 9.0 | 9.0 |
78 | 79.0 | 1.0 | 23.0 | 4.0 | 7.0 | 9.0 | 7.0 | 7.0 | 5.0 | 4.0 | ... | 9.0 | 7.0 | 4.0 | 5.0 | 8.0 | 8.0 | 5.0 | 5.0 | 8.0 | 4.0 |
79 | 80.0 | 1.0 | 22.0 | 2.0 | 2.0 | 8.0 | 5.0 | 5.0 | 2.0 | 5.0 | ... | 4.0 | 5.0 | 5.0 | 5.0 | 5.0 | 7.0 | 1.0 | 1.0 | 5.0 | 5.0 |
80 rows × 26 columns
# アイスクリームの種類に関するデータは5行目以降なので、MatrixTを作り直してください。
matrixT = []
val_names = []
ids = []
gender = []
sta = 5
for i, line in enumerate(open("icecream_chosa.txt")):
if i == 0:
for j, val in enumerate(line.split()):
if j < sta:
continue
val_names.append(val)
else:
vec = []
for j, val in enumerate(line.split()):
if j == 0:
ids.append(val)
elif j == 1:
gender.append(int(val))
elif j < sta:
continue
else:
vec.append(float(val))
matrixT.append(vec)
# できあがったMatrixTの中身の確認
pd.DataFrame(matrixT, columns=val_names)
vanilla | strawberry | milk_tea | macadamia_nuts | cookie | chocolate | melon | coffee | almond | rum_raisin | ... | banana | caramel | walnut | cassis | chocolate_chips | orange | green_tea | marron | chocolate_mint | adzuki-bean | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 7.0 | 7.0 | 8.0 | 3.0 | 9.0 | 9.0 | 6.0 | 8.0 | 3.0 | 2.0 | ... | 7.0 | 9.0 | 3.0 | 3.0 | 9.0 | 7.0 | 8.0 | 8.0 | 1.0 | 7.0 |
1 | 7.0 | 8.0 | 9.0 | 9.0 | 9.0 | 9.0 | 2.0 | 7.0 | 7.0 | 9.0 | ... | 4.0 | 7.0 | 8.0 | 9.0 | 9.0 | 4.0 | 7.0 | 7.0 | 8.0 | 9.0 |
2 | 7.0 | 4.0 | 3.0 | 3.0 | 6.0 | 4.0 | 7.0 | 7.0 | 6.0 | 3.0 | ... | 4.0 | 6.0 | 3.0 | 3.0 | 6.0 | 7.0 | 3.0 | 7.0 | 3.0 | 3.0 |
3 | 9.0 | 6.0 | 6.0 | 5.0 | 8.0 | 6.0 | 8.0 | 9.0 | 6.0 | 5.0 | ... | 4.0 | 9.0 | 5.0 | 4.0 | 8.0 | 9.0 | 1.0 | 2.0 | 1.0 | 3.0 |
4 | 9.0 | 5.0 | 7.0 | 5.0 | 6.0 | 8.0 | 4.0 | 4.0 | 4.0 | 6.0 | ... | 6.0 | 6.0 | 6.0 | 5.0 | 9.0 | 6.0 | 6.0 | 6.0 | 9.0 | 1.0 |
5 | 5.0 | 7.0 | 5.0 | 5.0 | 5.0 | 7.0 | 5.0 | 8.0 | 5.0 | 8.0 | ... | 5.0 | 9.0 | 5.0 | 8.0 | 8.0 | 9.0 | 9.0 | 5.0 | 9.0 | 1.0 |
6 | 9.0 | 7.0 | 6.0 | 3.0 | 7.0 | 9.0 | 4.0 | 6.0 | 5.0 | 2.0 | ... | 6.0 | 7.0 | 5.0 | 5.0 | 9.0 | 9.0 | 3.0 | 5.0 | 2.0 | 3.0 |
7 | 7.0 | 7.0 | 6.0 | 8.0 | 7.0 | 6.0 | 5.0 | 8.0 | 7.0 | 5.0 | ... | 5.0 | 6.0 | 7.0 | 9.0 | 5.0 | 6.0 | 8.0 | 5.0 | 6.0 | 8.0 |
8 | 7.0 | 7.0 | 4.0 | 8.0 | 7.0 | 7.0 | 4.0 | 7.0 | 6.0 | 3.0 | ... | 5.0 | 7.0 | 7.0 | 6.0 | 8.0 | 6.0 | 3.0 | 3.0 | 7.0 | 3.0 |
9 | 5.0 | 5.0 | 9.0 | 5.0 | 8.0 | 8.0 | 5.0 | 6.0 | 3.0 | 3.0 | ... | 8.0 | 7.0 | 2.0 | 8.0 | 8.0 | 6.0 | 6.0 | 2.0 | 1.0 | 1.0 |
10 | 8.0 | 1.0 | 8.0 | 9.0 | 7.0 | 9.0 | 3.0 | 9.0 | 4.0 | 7.0 | ... | 4.0 | 9.0 | 7.0 | 6.0 | 6.0 | 7.0 | 8.0 | 6.0 | 4.0 | 5.0 |
11 | 9.0 | 4.0 | 7.0 | 5.0 | 8.0 | 4.0 | 5.0 | 7.0 | 5.0 | 6.0 | ... | 4.0 | 4.0 | 5.0 | 8.0 | 9.0 | 5.0 | 6.0 | 4.0 | 9.0 | 7.0 |
12 | 7.0 | 7.0 | 6.0 | 8.0 | 8.0 | 9.0 | 6.0 | 7.0 | 7.0 | 6.0 | ... | 5.0 | 9.0 | 7.0 | 5.0 | 9.0 | 7.0 | 7.0 | 6.0 | 8.0 | 8.0 |
13 | 9.0 | 6.0 | 4.0 | 6.0 | 9.0 | 9.0 | 3.0 | 6.0 | 8.0 | 9.0 | ... | 6.0 | 7.0 | 8.0 | 4.0 | 9.0 | 9.0 | 8.0 | 9.0 | 7.0 | 8.0 |
14 | 8.0 | 7.0 | 5.0 | 5.0 | 5.0 | 9.0 | 4.0 | 5.0 | 4.0 | 3.0 | ... | 4.0 | 4.0 | 6.0 | 5.0 | 8.0 | 6.0 | 9.0 | 4.0 | 9.0 | 5.0 |
15 | 7.0 | 4.0 | 7.0 | 4.0 | 7.0 | 3.0 | 3.0 | 7.0 | 5.0 | 3.0 | ... | 6.0 | 6.0 | 6.0 | 6.0 | 4.0 | 6.0 | 8.0 | 5.0 | 7.0 | 7.0 |
16 | 6.0 | 4.0 | 2.0 | 2.0 | 7.0 | 6.0 | 4.0 | 5.0 | 5.0 | 8.0 | ... | 4.0 | 6.0 | 6.0 | 5.0 | 7.0 | 5.0 | 9.0 | 6.0 | 9.0 | 6.0 |
17 | 8.0 | 7.0 | 5.0 | 5.0 | 6.0 | 8.0 | 3.0 | 5.0 | 6.0 | 3.0 | ... | 3.0 | 5.0 | 4.0 | 5.0 | 7.0 | 9.0 | 8.0 | 4.0 | 9.0 | 4.0 |
18 | 5.0 | 9.0 | 8.0 | 5.0 | 7.0 | 5.0 | 5.0 | 5.0 | 9.0 | 4.0 | ... | 6.0 | 6.0 | 7.0 | 7.0 | 8.0 | 7.0 | 9.0 | 5.0 | 8.0 | 5.0 |
19 | 6.0 | 6.0 | 6.0 | 8.0 | 8.0 | 6.0 | 1.0 | 5.0 | 7.0 | 8.0 | ... | 5.0 | 7.0 | 7.0 | 7.0 | 7.0 | 6.0 | 7.0 | 7.0 | 8.0 | 8.0 |
20 | 9.0 | 9.0 | 6.0 | 6.0 | 8.0 | 7.0 | 7.0 | 9.0 | 6.0 | 6.0 | ... | 7.0 | 6.0 | 5.0 | 9.0 | 9.0 | 9.0 | 9.0 | 7.0 | 4.0 | 8.0 |
21 | 7.0 | 9.0 | 9.0 | 7.0 | 9.0 | 8.0 | 3.0 | 1.0 | 6.0 | 1.0 | ... | 8.0 | 8.0 | 8.0 | 5.0 | 8.0 | 6.0 | 7.0 | 8.0 | 4.0 | 8.0 |
22 | 8.0 | 8.0 | 9.0 | 8.0 | 8.0 | 8.0 | 6.0 | 6.0 | 6.0 | 9.0 | ... | 5.0 | 8.0 | 8.0 | 4.0 | 9.0 | 8.0 | 9.0 | 5.0 | 5.0 | 8.0 |
23 | 7.0 | 7.0 | 6.0 | 5.0 | 4.0 | 7.0 | 4.0 | 5.0 | 5.0 | 8.0 | ... | 9.0 | 9.0 | 3.0 | 7.0 | 7.0 | 3.0 | 5.0 | 9.0 | 9.0 | 9.0 |
24 | 7.0 | 6.0 | 7.0 | 9.0 | 9.0 | 8.0 | 4.0 | 6.0 | 8.0 | 9.0 | ... | 6.0 | 8.0 | 8.0 | 5.0 | 8.0 | 4.0 | 8.0 | 9.0 | 3.0 | 9.0 |
25 | 7.0 | 5.0 | 8.0 | 7.0 | 9.0 | 9.0 | 5.0 | 9.0 | 4.0 | 4.0 | ... | 5.0 | 4.0 | 4.0 | 8.0 | 9.0 | 8.0 | 8.0 | 6.0 | 1.0 | 7.0 |
26 | 7.0 | 9.0 | 7.0 | 7.0 | 8.0 | 5.0 | 3.0 | 4.0 | 8.0 | 9.0 | ... | 2.0 | 8.0 | 8.0 | 9.0 | 8.0 | 9.0 | 6.0 | 3.0 | 1.0 | 7.0 |
27 | 7.0 | 6.0 | 1.0 | 7.0 | 8.0 | 8.0 | 4.0 | 4.0 | 4.0 | 6.0 | ... | 3.0 | 6.0 | 6.0 | 4.0 | 8.0 | 4.0 | 8.0 | 7.0 | 8.0 | 7.0 |
28 | 6.0 | 7.0 | 7.0 | 8.0 | 8.0 | 9.0 | 8.0 | 9.0 | 9.0 | 6.0 | ... | 5.0 | 9.0 | 8.0 | 7.0 | 9.0 | 7.0 | 7.0 | 5.0 | 5.0 | 3.0 |
29 | 7.0 | 7.0 | 7.0 | 7.0 | 9.0 | 9.0 | 6.0 | 9.0 | 9.0 | 9.0 | ... | 9.0 | 9.0 | 5.0 | 5.0 | 9.0 | 6.0 | 9.0 | 7.0 | 9.0 | 6.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
50 | 7.0 | 8.0 | 6.0 | 3.0 | 5.0 | 6.0 | 6.0 | 6.0 | 3.0 | 8.0 | ... | 4.0 | 5.0 | 2.0 | 3.0 | 8.0 | 5.0 | 8.0 | 3.0 | 8.0 | 2.0 |
51 | 9.0 | 4.0 | 5.0 | 3.0 | 7.0 | 7.0 | 1.0 | 5.0 | 3.0 | 4.0 | ... | 8.0 | 6.0 | 2.0 | 4.0 | 9.0 | 8.0 | 7.0 | 5.0 | 5.0 | 9.0 |
52 | 9.0 | 8.0 | 7.0 | 6.0 | 9.0 | 8.0 | 6.0 | 9.0 | 5.0 | 1.0 | ... | 7.0 | 9.0 | 7.0 | 6.0 | 9.0 | 5.0 | 3.0 | 9.0 | 1.0 | 9.0 |
53 | 8.0 | 8.0 | 7.0 | 5.0 | 7.0 | 7.0 | 8.0 | 4.0 | 4.0 | 8.0 | ... | 5.0 | 4.0 | 4.0 | 4.0 | 7.0 | 6.0 | 3.0 | 4.0 | 6.0 | 5.0 |
54 | 7.0 | 7.0 | 8.0 | 7.0 | 6.0 | 9.0 | 5.0 | 9.0 | 5.0 | 7.0 | ... | 5.0 | 6.0 | 5.0 | 9.0 | 9.0 | 7.0 | 9.0 | 7.0 | 8.0 | 9.0 |
55 | 5.0 | 7.0 | 5.0 | 5.0 | 5.0 | 9.0 | 5.0 | 5.0 | 5.0 | 5.0 | ... | 4.0 | 6.0 | 5.0 | 5.0 | 9.0 | 9.0 | 8.0 | 5.0 | 9.0 | 8.0 |
56 | 9.0 | 9.0 | 9.0 | 9.0 | 9.0 | 6.0 | 6.0 | 9.0 | 8.0 | 9.0 | ... | 7.0 | 8.0 | 6.0 | 6.0 | 8.0 | 7.0 | 9.0 | 7.0 | 1.0 | 9.0 |
57 | 9.0 | 3.0 | 5.0 | 7.0 | 6.0 | 3.0 | 2.0 | 4.0 | 5.0 | 8.0 | ... | 5.0 | 1.0 | 6.0 | 3.0 | 8.0 | 2.0 | 7.0 | 1.0 | 1.0 | 3.0 |
58 | 7.0 | 7.0 | 7.0 | 4.0 | 6.0 | 6.0 | 7.0 | 7.0 | 4.0 | 6.0 | ... | 7.0 | 8.0 | 3.0 | 6.0 | 7.0 | 7.0 | 8.0 | 6.0 | 3.0 | 6.0 |
59 | 7.0 | 8.0 | 8.0 | 5.0 | 7.0 | 4.0 | 4.0 | 4.0 | 3.0 | 9.0 | ... | 5.0 | 6.0 | 4.0 | 5.0 | 5.0 | 8.0 | 7.0 | 6.0 | 5.0 | 6.0 |
60 | 6.0 | 4.0 | 3.0 | 5.0 | 9.0 | 6.0 | 4.0 | 3.0 | 4.0 | 5.0 | ... | 3.0 | 4.0 | 3.0 | 5.0 | 8.0 | 5.0 | 1.0 | 3.0 | 5.0 | 1.0 |
61 | 7.0 | 8.0 | 6.0 | 5.0 | 9.0 | 8.0 | 7.0 | 7.0 | 5.0 | 4.0 | ... | 7.0 | 5.0 | 5.0 | 5.0 | 9.0 | 7.0 | 6.0 | 6.0 | 4.0 | 5.0 |
62 | 6.0 | 6.0 | 7.0 | 7.0 | 7.0 | 9.0 | 5.0 | 6.0 | 7.0 | 5.0 | ... | 6.0 | 8.0 | 7.0 | 5.0 | 9.0 | 5.0 | 6.0 | 6.0 | 8.0 | 5.0 |
63 | 8.0 | 7.0 | 9.0 | 6.0 | 9.0 | 9.0 | 6.0 | 9.0 | 3.0 | 7.0 | ... | 8.0 | 4.0 | 5.0 | 9.0 | 9.0 | 3.0 | 6.0 | 5.0 | 9.0 | 1.0 |
64 | 7.0 | 8.0 | 5.0 | 4.0 | 6.0 | 5.0 | 5.0 | 5.0 | 5.0 | 9.0 | ... | 4.0 | 7.0 | 7.0 | 5.0 | 6.0 | 4.0 | 8.0 | 5.0 | 4.0 | 6.0 |
65 | 7.0 | 7.0 | 7.0 | 7.0 | 8.0 | 6.0 | 5.0 | 9.0 | 5.0 | 8.0 | ... | 7.0 | 4.0 | 6.0 | 5.0 | 7.0 | 7.0 | 9.0 | 5.0 | 5.0 | 6.0 |
66 | 7.0 | 7.0 | 5.0 | 4.0 | 8.0 | 8.0 | 5.0 | 5.0 | 4.0 | 4.0 | ... | 5.0 | 3.0 | 3.0 | 4.0 | 8.0 | 7.0 | 8.0 | 5.0 | 3.0 | 4.0 |
67 | 5.0 | 5.0 | 6.0 | 7.0 | 7.0 | 9.0 | 6.0 | 6.0 | 9.0 | 6.0 | ... | 5.0 | 5.0 | 9.0 | 6.0 | 9.0 | 6.0 | 9.0 | 7.0 | 8.0 | 5.0 |
68 | 8.0 | 7.0 | 5.0 | 5.0 | 7.0 | 7.0 | 6.0 | 5.0 | 5.0 | 6.0 | ... | 6.0 | 5.0 | 4.0 | 5.0 | 7.0 | 8.0 | 5.0 | 5.0 | 5.0 | 5.0 |
69 | 7.0 | 7.0 | 9.0 | 8.0 | 9.0 | 5.0 | 8.0 | 8.0 | 5.0 | 6.0 | ... | 9.0 | 9.0 | 8.0 | 6.0 | 9.0 | 8.0 | 9.0 | 7.0 | 7.0 | 7.0 |
70 | 7.0 | 7.0 | 6.0 | 6.0 | 8.0 | 9.0 | 6.0 | 5.0 | 5.0 | 5.0 | ... | 5.0 | 7.0 | 5.0 | 5.0 | 9.0 | 7.0 | 3.0 | 7.0 | 6.0 | 8.0 |
71 | 6.0 | 7.0 | 5.0 | 6.0 | 4.0 | 8.0 | 8.0 | 7.0 | 6.0 | 8.0 | ... | 4.0 | 2.0 | 6.0 | 8.0 | 4.0 | 7.0 | 8.0 | 3.0 | 2.0 | 6.0 |
72 | 6.0 | 6.0 | 5.0 | 8.0 | 8.0 | 7.0 | 3.0 | 6.0 | 7.0 | 7.0 | ... | 6.0 | 7.0 | 8.0 | 7.0 | 8.0 | 5.0 | 8.0 | 8.0 | 8.0 | 7.0 |
73 | 8.0 | 8.0 | 4.0 | 8.0 | 9.0 | 7.0 | 3.0 | 6.0 | 6.0 | 3.0 | ... | 5.0 | 4.0 | 8.0 | 8.0 | 9.0 | 8.0 | 9.0 | 6.0 | 9.0 | 4.0 |
74 | 4.0 | 6.0 | 2.0 | 3.0 | 6.0 | 6.0 | 8.0 | 5.0 | 4.0 | 2.0 | ... | 3.0 | 2.0 | 3.0 | 2.0 | 6.0 | 8.0 | 1.0 | 1.0 | 2.0 | 2.0 |
75 | 5.0 | 6.0 | 4.0 | 9.0 | 6.0 | 7.0 | 4.0 | 3.0 | 6.0 | 5.0 | ... | 5.0 | 5.0 | 5.0 | 5.0 | 7.0 | 7.0 | 4.0 | 4.0 | 4.0 | 4.0 |
76 | 7.0 | 5.0 | 6.0 | 6.0 | 8.0 | 9.0 | 4.0 | 4.0 | 4.0 | 5.0 | ... | 3.0 | 9.0 | 5.0 | 5.0 | 9.0 | 7.0 | 6.0 | 5.0 | 6.0 | 7.0 |
77 | 4.0 | 8.0 | 8.0 | 9.0 | 9.0 | 9.0 | 4.0 | 8.0 | 9.0 | 1.0 | ... | 6.0 | 8.0 | 9.0 | 5.0 | 9.0 | 9.0 | 9.0 | 4.0 | 9.0 | 9.0 |
78 | 9.0 | 7.0 | 7.0 | 5.0 | 4.0 | 6.0 | 7.0 | 7.0 | 4.0 | 5.0 | ... | 9.0 | 7.0 | 4.0 | 5.0 | 8.0 | 8.0 | 5.0 | 5.0 | 8.0 | 4.0 |
79 | 8.0 | 5.0 | 5.0 | 2.0 | 5.0 | 4.0 | 7.0 | 1.0 | 5.0 | 5.0 | ... | 4.0 | 5.0 | 5.0 | 5.0 | 5.0 | 7.0 | 1.0 | 1.0 | 5.0 | 5.0 |
80 rows × 21 columns
__課題9.4__:作成した MatrixT をもとに、アイスクリームの好みに関する相関係数を作成してください。また、その相関行列をカラーマップで図示してください。
# 相関行列を計算し表示する
# 得られた相関行列をカラーマップで表示する。
__課題9.5__:作成した matrixT をもとに、アイスクリームの好みに関する因子分析を実行し、80人の男女を色分けして、第一因子と第二因子でプロットしてください。また、この結果から、アイスクリームの好みに関して言えることを考察してください。
# 因子分析の実行
# 第一因子と第二因子でプロットする
__今日の課題提出__:計算結果を.ipynb ファイル(または.jsonファイル)として保存し、指定したアドレスまでメールしてください。メールタイトルは「__アイスクリーム統計学789__」とし、メール本文に学籍番号と氏名を明記のこと。また、感想も書いてくれると喜びます。今後の講義の改善につながるかも知れません。