0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

歪度、尖度の計算(Python)

Last updated at Posted at 2022-06-23

背景

 単回帰による機械学習のモデルを作成する際に、説明変数が正規分布に従っているか調べるのに便利なので、歪度と尖度を算出する関数を作ってみました。どちらも0に近づくほど、正規分布に近い分布となります。

 正規分布でない場合、例えばべき分布だった場合はlogを取るなど、加工を加えます。

環境

 Google Colaboratory
 Python3
 pandas, numpy

コード

# numpyなどのインポート
import numpy as np
import pandas as pd

# 歪度の計算関数

def waido(data):
  n = len(data) # サンプルサイズ
  s = np.std(data) # 標準偏差
  mu = data.mean() # 平均
  return (n / ((n-1) * (n-2))) * (((data - mu) / s) ** 3).sum()

# 尖度の計算関数

def sendo(data):
  n = len(data) # サンプルサイズ
  s = np.std(data) # 標準偏差
  mu = data.mean() # 平均
  return ( ((n * (n+1)) / ((n-1) * (n-2) * (n-3))) * (((data - mu) ** 4) / (s ** 4)).sum() ) - ((3 * (n-1) ** 2) / ((n-2) * (n-3)))

np.random.randn(100)で作成した標準正規分布のデータで調べたらほぼ0になったので、多分あってるはずです(笑)

参考

歪度、尖度の計算式

0
0
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?