Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

データサイエンス100本ノック(構造化データ加工編) - SQLのS-030とS-031の回答に使用されている関数について #133

Open
yuiki-iwayama opened this issue Feb 13, 2022 · 3 comments

Comments

@yuiki-iwayama
Copy link

S-030

設問

S-030: レシート明細テーブル(receipt)に対し、店舗コード(store_cd)ごとに売上金額(amount)の標本分散を計算し、降順でTOP5を表示せよ。

回答

%%sql

SELECT store_cd, var_pop(amount) as vars_amount
FROM receipt
GROUP BY store_cd
ORDER BY vars_amount desc 
LIMIT 5

設問では標本分散を求めるようになっていますが,回答は母分散の関数であるvar_popを使用しています.
標本分散の場合は,var_sampを使用するのではないでしょうか?

S-031

設問

S-031: レシート明細テーブル(receipt)に対し、店舗コード(store_cd)ごとに売上金額(amount)の標本標準偏差を計算し、降順でTOP5を表示せよ。

回答

%%sql

SELECT store_cd, stddev_pop(amount) as stds_amount
FROM receipt
GROUP BY store_cd
ORDER BY stds_amount desc
LIMIT 5

設問では標本標準偏差を求めるようになっていますが,回答は母標準偏差の関数であるstddev_popを使用しています.
標本標準偏差の場合は,stddev_sampを使用するのではないでしょうか?

posgresqlのドキュメントでも母分散と標本分散,および母標準偏差と標本標準偏差は明確に区別されているようです.
ご確認お願いします.

@KazuhiroM
Copy link
Contributor

KazuhiroM commented Feb 19, 2022

日本語だと標本分散というと標本を母集団とみなした(分母のnが標本数の)分散となりますが、英語の場合はsample varとか不偏分散のことを指し、関数もvar_sampが不偏分散となります。なので、標本を母集団とみなし分母nで計算するvar_popを採用しています。実はノック開発当初、僕も勘違いしており後から修正したものになります。

引用いただいているサイトは、おそらく英語のオリジナルドキュメントを直訳的に日本語に置き換えているので、不偏分散を標本分散としているのだと思われます。

@yuiki-iwayama
Copy link
Author

@KazuhiroM
ご回答ありがとうございます.
ややこしいですね...,大変勉強になりました!

@KazuhiroM
Copy link
Contributor

しかし、標本(サンプリング)しているわけではないのに標本という言葉を使ってしまって分かりにくい問題にしてしまったな、と感じているところはあります。

不偏分散のことを標本分散ともいうことがありますし。

ということで、問題文の見直しを図っていきます!

イシューありがとうございました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants