YouTubeなどで禁酒を勧める動画を見ていると、禁酒の効果がかなり大きく語られていて、生活が劇的に良くなったという話になっていることがあります。動画としての面白さや、体験談の分かりやすさが優先されているのかな、と感じることもありました(特定の動画を検証したわけではなく、あくまで私がそう感じた、という話です)。
本当にそんなことまで言っちゃっていいんだろうか。どんな飲み方の人にも、禁酒したらメリットが出るんだろうか。
これは結局「人による」というところになってしまうんですけど、そこに数字で迫ってみたい。て、欲望が出てきたんです。
それとは別に、技術的に試してみたいこともありました。普通のロジスティック回帰(Rのglm)と、調査データ向けのRパッケージsurveyの回帰を、同じデータで比べてみることです。全部書いたらかなり長くなったので、記事を2本に分けました。この記事では飲酒と生活満足度の話を、glmとsurveyの比較は記事2で書いています。
記事2:Rのglmとsurveyは、何をしているのか? 同じデータ・同じ式で比べてみた
先に書いてしまうと、「飲まない人ほど生活に満足している」というきれいな結果にはなりませんでした。
公開データで、どこまで迫れるのか
「禁酒すると生活が良くなるか」を本気で確かめようとすると、同じ人がお酒をやめる前と後を追いかけるデータが欲しくなります。
今回使えたのは、ある年に大勢の人へ一度だけ質問した、いわゆる横断調査のデータです。ここから分かるのは「飲み方が違う人たちの間で、生活満足度がどれくらい違うか」まで。それでも、「飲まない人ほど満足しているはず」というイメージが実際の回答でどう見えるかは、十分チェックできそうです。
データは最初、日本のものを探しました。ただ、申請なしで個票(回答者1人ずつのデータ)が使えて、目的にも合うものは見つからず、アメリカのBRFSSを使うことにしました。
BRFSS 2023と、使った質問
BRFSS(Behavioral Risk Factor Surveillance System)は、アメリカのCDC(疾病予防管理センター)と各州が毎年、成人に電話で聞いている健康調査です。2023年版のデータは、CDCのBRFSS 2023年版のページから誰でもダウンロードできます。
生活満足度の質問は全州共通ではなく、州ごとに選んで実施する追加の質問群(モジュール)に入っています。2023年にこれを実施したのは39州とワシントンDC。州によっては一部の版の質問票でしか聞いていないので、その分は質問票の版ごとのデータのページから取ってくる必要があります。州と版の組み合わせでいうと43でした。
生活満足度は「不満と答えた人の割合」で見る
質問は「全体として、自分の生活にどのくらい満足していますか」。答えは「非常に満足」「満足」「不満」「非常に不満」の4段階です。
このうち「不満」「非常に不満」をまとめて、不満と答えた人の割合を見ていきます。なので、この記事に出てくる%は、どれも「不満と答えた人が何%いたか」という意味です。平均点ではありません。
頻度と量は、別々に見る
飲み方は、頻度と量の2つの軸で見ています。
頻度は、過去30日にお酒を飲んだ日数です。回答は「週に何日」か「30日で何日」のどちらかなので、週の回答は×30/7で30日あたりに直しています。週1日なら約4.3日で「3日超〜7日」、週2〜3日なら「7日超〜15日」、週4日以上なら「15日超〜30日」に入るイメージです。
| 頻度(過去30日の飲酒日数) | 人数 |
|---|---|
| 過去30日に飲酒なし | 123,182 |
| 1〜3日 | 45,291 |
| 3日超〜7日 | 29,652 |
| 7日超〜15日 | 28,989 |
| 15日超〜30日 | 28,054 |
量のほうは「飲んだ日には、平均して何ドリンク飲んだか」という質問で、ここは少しクセがあります。1回の飲み会の量でも、飲まない日を含めた1日平均でも、30日の合計でもなく、あくまで「飲んだ日の平均」です。質問文では、1ドリンクは12オンスのビール、5オンスのグラスワイン、蒸留酒1ショットに相当するものとして質問されていました。日本の「1杯」や「1合」とは単位が違うので、ここではそのまま「ドリンク」と書きます。
| 量(飲酒日の平均ドリンク数) | 人数 |
|---|---|
| 過去30日に飲酒なし | 123,182 |
| 飲酒日に平均1ドリンク | 60,207 |
| 平均2ドリンク | 40,404 |
| 平均3〜4ドリンク | 21,763 |
| 平均5ドリンク以上 | 9,612 |
カテゴリの区切りは、結果を見る前に決めています。
モデルは2つだけ
対象は、生活満足度モジュールの全303,632件から、頻度・量・生活満足度が分からない人などを除いた255,168人です(過去30日に飲酒なし123,182人、飲酒者131,986人)。この先の数字は、すべてこの同じ人たちで計算しています。
- 頻度モデル:
life_dissatisfied ~ frequency_group - 量モデル:
life_dissatisfied ~ quantity_group
どちらも、カテゴリ変数を1つだけ入れたロジスティック回帰で、基準は「過去30日に飲酒なし」。年齢・性別・所得などの背景は入れていない、かなりシンプルなモデルです。
AIと書いたコードを、レビューする
最近はコードを書くのをAIにかなり手伝ってもらえるようになって、分析を始めるまでのハードルがぐっと下がりました。今回のコードも、AIに手伝ってもらいながら書いています。
ただ、出てきた数字を記事にする以上、AIが書いたコードをそのまま使うわけにはいきません。人が書いたコードをレビューするのと同じように、中で何をしているのかを読んで確かめました。
飲まない人が、量のモデルから消えていないか
最初に見たのは、欠測の扱いです。BRFSSでは、頻度の質問で「過去30日に飲酒なし」(コード888)と答えた人は、量の質問を飛ばします。つまり、飲まない人の量の欄は空欄です。
ここを普通の欠測として扱うコードになっていたら、量のモデルから飲まない人が丸ごといなくなります。いちばん比べたい相手が消えてしまうわけで、これはまずい。なので、この空欄が「質問のスキップ」として扱われているか、量モデルで「過去30日に飲酒なし」が独立したカテゴリになっているかを確認しました。平均量を0ドリンクで埋めていないことも見ています。飲まなかった人には、そもそも「飲酒日」がないからです。
該当する部分は、こうなっています。
# 週の回答(101〜107)は×30/7、月の回答(201〜230)はそのまま日数にする
drinking_days <- function(x) {
out <- rep(NA_real_, length(x))
weekly <- x %in% 101:107
monthly <- x %in% 201:230
out[weekly] <- (x[weekly] - 100) * 30 / 7
out[monthly] <- x[monthly] - 200
out
}
# 量のカテゴリ(抜粋・簡略化)。飲まない人は量の回答を見ずに独立したカテゴリにする
quantity_group[none] <- "None_30_days"
quantity_group[current & quantity %in% 1] <- "1"
quantity_group[current & quantity %in% 2] <- "2"
quantity_group[current & quantity %in% 3:4] <- "3_to_4"
quantity_group[current & quantity %in% 5:76] <- "5_or_more"
回帰の予測が、集計と一致しているか
カテゴリ変数を1つ入れただけのロジスティック回帰なら、各カテゴリの予測割合は「不満と答えた人数÷人数」とぴったり一致するはずです。そこで、両モデルで実際に一致するかを突き合わせました。結果は一致。回帰と言っても、中身はカテゴリごとの割合と、その信頼区間を計算しているのと変わりません。
差の判定を、差の信頼区間でしているか
もうひとつ見たのが、飲まない人のカテゴリとの差の判定です。2つの群の区間が重なっているかどうかで判定していないか。差そのものの95%信頼区間が0を含むかで見ているか。そこを確認しました。表は小数1桁に丸めていますが、0を含むかの判定は丸める前の値でしています。
結果:飲み方ごとの不満割合
# S は共通対象の255,168人。重みは使わず、全員を同じ1人として数える
fit_frequency <- glm(life_dissatisfied ~ frequency_group, data = S, family = binomial())
fit_quantity <- glm(life_dissatisfied ~ quantity_group, data = S, family = binomial())
図にするとこうなります。左が各カテゴリの不満割合、右が「過去30日に飲酒なし」との差(パーセントポイント。割合同士の引き算の単位)です。点が推定値、横線が95%信頼区間で、右の図の縦の点線が差0の位置です。
頻度
飲んでいる人の4つのカテゴリは、どれも飲まない人のカテゴリより不満割合が低くなっていました。かといって、飲む日が増えるほど下がり続けるわけでもない。いちばん低いのは「7日超〜15日」で、「15日超〜30日」になるとまた少し上がっています。
量
量のほうは、飲んでいる人の中だと平均量が多いカテゴリほど不満割合が高くなっていました。平均1・2ドリンクは飲まない人より低く、平均5ドリンク以上になると飲まない人より高い、という並びです。
調査の重みを入れると、どう変わるか
ここまでの数字は、回答者全員を「同じ1人」として数えたものです。でもBRFSSには調査の重みが付いていて、回答者1人が代表する人数は人によって違います。
そこで、Rのsurveyパッケージで重みと調査の設計を入れて、計算し直してみました(やり方と細かい結果は記事2で書いています)。不満割合はどのカテゴリも0.4〜1.2ppほど上がり、信頼区間の幅は2〜3倍ほどに広がっています。それでも、飲まない人のカテゴリとの差の95%区間が0を含むかどうかは、頻度・量のどのカテゴリでも変わりませんでした。
| カテゴリ | 人数 | 不満あり | glm 不満割合 %(95%CI) | survey 不満割合 %(95%CI) |
|---|---|---|---|---|
| 頻度 | ||||
| 過去30日に飲酒なし | 123,182 | 7,766 | 6.3(6.2〜6.4) | 6.7(6.4〜7.0) |
| 1〜3日 | 45,291 | 2,339 | 5.2(5.0〜5.4) | 6.0(5.6〜6.5) |
| 3日超〜7日 | 29,652 | 1,241 | 4.2(4.0〜4.4) | 5.0(4.5〜5.6) |
| 7日超〜15日 | 28,989 | 1,119 | 3.9(3.6〜4.1) | 4.5(4.0〜5.0) |
| 15日超〜30日 | 28,054 | 1,325 | 4.7(4.5〜5.0) | 5.9(5.3〜6.7) |
| 量 | ||||
| 過去30日に飲酒なし | 123,182 | 7,766 | 6.3(6.2〜6.4) | 6.7(6.4〜7.0) |
| 飲酒日に平均1ドリンク | 60,207 | 2,215 | 3.7(3.5〜3.8) | 4.4(4.1〜4.8) |
| 平均2ドリンク | 40,404 | 1,655 | 4.1(3.9〜4.3) | 5.0(4.5〜5.5) |
| 平均3〜4ドリンク | 21,763 | 1,325 | 6.1(5.8〜6.4) | 6.7(6.1〜7.4) |
| 平均5ドリンク以上 | 9,612 | 829 | 8.6(8.1〜9.2) | 9.0(7.9〜10.3) |
ちなみにglmの割合は、例えば飲まない人のカテゴリなら7,766÷123,182をそのまま計算した値です。
「ほどほどに飲むのがいい」と言いたくなる
数字をもう一度並べてみます。
- 頻度でいちばん低いのは「7日超〜15日」(glm 3.9%、survey 4.5%)。週の回答なら2〜3日の人が入るところです。
- 量でいちばん低いのは「飲酒日に平均1ドリンク」(glm 3.7%、survey 4.4%)。
- 飲まない人のカテゴリは、頻度モデルでは飲んでいるどのカテゴリよりも不満割合が高く、量モデルでは平均1・2ドリンクより高く、平均5ドリンク以上よりは低い。平均3〜4ドリンクとの差は、両手法とも95%区間が0をまたいでいて、どちらとも言えない結果でした。
こう並べると、「週に2〜3日、少しだけ飲む人がいちばん満足している。やっぱりほどほどがいいんじゃないか」と言いたくなります。禁酒の話にモヤっとしていた身としては、ちょっと都合のいい並びでもあります。
でも、少し落ち着いて考えてみると、これはさすがに言いすぎでした。
頻度と量は別々のモデルなので、「7日超〜15日」の人たちがどれくらいの量を飲んでいるかはそろえていないし、「平均1ドリンク」の人たちがどれくらいの頻度で飲んでいるかもそろえていません。「7〜15日に少しずつ飲む」という組み合わせは、そもそも分析すらしていないんです。
「いちばん低い」というのも、点推定を並べただけの話です。比べたのは、各カテゴリと飲まない人のカテゴリとの差だけ。「7日超〜15日」と「3日超〜7日」、平均1ドリンクと平均2ドリンクのような、飲んでいる人のカテゴリ同士は比べていないので、どこが一番かまでは決められません。
それに、これは違う人たちを比べた数字です。「その頻度の群で不満割合が低かった」とは言えても、「私が飲む日数をその範囲に変えれば、不満が減る」とは言えません。
比べている群の中身も、けっこう違います。年齢・性別・所得・健康状態などはそろえていませんし、調査の重みもその違いを調整してくれるものではありません。「過去30日に飲酒なし」の中には、生涯飲まない人もいれば、以前は飲んでいた人(体調などの理由でやめた人も含まれうる)も、この30日にたまたま飲まなかっただけの人もいます。「禁酒した人たち」とイコールではないんですよね。生活がうまくいっていないことが飲み方を変えている、という逆向きの関係だってありえます。
そもそも、これは日本人ではなくアメリカ人のデータです。お酒との付き合い方には文化の違いもあるので、日本に当てはめて考えると、文化的な側面からバイアスが生じてしまうことも全然ありえます。
禁酒や減酒のメリットを言いたくなるけれど
飲みすぎの健康リスクを軽く見るつもりはありません。アメリカのCDCも、一度に、あるいは長い期間にわたって飲みすぎると健康に害が出うること、飲む量を減らせばそのリスクを下げられることを説明しています。これは今回の生活満足度の分析とは別の根拠です。
今回の量モデルでも、平均5ドリンク以上の群は、両手法とも飲まない人のカテゴリより不満割合が約2.3pp高く、飲んでいる人の中では量が多いほど不満割合が高めでした。ここまで数字ではっきり出ると、禁酒することや、少しお酒を控えることのメリットを言いたくなります。
ただ、それはあくまで「今その状態の人」がそうだという話で、習慣を変えたらどうなるかまでは言えていません。大量に飲んでいた人が禁酒したら調子が良くなる、というのはありうると思います。でも、それすらこの調査が測っている範囲の外にあります。
それを確かめるなら、もともとお酒を飲んでいた人を追いかけて、やめた人と続けた人を比べるようなデータが必要になります。そう考えると、今回の調査をどこまで一般化していいのか、どこからが拡大解釈なのか、という話にはどうしてもなっちゃうかな、と思いました。
おわりに
今回のデータでは、飲まない人が一律にいちばん生活に満足している、という結果にはなりませんでした。だからといって「ほどほどに飲めば満足度が上がる」と言えるわけでもないのは、ここまで書いてきたとおりです。
それでも、「飲酒は生活にとって圧倒的な悪で、やめれば誰でも劇的に良くなる」という一括りの話を、そのまま信じていいのかな、という疑問は残りました。少なくとも手元の数字は、そんな単純な形には並んでいなかったので。
一方で、どれだけ一般化して主張していいのかを突き詰めると、結局は「信じるも信じないもあなた次第」みたいな、都市伝説っぽい話になってしまうな、とも思いました。そもそも気軽なメディアって、そういうものなのかもしれません。正直、ちょっと諦めモードにもなっています。
なので、せめて私は、飲酒も禁酒も「生活が劇的に良くなる」という話にしてしまう前に、何を比べた数字なのかを見るようにしたいな、と思っています。
コードとデータ
- 分析のRコードと図:GitHubのsasai-lab/qiita-article-assetsの
alcohol-life-satisfaction-surveyフォルダに置いています(glmとsurveyの推定と検証のコードです)。 - データ:CDCのBRFSS 2023年版のページと、質問票の版ごとのデータのページから取得しました。
- glmとsurveyの比較:記事2
- Rの環境構築について:LLM時代のR環境構築:コマンドは覚えなくていい

