うずまき2017 powered by Jun-Systems

耳管開放症, SAS, 統計解析, 人工知能, プログラミングそれに思考

*

SASでHHI(ハフィンダール指数)を計算するマクロを作った

   

なんか最近めちゃくちゃ忙しいです。
 
市場の独占度合いを測る指標として使われる、ハフィンダール・ハーシュマン指数(Herfindahl-Hirschman Index)
単純な計算ながら、工夫するといろいろと使える指標のひとつだと思います。
 
諸事情により大量に算出する必要が出てきたので、単純な計算なんですがSASで計算するマクロを組みました。
動作の保証や、誤作動による損失や計算ミスに関する責任は負いかねますので、自己責任での使用、もしくはご自分で計算する際の参考として使用するなどお願い致します。
 
%calcHHI(ライブラリ名.データセット名, 分類に使用する変数, 対象の変数)
 
使用例:(データの中身は適当です)

DATA calctest;
  INPUT industry company sales;
  CARDS;
  1 1 13000;
  1 2 36000;
  1 3 20000;
  2 4 9000;
  2 5 52000;
  2 6 1500;
  2 7 1800;
  2 8 3200;
  3 9 21000;
  3 10 1200;
  3 11 1800;
  3 12 1500;
  3 13 800;
  3 14 1100;
;

 
ここに対して
%calcHHI(calctest, industry, sales)
これを走らせるとindustry(産業)ごとのHHIを算出できます。
 
中のプログラムはちょっと回りくどいやり方してますが、
1 産業ごとの売り上げの合計を算出
2 それぞれの企業の売上を合計で割ってシェアを算出し、2乗
3 最後に2乗した値を産業ごとに再び合計
 
とまあこんな感じです。
 
最近ついにgithubでプログラムをバージョン管理することを覚えたので、中身はGitHubで公開してみることにします。
calcHHI,sas
 

 
 
 


 - SAS, SAS Programming , , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

SAS超基礎1 データの読み書き
SASでカテゴリカルな変数をダミー変数化するマクロ
【忘備録】SASで巨大データセットから先頭100Obsを抽出
SASでランダムサンプリングしてグループ分けするマクロ
実用性重視のSASコマンド集
no image
2014年IT関連まとめ
SASで変数リスト内の全変数に順番に同じ処理をかけていくマクロ
no image
SASで横方向の合計を出すには PROC SQL part2
no image
SASのPROC HTTPでe-statのAPIを叩く(叩くだけ)
no image
SASを使いやすくカスタマイズしよう SAS環境変数,AUTOEXECなど