「ニセ科学批判=リフレ信者=カルト信者」と言った人の、思い込みの記録

あまりにも、なので。

こうすれば沢山見られる↓

twilog.org

こういう事を言ってきた人が、今更何をどう取り繕っても、白々しく悍ましいとしか言いようが無い。

全体ではありません。その認識は無論できてますが、ニセ科学批判が全部リフレ支持でニセ経済学流布貢献者だとは、思っちゃいませんよ。などと主張しているが、ならばたとえば、

mika_berry on Twitter: "ついでにいうと、ニセ科学批判=リフレ信者=カルト信者 https://t.co/Hmrti3cSYu"

ここでのニセ科学批判=リフレ信者=カルト信者という表現は何なのだ、という話になる。この等号は厳密な数学的用法では無い、と言っても無理な話である。その事自体は解っている。それら集合のほぼ全体が重なり合っている、という主張である事に変わりはない。
あるいは、最初の等号は、集合論の∩のような意味合いかも知れないが、それでも同じ事である。今までそんな粗雑な記号の使い方をしてきたのか、となるし、もし仮に、(ニセ科学批判∩リフレ信者)とカルト信者は大体重なっているのような主張がしたかったのだとしても(⊂でも無い)、そもそも大体重なっているという言明が特に論証されたものでは無い。

何らかの属性を持った集団が、他の属性を持った集団と多く重なり合っている、というのは、それ自体が社会科学的な主張であり、社会学(社会調査論など)や社会心理学の対象とされるような、実証科学的問題である。であれば、そう主張する証拠は何かと問われるのは当然と言える。もし無いのなら、証拠も無しに、他者の属性に関していい加減な主張をし続けてきたのか、となるし、あるいは、別にtwitter上の発言であり、厳密に論証された事では無い、と言うのであれば、そのような軽さと粗雑さで、他者の思想や属性に関わる部分について評価・発言をしてきたのかと看做されるだろう。

ちなみに、ここまで書いた事は、私が以前に、菊池誠氏を批判した時と、構造的に同様である。

interdisciplinary.hateblo.jp

補足

念のために補足しておきますが。

私は、ニセ科学というものに関心を持っており、批判をしてきましたが、リフレの支持者ではありません。

ここで、支持者で無いというのは、反対者と同等ではありません。経済方面への関心が薄く知識に疎いので、それがどういうものか良く知らないから、支持も不支持も無い、という意味合いです。よく知らない事について、大体重なっている、というように言われても、何を言っているのか、としかなりません。

リフレが何かも知らないのか、社会人として知っていて当然の知識だろう、というような批判があれば、それはそうなのかも知れません。私にとって、何か学問的知識を得るというのは、関連する分野の教科書を何冊も読んで認識を構築していく作業なので、それなりのリソースを割かねばなりません。今は主に疫学や統計の勉強をしていますので、そちらが優先です。
自分は政治や経済について大した知識を持ち合わせていないので、こういう場で語る事はしない、というのは何回か言ってきましたし、知らない事については意見するのを控えるのが良いと考えています。そういう理由で、私は、経済関連の話を ほぼ書いた事はありません。

カスタムLOOKUP

ここでは珍しく、Excelの話。

超便利な VLOOKUP 関数ですが、検索値が左端になくてはならなかったりと、柔軟さに欠ける所もあります。

ワークシート関数だと、INDEX と MATCH を組み合わせた方法がありますが、VBA(xslm ファイル)を使える環境用に、それっぽいユーザ定義関数を作ってみました。

関数名は、CrossLookUpです。

CrossLookUp(検索値, 参照セル, 検索方向, オフセット数)

機能としては、VLOOKUP 関数と HLOOKUP 関数を合体させたような感じ。キーは、端の行(列)になくても構いません。

引数は以下の通り。全て必須(Optional 無し)。

  • 検索値:調べたい範囲に存在する事を期待する値、もしくは、値が入ったセルの参照
  • 参照セル:検索値が存在する事を期待する、列もしくは行
  • 検索方向:検索したい方向。垂直か水平(VLOOKUP と HLOOKUP に相当)
  • オフセット数:垂直探索の場合、左または右、水平探索の場合、上または下のセルに対してオフセットする

戻り値は、オフセット先のセルです。

ポイントは、検索値が、検索対象範囲のどこにあっても良いという所と、範囲(VLOOKUP の table_array)を指定しなくて構わない所ですね。

たとえば、次のような表があって(画像ですみません。左上端は A1 セルです)、

f:id:ublftbo:20170712002425p:plain

特のりタル弁当を探したいとします(メニューデータは、ほっともっと のページを参照しました⇒お弁当)。

VLOOKUP だと、カロリーまで出したければ、(B2:D13)を検索範囲に設定しなくてはなりません(構造化参照などを使わない場合)。

CrossLookUp では、参照は、B 列の値が入っているセルのどこでも選択して構いません(B1 でも B12 でも)。1 つ選択すれば、動的に範囲を取得します。

検索方向は、文字列で指定。英語の垂直水平の頭文字ですね。直感的にやりやすいようにしました。

オフセットは、検索範囲の列もしくは行を基準(ゼロ)にして、正負どちらでも指定出来ます。オフセットで取りに行きます。オフセットは、検索範囲に交差する方向です。

各種例外処理を入れてあります。

検索は、完全一致のみです。

たとえば、こんな感じですね↓ f:id:ublftbo:20170712003859p:plain

数式↓

f:id:ublftbo:20170712003858p:plain

細かい流れは、コード中にコメントで記しています。以下に掲載します。

VBA

時間をかけてテストしていないので、不具合があるかも知れません。

色々ごちゃごちゃやっているので、パフォーマンスもよろしく無いでしょうね。

ここはこうしたほうが良いのでは、とか、間違ってるんじゃ? みたいな所があれば、ご指導頂ければありがたいです。

参考にしたページ

support.office.com

Excel のパフォーマンスの問題を最適化するヒント

Office TANAKA - Excel VBA高速化テクニック[セルを配列に入れる]