7. 相関行列

本文を読んで概念を学んでください。

本文を読んで概念を学んでください。また、 調査票を読んで、アンケート内容を把握してください。

7.2 変数をまとめる

ここでは、人を「サンプル」と見なし、バニラ、ストロベリーなどの味の好みを「変数」と見なします。(逆に、バニラ、ストロベリーなどのアイスを「サンプル」と見なし、人の好みを「変数」と見なすこともできます。)

課題7.2アイスクリームアンケート調査結果をダウンロードして、次のコードを実行してください。

In [1]:
# URL によるリソースへのアクセスを提供するライブラリをインポートする。
import urllib # Python 2 の場合
# import urllib.request # Python 3 の場合
In [2]:
# ウェブ上のリソースを指定する
url = 'https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/icecream_chosa.txt'
In [3]:
# 指定したURLからリソースをダウンロードし、名前をつける。
urllib.urlretrieve(url, 'icecream_chosa.txt') # Python 2 の場合
# urllib.request.urlretrieve(url, 'icecream_chosa.txt') # Python 3 の場合
Out[3]:
('icecream_chosa.txt', <httplib.HTTPMessage instance at 0x10411ae18>)
In [4]:
#最初の数レコードだけ確認する
!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 
In [5]:
# バニラ、ストロベリーなどの変数間の関係を見るための「行列」 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))
In [6]:
import pandas as pd # データフレームワーク処理のライブラリをインポート
In [7]:
# # できあがったMatrixの中身を確認してください。
pd.DataFrame(matrix, index=val_names)
Out[7]:
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

In [8]:
# バニラ、ストロベリーなどアイスクリームの種類に関するデータは5行目以降なので、Matrixを作り直してください。
matrix = []
val_names = []
sta = 5
for i, line in enumerate(open("icecream_chosa.txt")):
In [9]:
# できあがったMatrixの中身を確認してください。

7.3 相関行列を計算する(1)

本文を読んで概念を学んでください。

In [10]:
# 平均値を求める関数
def average(list):
In [11]:
# 分散を求める関数
def variance(list):
In [12]:
# 標準偏差を求める関数
def standard_deviation(list):
In [13]:
# 共分散を求める関数
def covariance(list1, list2):
In [14]:
# 相関係数を求める関数
def correlation(list1, list2):
In [15]:
# 相関行列を作る関数
def correlation_matrix(matrix):
In [16]:
# 相関行列を計算し表示する
cormat = correlation_matrix(matrix)
pd.DataFrame(cormat)
Out[16]:
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

In [17]:
# 図やグラフを図示するためのライブラリをインポートする。
import matplotlib.pyplot as plt
%matplotlib inline
In [18]:
# 得られた相関行列をカラーマップで表示する。
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アイスクリームアンケート調査結果のデータを用い、以下の問いに答えてください。

  • 21種類のアイスクリームの好みのデータについて、すべての組み合わせの相関係数を求めた上で、正の相関が高いもの(ここでは+0.4以上)の組み合わせをリストしてください。
  • 同様に、相関行列の中で、負の相関が高いもの(ここでは-0.2以下)の組み合わせをリストしてください。
  • 以上の結果を踏まえて、アイスクリームの好みについての分類をしたときに、言えることを書いてください。
In [ ]:
 

8. 因子分析(1)

本文を読んで概念を学んでください。

8.1 因子分析の考え方

本文を読んで概念を学んでください。

8.2 固有値

本文を読んで概念を学んでください。

8.3 因子負荷

本文を読んで概念を学んでください。

8.4 回転

本文を読んで概念を学んでください。

8.5 通過テスト

Pythonでは、因子分析を行うためのライブラリが使えます。

課題8.5:因子分析を行う前に、リストの正規化をする(Z値に変換する)関数を作成してください。

In [19]:
# リストの正規化をする(Z値に変換する)関数
def normalize(data):
In [20]:
# リストのリストの正規化をする(Z値に変換する)関数
def normalize2(data):
    list = []
    for x in data:
        list.append(normalize(x))
    return list

課題8.6:因子分析を行う以下のコードを実行してください。

In [21]:
# 図やグラフを図示するためのライブラリをインポートする。
import matplotlib.pyplot as plt
%matplotlib inline
In [22]:
# 機械学習のライブラリから、因子分析のプログラムをインポート
from sklearn.decomposition import FactorAnalysis
In [23]:
# 因子分析の実行
fa = FactorAnalysis()
factors = fa.fit_transform(normalize2(matrix))
In [24]:
# 左から順に第一因子、第二因子、、、
pd.DataFrame(factors, index=val_names)
Out[24]:
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

In [25]:
# 第一因子と第二因子でプロットする
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:上と同様にして、第三因子と第四因子でプロットしてください。また、以上の結果から、アイスクリームの味の好みについて何が言えそうか考察してください。

In [ ]:
 

9. 因子分析(2)

本文を読んで概念を学んでください。

9.1 単純構造

本文を読んで概念を学んでください。

9.2 因子得点

本文を読んで概念を学んでください。

9.3 通過テスト

今までは、アイスクリーム間の関係を解析しましたが、ここからは、人の間の関係を解析します。

課題9.3アイスクリームアンケート調査結果をダウンロードして、先ほどの matrix と縦横を入れ替えた matrixTを作成してください。

In [26]:
# 縦横入れ替えた 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)
In [27]:
# できあがったMatrixTの中身の確認
pd.DataFrame(matrixT, columns=val_names)
Out[27]:
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

In [28]:
# アイスクリームの種類に関するデータは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)
In [29]:
# できあがったMatrixTの中身の確認
pd.DataFrame(matrixT, columns=val_names)
Out[29]:
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 をもとに、アイスクリームの好みに関する相関係数を作成してください。また、その相関行列をカラーマップで図示してください。

In [34]:
# 相関行列を計算し表示する
In [35]:
# 得られた相関行列をカラーマップで表示する。

課題9.5:作成した matrixT をもとに、アイスクリームの好みに関する因子分析を実行し、80人の男女を色分けして、第一因子と第二因子でプロットしてください。また、この結果から、アイスクリームの好みに関して言えることを考察してください。

In [36]:
# 因子分析の実行
In [37]:
# 第一因子と第二因子でプロットする
In [ ]:
 

今日の課題提出:計算結果を.ipynb ファイル(または.jsonファイル)として保存し、指定したアドレスまでメールしてください。メールタイトルは「アイスクリーム統計学789」とし、メール本文に学籍番号と氏名を明記のこと。また、感想も書いてくれると喜びます。今後の講義の改善につながるかも知れません。