今日はいろんな平均についてのお話です。
多分超簡単です。
解説動画はこちら
さて平均と一言で言っても
実はたくさんの種類があり
計算方法も違っています。
ちなみに英語だと
meanとaverageの
二通りの訳し方がありますが
meanは統計学上の平均値をあらわし
averageはそれに加えて
「普通・標準的・平凡」などの意味合いが
含まれる言葉だそうです。
英語で平均値であればmean
一般的な平均的なお店のような場合は
average shop などと訳す感じですかね。
世間一般での平均は
算術平均の事かと思います。
算術平均
算術平均、または相加平均とも言っていて
英語はarithmetic meanです。
算術平均の計算方法としては
集合の総和を集合の要素数で割ったもの
ですね。
例として
55kg , 60kg , 80kgの人の平均体重
を求めるとすると
(55+60+80) / 3 = 65
と言うことになります。
Pythonであれば
numpyライブラリを用いて
以下のように求めることができます。
続いて相乗平均(幾何平均)です。
相乗平均
集合の総積の累乗根で
求めることができます。
次のような例があったとします。
2018-2020年度にかけて
平均で毎年どれくらい
売上が伸びたと言えるだろうか?
出てきた数値を全てかけて
その個数乗根をとると計算できます。
1.1x1.05x1.03の3乗根
pythonだと次のように
求められます。
調和平均
と言う問題の場合
要素の逆数は1/2 , 1/3
これを足し合わせたものの
逆をとる形になります。
2/(1/2+1/3) = 2.4
pythonだとこうなります。
上記3つの平均は
次のような大小関係になっているようです。
算術(相加)平均 > 相乗(幾何)平均 > 調和平均
単に相加平均をとるのでなく
重みを考慮した平均の取り方です。
男子の平均点は60点
女子の平均点は90点です。
クラス全体の平均点は何点でしょうか。
要素x重みの合計を
要素の合計で割ります。
(60*3 + 90*2) / (3+2) = 72
Pythonだとnumpyのaverageメソッドの
weightsの値を加えることで算出できます。
最後に移動平均です。
当日から遡ったn日分のデータの
算術平均の値です。
次のコードを実行すると
移動平均の値を計算することができます。

pandasライブラリのrollingメソッドで
区間を指定し、その平均をmeanメソッドで
算出することができます。
長い区間をとると、より滑らかな
値になるのが見て分かるのでは無いでしょうか。
今回は
平均についてお伝えしました。
統計学ではまず最初に習うのが
この平均の事かと思いますので
また、統計用語について
やっていきたいと思います。
それでは
多分超簡単です。
解説動画はこちら
さて平均と一言で言っても
実はたくさんの種類があり
計算方法も違っています。
ちなみに英語だと
meanとaverageの
二通りの訳し方がありますが
meanは統計学上の平均値をあらわし
averageはそれに加えて
「普通・標準的・平凡」などの意味合いが
含まれる言葉だそうです。
英語で平均値であればmean
一般的な平均的なお店のような場合は
average shop などと訳す感じですかね。
世間一般での平均は
算術平均の事かと思います。
算術平均
算術平均、または相加平均とも言っていて
英語はarithmetic meanです。
算術平均の計算方法としては
集合の総和を集合の要素数で割ったもの
ですね。
例として
55kg , 60kg , 80kgの人の平均体重
を求めるとすると
(55+60+80) / 3 = 65
と言うことになります。
Pythonであれば
numpyライブラリを用いて
以下のように求めることができます。
import numpy as np data = [55,60,80] np.mean(data)65
続いて相乗平均(幾何平均)です。
相乗平均
英語だとgeometric mean
集合の総積の累乗根で
求めることができます。
次のような例があったとします。
ある売り上げが2018年度は10%増加
2019年度は5%増加
2020年度は3%増加したとする。
2020年度は3%増加したとする。
2018-2020年度にかけて
平均で毎年どれくらい
売上が伸びたと言えるだろうか?
出てきた数値を全てかけて
その個数乗根をとると計算できます。
1.1x1.05x1.03の3乗根
pythonだと次のように
求められます。
from scipy.stats.mstats import gmean data = [1.1,1.05,1.03] gmean(data)1.0595945
調和平均
英語だとharmonic mean
逆数の算術平均の逆数で
計算することができます。
計算することができます。
例えば
1kmの道を行きは時速 2 km
1kmの道を行きは時速 2 km
帰りは時速 3 kmで往復したときの平均の速さ
と言う問題の場合
要素の逆数は1/2 , 1/3
これを足し合わせたものの
逆をとる形になります。
2/(1/2+1/3) = 2.4
from scipy.stats import hmean data = [2,3] hmean(data)2.4
上記3つの平均は
次のような大小関係になっているようです。
算術(相加)平均 > 相乗(幾何)平均 > 調和平均
加重平均
英語だとweighted arithmetic mean
単に相加平均をとるのでなく
重みを考慮した平均の取り方です。
例として
ある学校のクラスに男子が3人
女子が2人いてテストを行いました。
ある学校のクラスに男子が3人
女子が2人いてテストを行いました。
男子の平均点は60点
女子の平均点は90点です。
クラス全体の平均点は何点でしょうか。
要素x重みの合計を
要素の合計で割ります。
(60*3 + 90*2) / (3+2) = 72
Pythonだとnumpyのaverageメソッドの
weightsの値を加えることで算出できます。
import numpy as np data , w = [60,90],[3,2] np.average(data, weights=w)72
最後に移動平均です。
単純移動平均(SMA)
英語だとSimple Moving Average
直近n個のデータの算術平均の値
時系列データなどでよく用いられる
n日移動平均(SMAn)
当日から遡ったn日分のデータの
算術平均の値です。
次のコードを実行すると
移動平均の値を計算することができます。
url = 'http://www.data.jma.go.jp/obd/stats/etrn/view/daily_s1.php?prec_no=44&block_no=47662&year=2020&month=12&day=&view=''' value = pd.read_html(url)[0].iloc[0:,6:7].values data = [float(d) for d in value] df = pd.DataFrame(data,columns=['気温']) df['3日移動平均'] = df['気温'].rolling(3).mean() df['5日移動平均'] = df['気温'].rolling(5).mean() df['7日移動平均'] = df['気温'].rolling(7).mean() df.plot() plt.show()

pandasライブラリのrollingメソッドで
区間を指定し、その平均をmeanメソッドで
算出することができます。
長い区間をとると、より滑らかな
値になるのが見て分かるのでは無いでしょうか。
今回は
平均についてお伝えしました。
統計学ではまず最初に習うのが
この平均の事かと思いますので
また、統計用語について
やっていきたいと思います。
それでは

コメントする