はてなキーワード: GDPとは
GDPが高いほど賢い、という前提か
解像度が低いねぇ君は。わかるかわからないかの1bitでしょ、君の脳みそは。
経済といっても、さまざまな分野があって、効用、無差別曲線、ゲーム理論の話をするのはミクロ経済学。これはもう数学的には厳密なので100年後も教科書の内容に間違いはないだろう。
マクロ経済学はメトリクスを基準とした統計で国家経済を扱う。GDPはその例だが、「労働時間あたりのGDP」といった指標が国家の労働生産性を測る一つの方法となることはよく知られる。因果推論を行うのも基本的には統計の話なのでマクロ経済学の範疇になる。
これらの経済学は、現象を部分的に見てみれば推測の能力は高く、正しく理解していれば経済現象を説明できる。
ではなぜ「経済」の話をすると、経済危機とかが生まれるかというと、外部性などがあるから。
サブプライムローンの破綻は基本的に「債務能力を超える貸付」を行なうことが可能であるという負の外部性によって説明できる。
経済学は「説明」をすることはできるが、「コントロール」をするのは政治の話で、政治家や官僚が教科書レベルのことを理解していないこともあり得る。あるいは「マルクス」などを信奉しているどうしようもないのもいるだろう。
政治家や官僚が対処しなければ負の外部性による市場の失敗を規制することができない。
結果的に経済を「コントロール」できないのは、経済の中に潜む負の外部性をすべて扱う方法がまだ判明していないからであり、予測や説明が可能なレベルにある事象は多い。
「被災地をおざなりにしておきながらいざとなると震災を持ち出して予算を成立させようとする自民党は本当に卑劣で卑怯だと感じました。普段から野党にしっかりしろと言っておきながらいざ自民党への対抗姿勢を強めると反対したいだけど批判する人にも矛盾を感じます。また国民民主党が昭和のやり方だと立憲を批判していましたが今の自民党に対立する以外の選択肢があるんでしょうか。マスコミの批判もまだまだ生ぬるいです、自民党の犯罪行為をこのまま許してはいけないと思います。」
何が【おすすめ順】やねん
そう思いませんか?
この日記の内容は、会社の後輩から「最近エクセルマクロを勉強し始めて(キラキラ)」という話を聞いて、先輩ムーブをかますために話した内容になります。
とにかくこれから説明する「計算用シート」が憎くて憎くてたまらず、ちょっと引かれるほど熱弁してしまいました。
ただ、他の方がどうされているのかや、逆に「計算用シート」を愛用する方の意見も聞きたくなり、増田に書いてみました。
エクセルマクロのお作法とか書きましたが、要するにエクセルマクロで「計算用シート」って色々な意味でよくないよね、という話をしたいです。
3行でまとめます。
〇 エクセルシートはユーザーインターフェース(インプット)か出力結果(アウトプット)のためのものとすべき
〇 データ加工をする場合には、原則配列や辞書型配列(連想配列)に格納して加工を行い、最後の結果だけシートに出力するべき
〇 何事にも例外はある。
エクセルマクロにも色々あると思いますが、今回は下記を想定します。
日付や人物名などを入力し、データベースや別のエクセルファイル、別のシートから取得したデータを入力された値を基に加工し、加工後のデータをシートに出力する
この場合、入力欄があり編集可能なシートがユーザーインターフェース、最終的に加工されたデータが出力されるシートが出力結果です。
(もちろん、ユーザーインターフェースの別の欄(セル)に出力する場合もあるし、その場合はユーザーインターフェースと出力結果が一体のものとみなします。)
また、データ用シートは同じエクセルファイル内に基となるデータが含まれる場合を想定します。
(これ自体が非推奨で、SQLデータベースかせめてAccessを使え、という意見はありますがそれは別にして…)
ではここで定義する計算用シートとはなにかというと、文字通り計算を行うためのシートです。
1.元となるcsvファイルをエクセルに読み出してシートに格納
2.そのデータは日付が数値型になっているので、日付(数値型)の入った列を文字列に変換した日付(文字列型)列を新たに作成
これは極端な例ですが、とにかく変数や配列を定義せず(あるいはエクセルのセルオブジェクトを変数のように扱い)、エクセルに値を入力し、それを直接加工することで目的となるデータ加工をしたり、様々な処理をします。
なんかこんな感じの処理をしているエクセルマクロ、どこの会社でも腐るほどあるんじゃないでしょうか。
ある程度マクロに慣れた気の利く人なら、このシートはロックや非表示にして、ユーザーから触れないようにするでしょう。
・・・これ、やめたほうが良くないですか?。
ある程度詳しい人なら同意してくれると思いますが、このやり方でダメな理由はいっぱいあります。
後で説明する配列や辞書型配列(連想配列)と比べると格段に処理が遅いです。
ちょっと詳しい人が知っている「画面更新の非表示」を駆使しても、配列を使った処理からみれば止まったハエです。
いったんエクセルシートにデータを格納して加工しているので、コードとエクセルシートを両方見る必要があり、とても読みにくいです。
変数として命名されていないのも致命的で、処理の意図が余計に分からなくなります。
計算用シートを事前に用意して、別のセルに関数を格納しておき、マクロと関数を使ってデータ加工をするものも見たことがあります。
あまり知られていませんが、セルの最大文字数は32,767 文字です。
セルの最大文字数を超えると自動的に隣のセルに値が入り、シートが滅茶苦茶になります。
他にもエクセルの数値を丸める自動変換の仕様とか文字列→日付の自動変換とか、いくつものバグに苦しめられます。
できる人だと、いちいち最大文字数が多い場合の処理を書いたり自動変換機能を殺したりしてくれますが、そんなことに手間をかけているから日本のGDPは上がらないんだと思います。
他にも、データが大きくなると処理が重くなり不安定になる、計算用シートを人が触ってしまうリスクがある、などいくらでも理由は上げられます。
(逆に利点は、目の前でガチャガチャ動いてスーパーハッカーになった気分になれるくらいしか思いつかない・・・)
配列を使いましょう。
配列とは何ぞや、という人はググってください。
配列にデータを入れて、データ加工は配列や変数に対して行い、一番最後の出力だけセルに値を格納する。
個人的にオススメしたいのは辞書型配列(連想配列)で、うまく使うとデータの管理が簡単になり、処理も爆速になります。
(参考)【VBA】大量データから高速で値を検索【Dictionaryを使う】
csvファイルもなまじエクセルで開けるだけに別のブックやシートで開きがちですが、これは悪魔のささやきです。
直接ファイルを読み出してLine InputやSplitで配列に格納しましょう。
エクセルとして開くやり方はコード書くのは簡単でも、実行時間に天と地ほどの差が出ます。エクセル開くと処理もめちゃ不安定です。
(参考)Excel VBAでCSVオープンするときのパフォーマンス比較
いや、冒頭のマクロを書く人の気持ちも分かるつもりです。自分もコードを書き始めたころは全部シート上で操作していました。
冒頭のマクロのほうが直感的なんですよね。自分が手で書くことをマクロにやらせる、というマクロ本来の趣旨にはあっていますし。
途中の計算過程もすべて目の前で展開されるから分かりやすいです。
ただ、それではダメなんです。。。処理は遅いし挙動は不安定だし後で改修・保守する人が死にます。
あと、エクセルシートやセルは当然エクセルにしかないので、エクセルマクロ(VBA)から他の言語に移れなくなります。
自分もエクセルマクロの里の出なので、計算用シート脱却には苦労しましたが、苦労して会得した配列や辞書型配列(連想配列)のスキルはそのまま他の言語に活かすことができました。
配列の中身を見る方法は別にある(ローカルウィンドウやDebug.printを使うなど)ので、リハビリに取り組んでほしいです。
(参考)VBA デバッグの仕方
計算用シートを許容できる、使うべきケースもあると思います。。
個人的には、
(最後のは、なんでも自分で確認しないと気が済まない上司の発注で、意味不明と思いましたしたがしぶしぶやりました。)
この場合、インプットのエクセルシートに直接加工するのは論外なので、計算用(加工用)のシートを用意してそこで操作を行うことは必要だと思います。
他にも、こういうときは「計算用シート」があったほうが良い、という状況があれば教えてもらえると嬉しいです。
そもそもツッコミとして、「データ加工するならエクセルマクロを使わずにpythonとかRとかもっとまともな言語使えよ」という言葉が来そうな気がします。
ただ、個人的にはエクセルマクロ(VBA)は大好きですし、初心者にもおすすめしたいです。
自分のような非エンジニアだと、セキュリティの関係などでPythonの開発環境とかすごく用意しにくいんですよね。
(あと、コマンドプロンプトの真っ黒な画面が怖かった)
その点エクセルマクロは、開発環境の用意はプロパティでチェック項目を一つオンにするだけだし、入門書がたくさんあるし、セルの挙動を追えば視覚的にプログラムを理解できるし、初心者に優しいです。
(そのやさしさが上述したとおり悪魔の罠なわけですが。)
最初は計算用シートに頼ってでもエクセルマクロからプログラミングを始めて、本格的なデータ加工をし始めたあたりで計算用シートという諸悪の根源から脱却する。
さらに本格的なデータ処理を行うために、PythonやRなど別の言語を習得したり、エクセルからSQLデータベースやACCESSなどに切り替えていく、というプロセスがいいのではと個人的に思います。
あの…GDP下がる一方です…
https://anond.hatelabo.jp/20240227125513
よく見る労働生産性の単位は、ドル/人だ、労働者一人あたりの国内総生産である
まずそこは皆わかってるんだろうか?
(別の指標に時間あたり労働生産性もある、こっちの方が正確だろうけど)
わかってない人が7,8割居るんじゃないだろうか、そこが不思議でならない
2021年時点で7.8万ドルだ、当時のレートでだいたい850万円
この感覚は皆あってるのか??
これもまずわかってるのか?
会社の売上はどうしたら上がるか分かってる人どのくらい居るんだ?いや、本当を言うなら国の全会社の売上を上げる方法だ
これはさすがにほとんど疎いと思うし、別に知る必要もないとは思う
だけど「日本の労働生産性が低い」という盾をもってして会社や上司の批判をするなら、せめてそこは知っておかなきゃだめなんじゃないか
「業務効率を上げる」みたいな発想はデフレ時代のものだ、外れてはないが当たりでもない
国にはどういう業界があって、それぞれどのくらい稼いでいて、どの業界が労働生産性が高いか(コスパが良いか)は知ってるのか?
そういう話一切しないよね
あれがだめだこれがだめだ、つまんねー愚痴ばっかり
そのくせすげーバズるんだよね、記事に寄稿する専門家気取りもお前らに合わせてミクロの話しかしない
早く気づいてほしいんだけど、労働生産性が高い国っていうのはぶっちゃけ何らかの構造的事情で儲かってる国だよ、売上ベースで
話が逆、儲かるネタがあって、それを運営できる最小の人数で回してるから1人あたりの売上がぜんぜん違うの
中小は労働集約産業が多いから「労働生産性が高いなら効率的」って言えるかもしれないけどね
じゃあ何で労働生産性が低いの?って言われたら
1時間あたりの労働生産性の平均が、日本は約5000円なんだから、1時間あたり5000円売上てない人は全員足を引っ張ってるの
誰が?となったら簡単で、主に非正規労働者だ、非正規労働者の割合がこの30年で15ポイントも上がってるんだから、そりゃ労働生産性は下がるだろ
じゃあそいつら辞めさせるか?違うだろ?
あとさ、早く気づいてほしいんだけど1人売上100万円で粗利80万円の業界もあれば、1人売上100万円で粗利20万円の業界もあるよね
おかしいと思わんのか?
なんで君等は会社を語るときにはちゃんと売上と利益と粗利を見るのに、労働生産性の話になるとポンコツになるの?
ポーランドの年収は16900ドルだし、チェコは21000ドルだよ、日本は34500ドル(2022)ね
わかったか?「労働生産性の国際比較」がまず雑な比較だってことに
はてなーはさ、日本の順位が低いとはしゃいで関係ない愚痴を垂れ流す悲しき中年モンスターなんだと自覚したほうがいいよ
あー恥ずかしい
___
政府消費が2割、その他が2割
が正確なところ
___
>どうすればいいの
うーん、だからそもそも皆が何を気にしてるかバラバラだから、認識合わせなきゃ「どうするか」も話せないと思うんだよね
・1人あたりのGDPを上げたい人
なんか色々いると思うんだけど
とりあえず「労働生産性が他国より低いというだけで、日本が非効率な仕事をしている」と言えるとは限らないから
1人あたりのGDPは生産年齢人口比率で結構変わるし、1人あたりの付加価値生産性は統計出てないし
ってなると結局1人あたりの給料見たほうが早くて
大体
米国>欧州の強い国>韓国>イタリア、日本、スペイン>ポーランド、トルコ、チェコ
みたいになるんだけど
(ただこれも非正規雇用の比率や年齢構成でだいぶ変わりそうではあるけど、他国の雇用形態をいちいち調べるのは難しい)
この順位は、OECD平均よりは低いんだけど、労働生産性よりは高いんだよね
じゃあ次に、何でヨーロッパ各国より安いのかという話になるけど
EUって実質1つの国みたいなもんだから、その地域全体と日本を比較して同じくらいってことは、まあそういうことなんじゃないの?って思っている
東京だけで見ればOECD平均超えるはずだよ(為替によるけど)
つまり「日本が特別非効率なことをしていて、それを解決すればOECD平均に追いつく」なんてのは幻なんじゃないの?というのが俺の結論
だから「非効率を無くす」んじゃなくて「付加価値をどう上げるか」の話をすべきだと思うんだけどね
こういう話って多分だけど「失われた30年」「日本は停滞していた」だと思ってるから起きるんだろうね
日経平均だって、PERを揃えてあげれば2006年にはバブル期超えてるからほんとはとっくの昔に失われた◯年は終わってんだよなあ