RESASで市の成績を出してみたら掛川市の人口は偏差値50.5


RESAS-APIPHPであれこれする環境ができたので、すこし試してみました。

とりあえずやってみたかったのは、自分の市の成績表を作ってみようかと。
県内市町村の2015年総人口の一覧をCSVにして、それから市の偏差値を求めるプログラムを作ってみました。

[php]
<?php
$base_url = 'https://opendata.resas-portal.go.jp/’;

$headers = ['X-API-KEY: APIキー’];
$request_sec = 'api/v1/cities’;
$reqyest_para = "?prefCode=22"; //対象の都道府県コード
$request_url = $base_url . $request_sec . $reqyest_para;
$target = 22213; // 偏差値を求める市町村コード
$curl = curl_init();

curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

// 市町村を取得
curl_setopt($curl, CURLOPT_URL, $request_url);
$response = curl_exec($curl);

// 市町村一覧のJSONを配列に格納
$prefectures = json_decode($response, true)['result’];

// CSV形式で出力
foreach($prefectures as $pref):
if($pref['bigCityFlag’] == 0 || $pref['bigCityFlag’] == 2){
if($target == $pref['cityCode’]){
echo '<strong>’;
}
echo $pref['prefCode’];
echo ',’;
echo $pref['cityCode’];
echo ',’;
echo $pref['cityName’];
//人口データを取得
$jk_request_sec = 'api/v1/population/composition/perYear’;
$jk_reqyest_para = "?prefCode=" . $pref['prefCode’] . "&cityCode=" . $pref['cityCode’];
$jk_request_url = $base_url . $jk_request_sec . $jk_reqyest_para;
$curl = curl_init();

curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

curl_setopt($curl, CURLOPT_URL, $jk_request_url);
$jk_response = curl_exec($curl);

// 人口データをJSONを配列に格納し求める人口を出力
$jinko = json_decode($jk_response, true)['result’];
$city_jinko = $jinko["data"][0]['data’][7]['value’]; //総人口の2015年データを取得
echo ',’;
print($city_jinko);

// 人口を配列に格納
$jinkodata[] = $city_jinko;
// 偏差値を求める市町村の人口を格納
if($target == $pref['cityCode’]){
$value = $city_jinko;
echo '</strong>’;
}

echo '<br>’;
}
endforeach;

//偏差値の計算
$input = $jinkodata;

$sumsq = 0;
$n = count($input);
$m = array_sum($input) / $n; // 平均

foreach($input as $a){
$sumsq += pow(abs($a – $m), 2);
}

$vp = ($n > 0) ? $sumsq / $n : 0; // 標本分散
$sdp = sqrt($vp); // 母標準偏差
$score = ($value – $m) / $sdp * 10 + 50; // 偏差値

printf('平均: %f, 標本分散: %f, 母標準偏差: %f, 偏差値: %f’, $m, $vp, $sdp, $score);
?>

[/php]

出力結果がこちら

[code]
22,22100,静岡市,700208
22,22130,浜松市,791386
22,22203,沼津市,194675
22,22205,熱海市,37052
22,22206,三島市,109952
22,22207,富士宮市,130270
22,22208,伊東市,68767
22,22209,島田市,97555
22,22210,富士市,251137
22,22211,磐田市,165389
22,22212,焼津市,141540
22,22213,掛川市,114286
22,22214,藤枝市,140675
22,22215,御殿場市,90403
22,22216,袋井市,85716
22,22219,下田市,23344
22,22220,裾野市,54965
22,22221,湖西市,58975
22,22222,伊豆市,31808
22,22223,御前崎市,33901
22,22224,菊川市,46300
22,22225,伊豆の国市,47903
22,22226,牧之原市,47231
22,22301,東伊豆町,13054
22,22302,河津町,7559
22,22304,南伊豆町,8942
22,22305,松崎町,7105
22,22306,西伊豆町,8521
22,22325,函南町,37780
22,22341,清水町,32209
22,22342,長泉町,41957
22,22344,小山町,19744
22,22424,吉田町,30348
22,22429,川根本町,7247
22,22461,森町,18595
平均: 105614.257143, 標本分散: 28280674023.448154, 母標準偏差: 168168.588100, 偏差値: 50.515658
[/code]

静岡県内35市町村中、掛川市の総人口は9番目。
成績でいえば10段階中7~8 ちょっと良いぐらいかな、と思っていたのですが、偏差値としては 50.5
10段階評価と偏差値の関係は、下の表の感じだと思いますので

10段階評価 偏差値
10 70以上
9 70
8 65
7 60
6 55
5 50
4 45
3 40
2 35
1 30

掛川市の県内市町村総人口の10段階評価は 6 と、ごくごく平均的な成績なんですね。

漠然とした印象が、ちゃんとデータを見てみると違っていることはよくあることで、こういった統計データを解析してみると、また違った発見がありそうです。

php, 掛川resas

Posted by inqsite