はじめに
この記事では、提供されたデータセットを活用し、持続可能な社会を目指すための分析と提言を行い、その過程と結果を共有します。
データセットの出典元 こちら
ダイジェスト
インサイト
- 世界全体のCO2排出量のうち、わずか10カ国が68%を、30カ国が88%を排出しています。
- CO2排出量とGDPの間には78%という高い相関関係があり、経済活動と環境負荷の密接な関連性を示しています。
- 上位10カ国でCO2排出量は全体の68%、GDPは65%と大きな割合を占め、経済力や環境に大きな格差が生じています。
*赤色がCO2排出量上位国であり、緑になるにつれて排出量が少ないことを表しています。
*各国のGDP(国内総生産)を表すグラフ
提案
- 経済活動と環境負荷の関連性が高いことから、経済成長と環境保護を両立させるために、環境技術やクリーンエネルギーへの投資を促進する政策が必要です。
- 先進国からの技術移転や能力構築の支援を通じて、新たな産業の育成と雇用創出を図ることが重要です。
目次
1 シナリオ
データセットは、世界各国のCO2排出量、エネルギー消費量、総人口、GDPなどの情報を含んでいます。
これらのデータを分析することで、環境と経済の関連性を探り、持続可能な社会を実現するための具体的な施策を考えます。
2010年を対象に分析しました。
データセットは下記から提供されたものです。
CO2
Enery data(xlsx形式)
Total Population(xlsx形式)
GDP Total(xlsx形式)
ファイルの内容は以下のようになっています。
2. 準備
1.上記ファイルのダウンロードを行います。
2.Excel形式のファイルをBigQueryで直接読み込むことはできませんので、まずGoogleスプレッドシートにインポートし、その後、ファイルメニューのダウンロードからCSV形式に変換します。
注釈
4ファイルあるため、同じ手順で合計4回行います。
3.BigQuery - プロジェクトを作成 - データセット作成 - テーブル作成の手順を踏みます。
4.準備完了です。
3. 分析と共有
重複確認
1.CO2 Data
SELECT
CO2__kt_,
COUNT(*) AS occurrence
FROM
CO2.co2_data
WHERE
year = 2010
GROUP BY
CO2__kt_
HAVING
COUNT(*) > 1;
-
NULL
は無視して分析を行います。 - 重複が確認されたため、分析する際は
DISTINCT
を用いて重複を除外します。
2.Energy Data
SELECT
Energy_use__kg_of_oil_equivalent_per_capita_,
COUNT(*) AS occurrence
FROM
CO2.Energy_data
WHERE
year = 2010
GROUP BY
Energy_use__kg_of_oil_equivalent_per_capita_
HAVING
COUNT(*) > 1;
-
NA
が確認されたため、分析の際はNA
をNULLIF関数
を用いてNULL
に置き換えます。
ほか2項目
3.Total Population
SELECT
Population_Total,
COUNT(*) AS occurrence
FROM
CO2.total_population
WHERE
year = 2010
GROUP BY
Population_Total
HAVING
COUNT(*) > 1;
・問題なしです。
4.GDP
SELECT
_current_GDP_,
COUNT(*) AS occurrence
FROM
CO2.GDP
WHERE
year = 2010
GROUP BY
_current_GDP_
HAVING
COUNT(*) > 1;
-
NA
が確認されたため、分析の際はNA
をNULLIF関数
を用いてNULL
に置き換えます。
欠損値確認
1.CO2 Data
SELECT
COUNT(*)
FROM
CO2.co2_data
WHERE
CO2__kt_ IS NULL
AND year = 2010;
- 欠損値が確認されましたが、補完するためのDMLクエリの実行には料金が発生します。そのため、今回は欠損値を無視して分析を行うこととします。
ほか3項目
2.Energy Data
SELECT
COUNT(*)
FROM
CO2.Energy_data
WHERE
Energy_use__kg_of_oil_equivalent_per_capita_ IS NULL
AND year = 2010;
3.Total Population
SELECT
COUNT(*)
FROM
CO2.total_population
WHERE
Population_Total IS NULL
AND year = 2010;
4.GDP
SELECT
COUNT(*) AS occurrence_of_missing_values
FROM
CO2.GDP
WHERE
_current_GDP_ IS NULL
AND year = 2010;
全て問題なしです。
3-1. CO2 dataを分析
CO2データから順に分析を行います。
データを確認します。
- 先ほど重複が確認されたため、DISTINCTを用いて重複を除外します。
- CO2排出量の合計
- CO2排出量の平均
- CO2排出量の上位10カ国が全体に占める割合
- CO2排出量の上位30カ国が全体に占める割合
- 上位10カ国を可視化
- 上記で得た結果をもとにグラフ化
1.CO2排出量の合計
SELECT
SUM(DISTINCT CO2__kt_) AS CO2_kt
FROM
CO2.co2_data
WHERE
year = 2010;
- 合計は31.3ギガトン(Gt)です。
注釈
1キロトン(kt)は1,000トン、1メガトン(Mt)は1,000,000トン、1ギガトン(Gt)は1,000,000,000トンに相当します。
2.CO2排出量の平均
SELECT
AVG(DISTINCT CO2__kt_) AS CO2_kt
FROM
CO2.co2_data
WHERE
year = 2010 ;
- 平均は162.2メガトン(Mt)です。
3.CO2排出量の上位10カ国が全体に占める割合
WITH
Top_10_Countries AS (
SELECT
Country_name,
CO2__kt_
FROM
CO2.co2_data
WHERE
year = 2010
ORDER BY
CO2__kt_ DESC
LIMIT
10 )
SELECT
SUM(CO2__kt_) / (
SELECT
SUM(CAST(CO2__kt_ AS FLOAT64))
FROM
CO2.co2_data
WHERE
year = 2010) AS top_10_percentage
FROM
Top_10_Countries;
WITH関数
を用いる事でクエリを簡潔にしました。
- わずか10カ国でCO2排出量全体の68%(21.4Gt)を占めています。
4.CO2排出量の上位30カ国が全体に占める割合
WITH
Top_30_Countries AS (
SELECT
Country_name,
CO2__kt_
FROM
CO2.co2_data
WHERE
year = 2010
ORDER BY
CO2__kt_ DESC
LIMIT
30 )
SELECT
SUM(CO2__kt_) / (
SELECT
SUM(CAST(CO2__kt_ AS FLOAT64))
FROM
CO2.co2_data
WHERE
year = 2010) AS top_30_percentage
FROM
Top_30_Countries;
- 上位30カ国で全体の88%(27.7Gt)を占めています。
5.上位10カ国を可視化
SELECT
*
FROM
CO2.co2_data
WHERE
Year = 2010
ORDER BY
CO2__kt_ DESC
LIMIT
10;
- 中国とアメリカが世界各国と比較して、抜きんでています。
- 先進国や人口の多い国がランクインしている印象を受けます。
- 上記に該当している印象が薄いイランとサウジアラビアがランクインしていることから、エネルギー資源の豊富さと相関がありそうです。
Tableauを用いて可視化しました。
6.上記で得た結果をもとにグラフ化
- 平均は162.2メガトンのため、ほぼ目視できない状態になっています。
- 世界全体のCO2排出量のうち、わずか10カ国が68%を、30カ国が88%を排出しています。
- 残りの136カ国は全体の12%しかCO2を排出していないことが分かります。
*赤色が排出量上位国であり、緑になるにつれて排出量が少ないことを表しています。
3-2. Energy dataを分析
データを確認します。
- 上記で
NA
が確認されたため、NA
をNULLIF関数
を用いてNULL
に置き換えます。 - データ型が
STRING(文字列)
であるためCAST関数
を使用してFLOAT64(数値)
に変換します。
- エネルギー使用量の合計
- エネルギー使用量の平均
- エネルギー使用量の上位10カ国が全体に占める割合
- エネルギー使用量の上位30カ国が全体に占める割合
- 上位10カ国を可視化
- 上記で得た結果をもとにグラフ化
1.一人当たりのエネルギー使用量の合計
SELECT
SUM(CAST(NULLIF(Energy_use__kg_of_oil_equivalent_per_capita_, 'NA') AS FLOAT64)) AS Energy_Sum
FROM
CO2.Energy_data
WHERE
year = 2010;
- エネルギー使用量合計は372トンです。
2.エネルギー使用量の平均
SELECT
AVG(CAST(NULLIF(Energy_use__kg_of_oil_equivalent_per_capita_, 'NA') AS FLOAT64)) AS Energy_Avg
FROM
CO2.Energy_data
WHERE
year = 2010;
- 1人当たりのエネルギー使用量の平均は2,643キログラムです。
3.エネルギー使用量の上位10カ国が全体に占める割合
WITH
Top_10_Countries AS (
SELECT
Country,
CAST(NULLIF(Energy_use__kg_of_oil_equivalent_per_capita_, 'NA') AS FLOAT64) AS Energy_use
FROM
CO2.Energy_data
WHERE
year = 2010
AND Energy_use__kg_of_oil_equivalent_per_capita_ != 'NA'
ORDER BY
Energy_use DESC
LIMIT
10 )
SELECT
SUM(Energy_use) / (
SELECT
SUM(CAST(NULLIF(Energy_use__kg_of_oil_equivalent_per_capita_, 'NA') AS FLOAT64))
FROM
CO2.Energy_data
WHERE
year = 2010
AND Energy_use__kg_of_oil_equivalent_per_capita_ != 'NA') AS top_10_percentage
FROM
Top_10_Countries;
- 上位10カ国で全体の30%(113トン)を占めています。
4.エネルギー使用量の上位30カ国が全体に占める割合
WITH
Top_30_Countries AS (
SELECT
Country,
CAST(NULLIF(Energy_use__kg_of_oil_equivalent_per_capita_, 'NA') AS FLOAT64) AS Energy_use
FROM
CO2.Energy_data
WHERE
year = 2010
AND Energy_use__kg_of_oil_equivalent_per_capita_ != 'NA'
ORDER BY
Energy_use DESC
LIMIT
30 )
SELECT
SUM(Energy_use) / (
SELECT
SUM(CAST(NULLIF(Energy_use__kg_of_oil_equivalent_per_capita_, 'NA') AS FLOAT64))
FROM
CO2.Energy_data
WHERE
year = 2010
AND Energy_use__kg_of_oil_equivalent_per_capita_ != 'NA') AS top_30_percentage
FROM
Top_30_Countries;
- 上位30カ国で全体の58%(218トン)を占めています。
5.上位10カ国を可視化
SELECT
*
FROM
CO2.Energy_data
WHERE
Year = 2010
ORDER BY
SAFE_CAST(NULLIF(Energy_use__kg_of_oil_equivalent_per_capita_,'NA') AS FLOAT64) DESC
LIMIT
10;
エネルギー消費との相関が薄い印象の国が上位にランクインしてきたため調査したところ、以下のようなインサイトを得られました。
- 1位のアイスランドは自然エネルギー(再生可能エネルギー)が豊富で、電力を100%自然エネルギーで賄っています。参照
- ほか上位の国は、世界有数の石油資源国です。
6.上記で得た結果をもとにグラフ化
- CO2に続いて、平均をほぼ目視できない状態になっています。
- エネルギーは生活するうえで不可欠な資源であるため、他の項目ほど上位の国が占める割合は大きくありません。
*緑はNULL値
3-3. Total Population(総人口)の分析
データを確認します。
- データ型が
STRING(文字列)
であるためCAST関数
を使用してFLOAT64(数値)
に変換します。
- 世界人口の合計
- 世界人口の平均
- 世界人口の上位10カ国が全体に占める割合
- 世界人口の上位30カ国が全体に占める割合
- 上位10カ国を可視化
- 上記で得た結果をもとにグラフ化
1.世界人口の合計
SELECT
SUM(CAST(NULLIF(Population_Total, 'NA') AS FLOAT64)) AS Population_Sum
FROM
CO2.total_population
WHERE
year = 2010;
- 世界の人口は68億9千人です。
2.世界人口の平均
SELECT
AVG(CAST(NULLIF(Population_Total, 'NA') AS FLOAT64)) AS Population_Avg
FROM
CO2.total_population
WHERE
year = 2010;
- 一つの国当たりの人口平均は1,589万人です。
3.世界人口の上位10カ国が全体に占める割合
WITH
Top_10_Countries AS (
SELECT
Country,
CAST(NULLIF(Population_Total, 'NA') AS FLOAT64) AS Total_pop
FROM
CO2.total_population
WHERE
year = 2010
AND Population_Total != 'NA'
ORDER BY
Total_pop DESC
LIMIT
10 )
SELECT
SUM(Total_pop) / (
SELECT
SUM(CAST(NULLIF(Population_Total, 'NA') AS FLOAT64))
FROM
CO2.total_population
WHERE
year = 2010
AND Population_Total != 'NA') AS top_10_percentage
FROM
Top_10_Countries;
- 上位10カ国で、世界人口の59%(40億7千人)を占めています。
4.世界人口の上位30カ国が全体に占める割合
WITH
Top_30_Countries AS (
SELECT
Country,
CAST(NULLIF(Population_Total, 'NA') AS FLOAT64) AS Total_pop
FROM
CO2.total_population
WHERE
year = 2010
AND Population_Total != 'NA'
ORDER BY
Total_pop DESC
LIMIT
30 )
SELECT
SUM(Total_pop) / (
SELECT
SUM(CAST(NULLIF(Population_Total, 'NA') AS FLOAT64))
FROM
CO2.total_population
WHERE
year = 2010
AND Population_Total != 'NA') AS top_30_percentage
FROM
Top_30_Countries;
- 上位30カ国で、世界人口の78%(54億2千人)を占めています。
5.上位10カ国を可視化。
SELECT
*
FROM
CO2.total_population
WHERE
Year = 2010
ORDER BY
SAFE_CAST(NULLIF(population_total,'NA') AS FLOAT64) DESC
LIMIT
10;
- 中国とインドが人口10億人を超えており世界各国と比較して抜き出ています。
- アジアから中国、インド、インドネシア、パキスタン、バングラディッシュ、日本の6カ国がランクインしています。
- ナイジェリアはアフリカ大陸から唯一ランクインしており、アフリカ随一の人口大国です。
6.上記で得た結果をもとにグラフ化
- 2024年1月時点での国連加盟国数が196カ国であることを考慮すると、平均人口が1,589万人は少なすぎる可能性があります。
- インドや中国など人口大国が存在するため、世界人口に対する上位国の割合が高くなっています。
3-4. GDP(国内総生産)を分析
データを確認します。
- 上記で
NA
が確認されたため、NA
をNULLIF関数
を用いてNULL
に置き換えます。 - データ型が
STRING(文字列)
であるためCAST関数
を使用してFLOAT64(数値)
に変換します。 -
_current_GDP_列
に文字列(カンマ)
が含まれるため、REPLACE関数
を用いて空文字に置き換えました。
- GDPの合計
- GDP1国当たりの平均
- GDP上位10カ国が全体に占める割合
- GDP上位30カ国が全体に占める割合
- 上位10カ国を可視化
- 上記で得た結果をもとにグラフ化
1.GDPの合計
SELECT
SUM(SAFE_CAST(NULLIF(REPLACE(_current_GDP_, ',', ''), 'NA') AS FLOAT64)) AS GDP_Sum
FROM
CO2.GDP
WHERE
year = 2010;
- GDPの合計は65兆5千億ドルです。
2.GDPの平均
SELECT
AVG(SAFE_CAST(NULLIF(REPLACE(_current_GDP_, ',', ''),'NA') AS FLOAT64)) AS GDP_Avg
FROM
CO2.GDP
WHERE
year = 2010 ;
- GDPの1国当たりの平均は3,183億ドルです。
3.GDP上位10カ国が全体に占める割合
WITH Top_10_Countries AS (
SELECT
Country,
SAFE_CAST(NULLIF(REPLACE(_current_GDP_, ',', ''), 'NA') AS FLOAT64) AS GDP
FROM
CO2.GDP
WHERE
year = 2010
AND _current_GDP_ != 'NA'
ORDER BY
GDP DESC
LIMIT
10
)
SELECT
SUM(GDP) / (
SELECT
SUM(SAFE_CAST(NULLIF(REPLACE(_current_GDP_, ',', ''), 'NA') AS FLOAT64))
FROM
CO2.GDP
WHERE
year = 2010
AND _current_GDP_ != 'NA'
) AS top_10_percentage
FROM
Top_10_Countries;
- 上位10カ国でGDP全体の65%(42兆9千億ドル)を占めています。
4.GDP上位30カ国が全体に占める割合
WITH Top_30_Countries AS (
SELECT
Country,
SAFE_CAST(NULLIF(REPLACE(_current_GDP_, ',', ''), 'NA') AS FLOAT64) AS GDP
FROM
CO2.GDP
WHERE
year = 2010
AND _current_GDP_ != 'NA'
ORDER BY
GDP DESC
LIMIT
30
)
SELECT
SUM(GDP) / (
SELECT
SUM(SAFE_CAST(NULLIF(REPLACE(_current_GDP_, ',', ''), 'NA') AS FLOAT64))
FROM
CO2.GDP
WHERE
year = 2010
AND _current_GDP_ != 'NA'
) AS top_30_percentage
FROM
Top_30_Countries;
- 上位30カ国でGDP全体の86%(57兆ドル)を占めています。
5.GDP上位10カ国を可視化
SELECT
*
FROM
CO2.GDP
WHERE
Year = 2010
ORDER BY
SAFE_CAST(REPLACE(_current_GDP_, ',', '') AS FLOAT64) DESC
LIMIT
10;
- 2010年のGDP(国内総生産)が最も高い国はアメリカ合衆国であり、約14兆9千億ドルのGDPを有しており、2位の中国に2倍の差があります。
- ドイツ、フランス、イギリス、イタリアの欧州各国が、他の項目とは異なり上位にランクインしています。
- アメリカと政治・経済的につながりの深い国が、上位には数多くランクインしています。
6.上記で得た結果をもとにグラフ化
- 世界のGDPが上位30カ国に集中しているため、経済力に大きな格差が生じています。
- 一部の上位国が豊かである一方で、他の国々が貧困層に属しています。
- 言い換えれば、ほとんどの国には経済成長の潜在性を秘めており、新興国となり得る可能性があります。
4. 相関関係を探る
上記の分析結果から、
- エネルギー資源の豊富な国がCO2排出量と相関がありそう。
- CO2を大量に排出している国は、GDP(国内総生産)も高そう等のインサイトを得ました。
これらのインサイトを基に、相関関係を求めました。
4-1. CO2と各項目の相関関係を探る
CO2排出量と総人口における相関関係
SELECT
CORR(SAFE_CAST(CO2__kt_ AS FLOAT64),SAFE_CAST(NULLIF(Population_Total, 'NA') AS FLOAT64 ))AS correlation
FROM
CO2.co2_data AS CO2_data
JOIN
CO2.total_population AS population_data
ON
CO2_data.Country_Name = population_data.Country
WHERE
CO2__kt_ IS NOT NULL
AND NULLIF(Population_Total, 'NA') IS NOT NULL
AND population_data.Year = 2010
AND CO2_data.Year = 2010;
- CO2排出量と総人口の間に55%の相関関係があることから、人口の増加が地球温暖化や気候変動などの環境問題に対する負荷を増加させる可能性があります。
CO2排出量とGDP(国内総生産)における相関関係
SELECT
CORR(SAFE_CAST(CO2__kt_ AS FLOAT64),SAFE_CAST(NULLIF(REPLACE(_current_GDP_, ',', ''),'NA') AS FLOAT64)) AS correlation
FROM
CO2.co2_data AS CO2_data
JOIN
CO2.GDP AS GDP
ON
CO2_data.Country_Name = GDP.Country
WHERE
CO2__kt_ IS NOT NULL
AND NULLIF(REPLACE(_current_GDP_, ',', ''), 'NA') IS NOT NULL
AND CO2_data.Year = 2010
AND GDP.Year = 2010;
-
CO2排出量とGDPの間の78%にも及ぶ高い相関関係は、経済活動と環境負荷の密接な関連性を示しています。
-
経済が成長するにつれて、エネルギー需要や生産活動が増加し、それに伴ってCO2排出量も増加する傾向があることを窺えます。
4-2. GDPと各項目の相関関係を探る
GDP(国内総生産)と総人口における相関関係
SELECT
CORR(SAFE_CAST(NULLIF(Population_Total, 'NA') AS FLOAT64), SAFE_CAST(NULLIF(REPLACE(_current_GDP_, ',', ''), 'NA') AS FLOAT64)) AS correlation
FROM
CO2.total_population AS population_data
JOIN
CO2.GDP AS GDP
ON
population_data.Country = GDP.Country
WHERE
NULLIF(Population_Total, 'NA') IS NOT NULL
AND NULLIF(REPLACE(_current_GDP_, ',', ''), 'NA') IS NOT NULL
AND population_data.Year = 2010
AND GDP.Year = 2010;
-
総人口とGDP(国内総生産)における相関関係が32%と低いことから、人口の増加が経済成長に与える影響は限定的と言えそうです。
-
GDPに与える影響力は技術革新や経済政策の影響の方が大きいと考えられます。
4-3. Energy dataと各項目の相関関係を探る
Energy dataとの相関関係を分析します。
Energy dataテーブルには、一人当たりのエネルギー使用量のデータ(per_capita
)しか含まれていないため、CO2テーブルとGDPテーブルもそれぞれ総人口で割ることで、一人当たりのCO2排出量と一人当たりのGDP(国内総生産)を求めます。
一人当たりのEnergy dataとCO2排出量の相関関係を求めます。
WITH CO2_Energy_per_capita_data AS (
SELECT
CO2_data.Country_Name AS Country,
CO2_data.Year AS Year,
SUM(SAFE_CAST(CO2_data.CO2__kt_ AS FLOAT64)) / SUM(SAFE_CAST(NULLIF(Population_Total, 'NA') AS FLOAT64)) AS CO2_per_capita,
SUM(SAFE_CAST(Energy_data.Energy_use__kg_of_oil_equivalent_per_capita_ AS FLOAT64)) AS Energy_per_capita
FROM
CO2.co2_data AS CO2_data
JOIN
CO2.Energy_data AS Energy_data
ON
CO2_data.Country_Name = Energy_data.Country
AND CO2_data.Year = Energy_data.Year
JOIN
CO2.total_population AS population_data
ON
CO2_data.Country_Name = population_data.Country
WHERE
CO2_data.CO2__kt_ IS NOT NULL
AND NULLIF(Population_Total, 'NA') IS NOT NULL
AND NULLIF(Energy_data.Energy_use__kg_of_oil_equivalent_per_capita_, 'NA') IS NOT NULL
AND population_data.Year = 2010
AND CO2_data.Year = 2010
AND Energy_data.Year = 2010
GROUP BY
CO2_data.Country_Name, CO2_data.Year
)
SELECT
CORR(CO2_per_capita, Energy_per_capita) AS correlation_coefficient
FROM
CO2_Energy_per_capita_data;
- 87%にも及ぶ強い正の相関があることから、エネルギー使用量が多い国は一般にCO2排出量も多い傾向があると言えます。
一人当たりのEnergy dataとGDP(国内総生産)の相関関係を求めます。
WITH
CO2_Energy_per_capita_data AS (
SELECT
GDP.Country AS Country,
GDP.Year AS Year,
SUM(SAFE_CAST(NULLIF(REPLACE(_current_GDP_, ',', ''),'NA') AS FLOAT64)) / SUM(SAFE_CAST(NULLIF(Population_Total, 'NA') AS FLOAT64)) AS GDP_per_capita,
SUM(SAFE_CAST(Energy_data.Energy_use__kg_of_oil_equivalent_per_capita_ AS FLOAT64)) AS Energy_per_capita
FROM
CO2.GDP AS GDP
JOIN
CO2.Energy_data AS Energy_data
ON
GDP.Country = Energy_data.Country
AND GDP.Year = Energy_data.Year
JOIN
CO2.total_population AS population_data
ON
GDP.Country = population_data.Country
WHERE
NULLIF(_current_GDP_, 'NA') IS NOT NULL
AND NULLIF(Population_Total, 'NA') IS NOT NULL
AND NULLIF(Energy_data.Energy_use__kg_of_oil_equivalent_per_capita_, 'NA') IS NOT NULL
AND population_data.Year = 2010
AND GDP.Year = 2010
AND Energy_data.Year = 2010
GROUP BY
GDP.Country,
GDP.Year )
SELECT
CORR(GDP_per_capita, Energy_per_capita) AS correlation_coefficient
FROM
CO2_Energy_per_capita_data;
- 67%と比較的高い相関関係が求められました。一人当たりのGDPが高い国ほど、一人当たりのエネルギー使用量も比較的高い傾向があると言えます。
5. その他(補足)
CO2排出量を総人口で割り算することによって、一人当たりのCO2排出量を求めます。
その後上位10カ国をグラフにまとめます。
SELECT
CO2_data.Country_Name AS Country,
SUM(SAFE_CAST(CO2_data.CO2__kt_ AS FLOAT64)) / SUM(SAFE_CAST(NULLIF(Population_Total, 'NA') AS FLOAT64)) AS CO2_per_capita
FROM
CO2.co2_data AS CO2_data
JOIN
CO2.total_population AS population_data
ON
CO2_data.Country_Name = population_data.Country
WHERE
CO2_data.CO2__kt_ IS NOT NULL
AND NULLIF(Population_Total, 'NA') IS NOT NULL
AND population_data.Year = 2010
AND CO2_data.Year = 2010
GROUP BY
CO2_data.Country_Name
ORDER BY
CO2_per_capita DESC;
- 上記の国々は、主に砂漠地帯に位置しています。気候が乾燥しているため、インフラに多くのエネルギーが必要とされていると推測します。
- 世界でも有数の豊富な石油や天然ガスの埋蔵量を持っています。
- 人口が少ないため、一人当たりのCO2排出量が高くなりやすい傾向にあると推測します。
一人当たりのGDP(国内総生産)を求めます。
上位10カ国をグラフにまとめます。
SELECT
GDP.Country AS Country,
SUM(SAFE_CAST(NULLIF(REPLACE(_current_GDP_, ',', ''),'NA') AS FLOAT64)) / SUM(SAFE_CAST(NULLIF(Population_Total, 'NA') AS FLOAT64)) AS GDP_per_capita
FROM
CO2.GDP AS GDP
JOIN
CO2.total_population AS population_data
ON
GDP.Country = population_data.Country
WHERE
NULLIF(_current_GDP_, 'NA') IS NOT NULL
AND NULLIF(Population_Total, 'NA') IS NOT NULL
AND population_data.Year = 2010
AND GDP.Year = 2010
GROUP BY
GDP.Country
ORDER BY
GDP_per_capita DESC;
- タックスヘイブンであるモナコ、リヒテンシュタイン、ケイマン諸島が含まれています。
- 世界的な金融機関が集まる北欧の金融大国も数多くランクインしています。
- ランクインしている国は小国で人口が少ないため、富裕層個人の与える影響力が大きいと推測します。
エネルギー使用量を合計しました。
元のEnergy_data(一人当たり)と人口データをかけ合わせます。
SELECT
Energy_data.Country AS Country,
SUM(SAFE_CAST(NULLIF(Energy_data.Energy_use__kg_of_oil_equivalent_per_capita_,'NA') AS FLOAT64) * SAFE_CAST(NULLIF(Population_Total, 'NA') AS FLOAT64)) AS Energy_use_Sum
FROM
CO2.Energy_data AS Energy_data
JOIN
CO2.total_population AS population_data
ON
Energy_data.Country = population_data.Country
WHERE
NULLIF(Energy_data.Energy_use__kg_of_oil_equivalent_per_capita_,'NA') IS NOT NULL
AND NULLIF(Population_Total, 'NA') IS NOT NULL
AND population_data.Year = 2010
AND Energy_data.Year = 2010
GROUP BY
Energy_data.Country
ORDER BY
Energy_use_Sum DESC;
- 相関関係はこちらで一人当たりの値を用いて計算したため割愛します。
エネルギー使用量上位10カ国が全体に占める割合
WITH Energy_Sum_By_Country AS (
SELECT
Energy_data.Country AS Country,
SUM(SAFE_CAST(NULLIF(Energy_data.Energy_use__kg_of_oil_equivalent_per_capita_,'NA') AS FLOAT64) * SAFE_CAST(NULLIF(Population_Total, 'NA') AS FLOAT64)) AS Energy_use_Sum
FROM
CO2.Energy_data AS Energy_data
JOIN
CO2.total_population AS population_data
ON
Energy_data.Country = population_data.Country
WHERE
NULLIF(Energy_data.Energy_use__kg_of_oil_equivalent_per_capita_,'NA') IS NOT NULL
AND NULLIF(Population_Total, 'NA') IS NOT NULL
AND population_data.Year = 2010
AND Energy_data.Year = 2010
GROUP BY
Energy_data.Country
),
Total_Energy_Use AS (
SELECT
SUM(Energy_use_Sum) AS Total_Energy
FROM
Energy_Sum_By_Country
),
Top_10_Energy_Using_Countries AS (
SELECT
Country,
Energy_use_Sum
FROM
Energy_Sum_By_Country
ORDER BY
Energy_use_Sum DESC
LIMIT
10
)
SELECT
SUM(Energy_use_Sum) / (SELECT Total_Energy FROM Total_Energy_Use) AS Top_10_Percentage
FROM
Top_10_Energy_Using_Countries;
- 上位10カ国でエネルギー使用量全体の65%を占めています。
エネルギー使用量上位30カ国が全体に占める割合
WITH Energy_Sum_By_Country AS (
SELECT
Energy_data.Country AS Country,
SUM(SAFE_CAST(NULLIF(Energy_data.Energy_use__kg_of_oil_equivalent_per_capita_,'NA') AS FLOAT64) * SAFE_CAST(NULLIF(Population_Total, 'NA') AS FLOAT64)) AS Energy_use_Sum
FROM
CO2.Energy_data AS Energy_data
JOIN
CO2.total_population AS population_data
ON
Energy_data.Country = population_data.Country
WHERE
NULLIF(Energy_data.Energy_use__kg_of_oil_equivalent_per_capita_,'NA') IS NOT NULL
AND NULLIF(Population_Total, 'NA') IS NOT NULL
AND population_data.Year = 2010
AND Energy_data.Year = 2010
GROUP BY
Energy_data.Country
),
Total_Energy_Use AS (
SELECT
SUM(Energy_use_Sum) AS Total_Energy
FROM
Energy_Sum_By_Country
),
Top_30_Energy_Using_Countries AS (
SELECT
Country,
Energy_use_Sum
FROM
Energy_Sum_By_Country
ORDER BY
Energy_use_Sum DESC
LIMIT
30
)
SELECT
SUM(Energy_use_Sum) / (SELECT Total_Energy FROM Total_Energy_Use) AS Top_30_Percentage
FROM
Top_30_Energy_Using_Countries;
- 上位30カ国でエネルギー使用量全体の86%を占めています。
Tableau
Tableauで図を作成するまでの過程を記載します。
1.ファイルからデータセットをダウンロードを行います。
2.YearとCountryで各項目を結合します。
3.Yearが数値(整数)形式になっているため、日付形式に変更します。
4.準備完了です。
6. まとめ
データから得られたインサイト
- CO2をより多く排出している国には、先進国や人口が多い国が多く含まれています。
- エネルギーは生活に不可欠な資源であるため、他の項目ほど上位の国が占める割合は大きくありません。
- 総人口では、中国とインドが10億人を超えており、世界各国と比較して抜き出ており、アジアから中国、インド、インドネシア、パキスタン、バングラディッシュ、日本の6カ国がランクインしています。
- GDPでは、アメリカや政治・経済的につながりの深い国が上位に数多くランクインしています。
- 上位10カ国でCO2排出量は全体の68%、エネルギー消費量は65%、総人口は59%、GDPは65%と大きな割合を占め、それに伴い各項目における平均は非常に低くなっています。
- 一人当たりのGDPが多い国はタックスヘイブンや世界的な金融機関が置かれている小国でした。
相関関係から見えるインサイト
- CO2排出量とGDPの間には78%という高い相関関係があり、経済活動と環境負荷の密接な関連性を示しています。
- 総人口とGDP(国内総生産)における相関関係が32%と低いことから、人口の増加が経済成長に与える影響は限定的と言えそうです。
- CO2排出量と総人口の間には55%の相関関係があり、人口の増加が環境問題に対する負荷を増加させる可能性があります。
- エネルギー使用量とCO2排出量の間には87%の強い正の相関があり、エネルギー使用量が多い国は一般にCO2排出量も多い傾向があります。
持続可能な社会のための提言
- 経済活動と環境負荷の関連性が高いことから、経済成長と環境保護を両立させるために、環境技術やクリーンエネルギーへの投資を促進する政策が必要です。
- 人口増加と経済成長の関連性が限定的であることから、人口増加に対する適切な対策として、教育や社会インフラ整備の充実、新たな産業の育成と雇用創出を図ることなどが重要です。
- 経済成長を促進するためには、ドル($)を稼ぐことができる事業の推進が重要です。
7. 振り返りと展望
振り返り
- データセットには欠損値や異常値が多く、それらを適切に処理する方法が分からず苦戦した。
- 複数のデータソースを統合する際のコードが長く難解でした、サブクエリを容易に書けるようになりたい。
- 初期段階では冗長なコードを数多く作成してしまい、自身でも理解が難解であったり、訂正に時間を要した。
こだわり
- クエリの知識が無い方でもわかりやすいように、何が行われているかや結果を明確に伝えるため、グラフや箇条書きを積極的に活用しました。
- 色彩や軸ラベルを用いてグラフを理解しやすくすることにも注力しました。
展望
- ウィンドウ関数を活用して、各項目の年代別成長率(1960年から2010年までなど)を分析できるようにしたい。
- レポートやグラフを作成する際のデータビジュアライゼーションスキルを向上させたい。
- 相関関係をグラフで表せるようになりたい。