SQL Serverでサブクエリとウィンドウ関数のパフォーマンスを比較した.用いたデータベースはHeatStrokeDBで,熱中症の搬送人員と最高気温との相関関係を可視化し閾値をχ二乗検定するで作成したものである.
比較するツールはSET STATISTCS PROFILE ONコマンドである.クエリストアは筆者の環境では機能しなかった.
Co-evolution of human and technology
SQL Serverでサブクエリとウィンドウ関数のパフォーマンスを比較した.用いたデータベースはHeatStrokeDBで,熱中症の搬送人員と最高気温との相関関係を可視化し閾値をχ二乗検定するで作成したものである.
比較するツールはSET STATISTCS PROFILE ONコマンドである.クエリストアは筆者の環境では機能しなかった.
データベースのテーブルに適切なインデックスを設定するのはクエリを高速化するうえで重要な施策である.今回,空間演算にコストがかかっていたクエリが空間インデックスの設定により高速化したので報告する.
熱中症搬送人員数に日最高気温と平均水蒸気圧が強く影響することは疑いの余地がない.他の気象条件として風速や雲量が負の影響をおよぼす可能性はないだろうか.言い換えると,風速が強ければ熱中症を発症する可能性が下がることは考えられないか,晴れよりも曇りや雨の日は熱中症を発症する可能性が下がることは考えられないかということである.
前回の記事で熱中症データベースに平均風速をインポートした.詳細は割愛するが,同様の手順で平均雲量のデータもインポートできる.
今回は説明変数として日最高気温,平均水蒸気圧に平均風速および平均雲量を加えて一般化線形モデルにて解析を行い,tree関数で可視化を試みた.
気象庁の過去の気象データ・ダウンロードからは膨大な気象データをダウンロードできる.今回の記事ではSQL Server内に構築した熱中症データベースに日平均風速のテーブルを追加する.
以前の記事ではポアソン回帰モデルおよび負の二項分布モデルを用いて熱中症搬送人員数に対する日最高気温と平均水蒸気圧の回帰係数を推定した.
人口10万人あたり何名の罹患者数,というのは割り算値である.総務省消防庁の公開している熱中症搬送人員数は都道府県ごとの搬送数であり,もともと都道府県別人口が異なるのだから搬送人員数を都道府県人口で割った割合のほうが指標として適切なのではないか,という指摘は一理ある.
しかし,割り算値ではなく実数を解析すべきである.変形した観測値を統計モデルの応答変数にするのは不必要であるばかりか,誤った結果を導きかねないからである.割り算値からは確からしさの情報が失われること,変換された値の分布が不明であることから,割り算値は避けるべきである.その代わりに割り算の分母をオフセット項として線形予測子に組み込む手法がある.
熱中症搬送人員数はカウントデータであり,その期待値は集計ゾーンの集計対象人口に依存する.都道府県人口をオフセット項とすることで,都道府県の人口規模の影響を調整した回帰分析ができる.今回は都道府県人口をオフセット項として線形予測子に組み込み,一般化線形回帰分析を行ってみた.
以前,熱中症搬送人員数は日最高気温と相関関係があり,片対数グラフで直線になると述べた.今回はポアソン回帰モデルおよび負の二項分布モデルで熱中症搬送人員数に対する日最高気温と平均水蒸気圧の回帰係数を推定する.
“ポアソン回帰モデルおよび負の二項分布モデルを用いて熱中症搬送人員数に対する日最高気温と平均水蒸気圧の回帰係数を推定する” の続きを読む
空間データをデータベースで扱うにあたりどうしても避けて通れないのが,空間データがデータベース内でどう扱われているかを知ることである.
EXCEL のオブジェクトも本質を知っているわけではないが,プロパティやメソッドを知ることで「どう動いているか」は見当がつく.SQL Server でも同じことである.
“第 1 章 空間情報を定義する (Beginning Spatial with SQL Server 2008)” の続きを読む
e-Stat を渉猟していると面白いファイルを見つけた.国勢調査は 1920 年から開始されており, 2020 年 3 月現在では最新の調査結果は 2015 年のものである.20 回分の人口データが一つのファイルにまとめられており,グラフ化するには格好のデータである.
年齢(5歳階級),男女別-都道府県(大正9年~平成27年)というファイルである.リンク先のページにはファイルが 3 つあるが,最後のものが最も粒度が細かいので,これをグラフ化する.
これまでは日本の都市人口の過去の推移を見てきた.総務省には日本の都市人口の推移予測がある.今回はこのデータをグラフにする.
データを可視化するにあたり,重要なのは引き算である.強調すべき系列のみを強調するために,VBA の知識が欠かせない.
グラフの系列にデータラベルを表示する方法にはいくつかある.
「おい,新米 Range オブジェクト!何ボーッと突っ立ってんだよ」
「す,すみません!」
「お前,名前は?」
「は,はい.myRng1と申します.よろしくお願いいたします」
「仕事に来たら,まず名乗れ.それがここの流儀だ」
「それから,自分の職域も一緒に言うんだ.わかったか?」
「は,はい」
「最初に書いてあるだろ?Option Explicit ってな.俺も詳しくは知らねぇが,あのルールは絶対だ.名乗らない奴に居場所はない…ほら,仕事が来たぞ」
「何い?誰だ,こんな糞コード書いたのは?ワークシートに何回アクセスさせる気だよ,全く…ほれ,ここからあそこまで走って値を取ってこい」
「ここからあそこまでって…えーっ?本気で言ってます?」
「何言ってるんだ?ワークシートにアクセスするような力仕事は新米 Range オブジェクトの役割と相場が決まってるんだ.さあ行った行った」