python PR

【pythonで統計学】統計分析におけるデータの種類と扱い方〜サンプルコード+可視化の方法つき〜

python 統計学 データの種類
記事内に商品プロモーションを含む場合があります

統計解析を行う際に気をつけないといけないのが、データの種類です

データの種類は大きく分けて、4種類あります

  • 名義尺度
  • 順序尺度
  • 間隔尺度
  • 比例尺度

上二つのデータを質的データ

下二つのデータを量的データと呼んだりします

質的・量的データで使用することができる統計検定も変わってきますので、今回はデータの種類と扱い方について、解説していきたいと思います

また、以下の記事からpythonで統計学を順序立てて学ぶことができるようになっているので、参考にしてみてください

python 統計学
pythonで統計学を学ぶメリット〜実際の学習手順を紹介〜近年、データサイエンティストの需要が高まってきていますが、データサイエンティスト必須能力として、「プログラミング言語」「統計学」が挙げられています。pythonで統計学を扱えれば、データサイエンティストとしての道も開けるでしょう。今回はpythonで統計学を学ぶメリットや実際にどのように学習していくべきかを解説していきたいと思います。...

データの種類

統計検定を行う際に出てくるデータは以下のように分けられます

データの種類と扱い方

質的データと量的データ

質的データは性別や居住地・勤務地、血液型などが該当します

それに対して量的データは身長、体重、貯金額、気温などが該当します

アンケートなどの、
1:とてもいい
2:いい
3:普通
などは、数値の順番になっていますが、数値自体は四則演算ができないため、質的データになります

データの次元

また種類のほかに「データの次元」という分け方もあります

身長
175
165
183
155
147

上記のようなデータは一次元データと呼ばれます

また、下記のようなデータはN次元データと呼ばれます

irisのデータ

上記のirisデータは以下のコードで入手することができます

import pandas as pd
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')

print(iris.head())

 

データを解析してみる

では実際に量的データの解析をしてみたいと思います

今回使用するのは、上述したirisのデータを使用します

import pandas as pd
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')

print(iris.head())

今回はこのirisデータから要約統計量を算出してみたいと思います

詳しい解説は以下の記事を参考にしてください

python 統計学 要約統計量
【pythonで統計学】pandasを使って要約統計量を算出する方法〜サンプルコード付き〜研究を進めていると、最大値や平均値、中央値を算出する機会があります この辺りはすぐに算出することができますが、四分位範囲や標準偏差...
import pandas as pd
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')

print(iris.describe())
iris要約統計量

上記のコードで画像のような結果が表示されるかと思います

量的データは四分位数や平均値、最大値などを算出することができます

量的データを可視化する

要約統計量だけを算出しても視覚的にはわかりにくいので、今度はそれを可視化していきます

可視化するにはmatlibplotやseabornなどを使用します

seabornだと綺麗なグラフを作ることができるので、今回はseabornを使用します

from matplotlib import pyplot as plt
import seaborn as sns; sns.set()
#あらかじめ用意されているirisのデータを使用
iris = sns.load_dataset('iris') 
sns.distplot(
    iris['sepal_width'], bins=13, label='data',
    kde=False,
    rug=False
)
plt.legend() # 凡例を表示
plt.show()   # ヒストグラムを表示
seabornヒストグラム1

また、平均値を算出して、それをグラフ化するには以下のコードを入力します

from matplotlib import pyplot as plt
import seaborn as sns; sns.set()
import pandas as pd
#あらかじめ用意されているirisのデータを使用
iris = sns.load_dataset('iris') 
sepal_length=iris.iloc[:,0]
sepal_width=iris.iloc[:,1]
print(sepal_length.mean(),sepal_width.mean())
data=[["iris",sepal_length.mean(),sepal_width.mean()]]
df=pd.DataFrame(data,columns=["name","sepal_length","sepal_width"]) 

color=["r","b"]
df.plot(x="name",y=["sepal_length","sepal_width"],kind="bar",color=color,figsize=(4,3))
 
plt.show()
iris平均値可視化

質的データを解析する

続いて質的データも解析してみます

よく用いられている「クロス集計」を行なっていきたいと思います

pythonでクロス集計を作成する場合には、

pd.crosstab()

を使用します

実際のコードは以下

from matplotlib import pyplot as plt
import seaborn as sns; sns.set()
import pandas as pd
#あらかじめ用意されているirisのデータを使用
iris = sns.load_dataset('iris') 
sepal_length=iris.iloc[:,0]
sepal_width=iris.iloc[:,1]
species=iris.iloc[:,4]

data=[["iris",sepal_length.mean(),sepal_width.mean()]]
df=pd.DataFrame(data,columns=["name","sepal_length","sepal_width"]) 

color=["r","b"]
df.plot(x="name",y=["sepal_length","sepal_width"],kind="bar",color=color,figsize=(4,3))

#下2行がクロス集計
cross=pd.crosstab(sepal_length,species)
print(cross)

plt.show()
irisクロス集計結果

今回はそれぞれの種類にsepal_lengthの各値がどれくらいあるかを集計しています

cross=pd.crosstab(sepal_length,species)
print(cross)

sepal_length,speciesを変えれば、他の集計も行うことが可能です

そのままカラーマップも作成していきましょう

from matplotlib import pyplot as plt
import seaborn as sns; sns.set()
import pandas as pd
#あらかじめ用意されているirisのデータを使用
iris = sns.load_dataset('iris') 
sepal_length=iris.iloc[:,0]
sepal_width=iris.iloc[:,1]
species=iris.iloc[:,4]

data=[["iris",sepal_length.mean(),sepal_width.mean()]]
df=pd.DataFrame(data,columns=["name","sepal_length","sepal_width"]) 

color=["r","b"]
df.plot(x="name",y=["sepal_length","sepal_width"],kind="bar",color=color,figsize=(4,3))
cross=pd.crosstab(sepal_length,species)
print(cross)
#カラーマップ作成
ax = plt.subplots()
heatmap = plt.pcolor(cross, cmap=plt.cm.Blues)
plt.show()
カラーマップ

まとめ

  • データには質的データと量的データがある
  • 質的データ・量的データは解析方法が異なる
  • 解析結果の可視化はseabornを使用

pythonで統計学を学ぶ上で必須書籍

おすすめプログラミングスクール

DMMWEBCAMP
  • WEBCAMPはコスパ最強
  • WEBCAMPは初心者に優しい充実したサポート付き
  • 16週間プランを選択して、返金してもらおう
WEBCAMPの公式ページはこちら WEBCAMPの口コミ・評価はこちら
テックアカデミー  
  • テックアカデミーは費用対効果抜群
  • テックアカデミーのサポートは個人の能力に応じつつ、python初心者に優しい
  • まずは無料体験でテックアカデミーを知ってから受講を決める
テックアカデミーの公式ページはこちら テックアカデミーの口コミ・評価はこちら
キカガク
  • 多種多様なスキルコース
  • 初心者から専門家まで対象
  • 給付金利用で費用を抑えられる
キカガクの公式ページはこちら キカガクの口コミ・評価はこちら
Aidemy Premium
  • 完全オンラインで、時間や場所に縛られず学習したい
  • マンツーマン学習サポートにより実践に近い経験をしたい
  • 未経験から機械学習エンジニアになりたい
Aidemy Premiumの公式ページはこちら Aidemy Premiumの口コミ・評価はこちら
My Agile Privacy
This website uses technical and profiling cookies. Clicking on "Accept" authorises all profiling cookies. Clicking on "Refuse" or the X will refuse all profiling cookies. By clicking on "Customise" you can select which profiling cookies to activate.