インフルエンザ・ワクチンに効果はない: 死亡者とワクチン使用量のグラフとデータへのアクセス

はじめに

Xのポストでインフルエンザ使用量とインフルエンザ死者数の関係を視覚化したものがあった。これはとても示唆的だ:

なかなか自分でこの手のデータにアクセスする機会がないので、勉強がてらこのグラフを自分でトレースしてみた。

画像のなかにデータのソースもあるが返信にリンクもある:

インンフルエンザ・ワクチンの使用量データ

まず、インンフルエンザ・ワクチンの使用量データのほうがアクセスは簡単だ。 というのも、各年で視覚化したデータを厚労省が資料として整理している: 03 資料1_2024ー25シーズンの季節性インフルエンザワクチン及び新型コロナワクチンの供給等について[PDF形式:6.5MB]

これは第35回厚生科学審議会予防接種・ワクチン分科会研究開発及び生産・流通部会 資料|厚生労働省から辿ることできる。

このpdfの3ページ目のデータを手動でCVSファイルを作った。(ChatGPTで試したが、うまく処理できなかった。)

ちなみに審議会・研究会等 |厚生労働省 の予防接種・ワクチン分科会 と各部会で日本のワクチン政策の状況が分かる。

インフルエンザ死者数のデータ

こちらは少し分かりづらい。

1999年以降のデータ

まず人口動態調査 人口動態統計 確定数 保管統計表(報告書非掲載表) 死因 | ファイル | 統計データを探す | 政府統計の総合窓口にアクセスする。

下のように「調査年を選択」という画面が出る。

下に1999年から2023年までのリンクがあるから、それらを順にクリックしていく。例えば2023年のリンクを辿ると 表番号・統計表・調査年月・公開(更新)日・表示・ダウンロードの表がある。

このなかで、「感染症による死亡数, 性・死因(感染症分類)・死亡月別」のCSVのリンクを押すと、このデータがCSVでダウンロードできる。

1999年から2002年のデータはファイル名が異なり、jch070.csvのようになっていることに注意。

自分の場合はファイル名の後ろに年を追記して処理した。例えばjch070000_2008.csvのように。

インフルエンザの死者数だけを抽出するMATLABのプログラムとして、以下のようなものを作った:
years = 1999:1:2023;
death = strings(numel(years), 1);
for jj = 1:numel(years)
    if years(jj) < 2003
        csvName = "jch070_" + years(jj);
    else
        csvName = "jch070000_" + years(jj);
    end
    tt = readlines(csvName, "EmptyLineRule","skip");
    counter = 1; % 総数・男性・女性の順番で格納されているため総数のみを表示
    for ii = 1:numel(tt)
        if years(jj) < 2003
            strtIndx =  regexp(tt(ii), "^In403");
        else
            strtIndx =  regexp(tt(ii), "^In504");
        end
        if ~isempty(strtIndx)
            line0 = tt(ii);
            words = split(line0, ',');
            if counter == 1
               death(jj) = sprintf("%d, %s", years(jj), words(2));
            end
            counter = counter + 1;
        end
    end
end

writelines(join(death, newline), "fluDeath.csv")

1996年から1998年のデータ

1998年より前は別のページから取得する。

(なお、1998年は平成10年だから、1996年から1998年は平成8年から10年のデータになる。データは西暦ではなく平成で記載されている。)

平成8年は平成9年の【死  亡】から取得できる。

平成9年と10年は【統計表】

これらを上で年と死者数を抽出したCSVに追記した。

可視化結果

データも揃ったので、可視化してみた。Xのポストと同様のグラフが再現できた。

なかなか手間がかかるが、1次情報源にアクセスするというのは重要だ。

MATLABのスクリプトは以下のような感じ:

death = readtable("fluDeath.csv");
vaccine = readtable("vaccineUsage.csv");

%%
col = colororder;
fig_h = figure(1001);
yyaxis right
bar(death.Var1, death.Var2, FaceAlpha=0.25, EdgeAlpha= 0.05)
hold on
text(death.Var1-0.75, death.Var2+100, num2str(death.Var2), "FontSize", 10, "Color", col(2,:))
hold off
ax = gca;
ax.FontSize = 12;
ax.FontName = "Sans Serif";
ylabel("インフルエンザ死者数(人)")
xlabel("西暦(年)")
yyaxis left
plot(vaccine.Var1, vaccine.Var2, '.-', MarkerSize=24, LineWidth=2)
hold on
text(vaccine.Var1-0.75, vaccine.Var2+480, num2str(vaccine.Var2), "FontSize", 8, "Color", col(1,:))
hold off
ax = gca;
ax.FontSize = 12;
ax.FontName = "Sans Serif";
ylabel("インフルワクチン使用量(万本)")
l1 = legend("インフルエンザ死者数(人)", "インフルワクチン使用量(万本)", 'Location', 'northwest');
l1.FontSize = 12;
l1.FontName = "Sans Serif";
fig_h.Position(3:4) = [900, 600];
exportgraphics(fig_h, "fluDeathVaccine.png")

インフルエンザ・ワクチンは効果があるか

さあ、ここからが一番大事なポイントだ。

上のグラフを見ても、ワクチンの使用量が増えているのに死者数は減っているわけではない。まったく相関がない。 むしろ、全体の傾向として死者数が増えているようにも見える。

つまりインフルエンザ・ワクチンは効果があるとは言えないのだ。

それでも効果があると思うのは自由だろう。そう思うのであれば、もはやそれは科学ではなく信仰の問題と言うべきだと自分は考える。

「ワクチン接種はマナー」などと言う医者

「ワクチン接種はマナー」などと言う医者もいるようだ:

前橋レポートについて疑義を持つ人はいるようだが、上記のグラフは前橋レポートの内容と矛盾するものでもない。

この医者のように、信仰のようにワクチンを信じてしまうと宗旨変えするのは至難の業だろう。 自説と矛盾しない材料ばかりを集めて、盲信を強めてしまう。 異なる考えを「トンデモ」や「陰謀論」と決め付けて、真実がどこにあるかを考えることを放棄してしまう。 おそらく、この医者はワクチンの機序などよく知らないのではないか。

ワクチンが儲かるかどうかは、ワクチンそのもので儲けるか、ワクチンによる病気で儲けるかの二通りがあるだろう。

ワクチンそのもので儲けるケースでは、コロナウィルスの場合はこんな話もある:

「ワクチンがお金に見えた」 総額17兆円、コロナ特例支援の功罪 | 毎日新聞から引用すると:

クリニックでは22年9月末までに計約6500人に接種し、収入はワクチン接種の特例加算と、接種に関係する頭痛や発熱などの診療報酬で計1億8000万円に上った。接種業務による特例加算の効果が大きく、多い月で約1500万円の黒字を計上。経営が安定した結果、数千万円のがん検査機器も購入できたという。

 まさに国や自治体の支援が接種を加速させた例といえるが、経理担当者はこう声をひそめる。「『こんなにもらっていいの』というのが本音。ワクチンがお金に見えてしまった」

ワクチンによる病気で儲けるというのは、もともともビッグ・ファーマの狙いのように思われる。