Wordleの最善手をめぐる巷説と、真の答え

最近、twitterで🟩🟩🟨⬜⬜みたいな謎の色付き正方形がいっぱいシェアされてくるようになりました。

これは「Wordle」というパズルゲームで、5文字の単語を入力して得られた手がかりから、正解の5文字の単語を当てるゲーム(その文字が正解に含まれていて位置もあっていたら🟩、含まれているが位置はあっていないときは🟨でヒントが出る*1)です。

www.powerlanguage.co.uk
Wordle、おもしろいですよね。

aseruneko.github.io
日本語版も有志によって作られたようです。

この記事では、インターネット上で囁かれているさまざまなWordleの戦略を概観・レビューした後、情報量を用いたもっとも効率的な単語の選び方を実践・解説します。

パッと思いつく戦略

プレイしていてまず思いつく戦術はこんなところでしょうか:

①いろんな単語によく含まれる文字はヒントになりやすいはず

  • qとかzが含まれる単語は少ないので、手がかりに入れてもあんまり参考にならなそうなので

②一度🟩で確定したところに次またその文字を置くのは損

  • わかっていない⬜を🟨にするチャンスを逃しているので

  • ヒントを集めたあと、最後に当てるときだけ入れたほうがよさそう

③なるべく多くまだ使ってない文字を入れたほうがいい

  • ⬜で単語中に使われていないことが確定した文字を使うのは、ヒントを得るチャンスを逃しているので

Wordleでは最初は色のヒントなしで単語を入力するわけですが、では、このときにより多くの情報が得られる「初手」の単語は何がいいでしょうか?
巷ではさまざまなヒューリスティックな手法による初手5文字が提唱されています。

文字ベースの手法

試み①:出てくる頻度が多い順に文字を使う

slc.is

先ほどのパッと思いつく戦略で挙げたように、「とりあえず色のヒントが得られやすそうな単語を使おう」というのがいちばんはじめの発想です。Wordle全単語リスト*2 (wordleのjsファイルから候補として入れられる単語リストを取り出してきたもの)で登場したアルファベットを上から順番に並べてみると、次のようになります。
f:id:xcloche:20220124205753p:plain

上記のブログでは、上から順にs, e, a, o, r, i, l, t,.n, u,... がよく使われているので、上位5つを含む単語、aeros, soare, aroseがいいんじゃない? 二手目もunlitあたりがいいんじゃない? というアイデアを提示しています。

初手案:aeros, soare, arose

試み②:その位置ごとの出現頻度が多い順に文字を使う

では、aeros, soare, aroseの三つがあったとき、どれがいちばん色のヒントを得やすいでしょうか?
ここで上記のブログが提案しているのが、位置ごとの文字の出現頻度です。
「q」を含む単語を例にとって考えてみましょう。qで始まる単語はあっても、qで終わる単語はほぼないので、5番目にqがある単語よりも1番目にqを置いたほうがよりたくさんヒントが得られそうです。
そこで、彼らは位置ごとの文字の出現頻度を比較して、aeros, soare, aroseの中でもっともスコアが高いものを選びました。

それぞれの位置でのアルファベットの出現が独立と仮定して、
P(aeros) ∝ P(1番目がa) P(2番目がe) P(3番目がr) P(4番目がo) P(5番目がs)
の近似をするのに近い発想ですね(ブログではスコアは加算していますが)。

結果、試み①で得られたうち、aerosのスコアが高かったとのことで、文字ベースでは「aeros」がいい!と結論されています。

初手案:aeros*3

文字ベース手法の課題

位置ごとの文字頻度を考える方法はいい線いっているように見えますが、仮定が多かったり根拠が不明瞭だったり、文字順にある相関(sのあとはaがきやすい、qのあとは必ずuがくる、など)等の情報をとりこぼしたりしています。

なるべく多くの色のヒントが出そうな初手にしよう、という発想はよさそうなのですが、そもそも、「よく出る文字がいっぱい入ってるのがいい手がかり」ってどういう根拠なのでしょうか? なんとかして単語のよさを定量的にはかることはできないのでしょうか?

ここからは、これらの手法がある程度よい方法になっている背景の原理や、原理から直接的に導かれるもっとよい手法を考えてみましょう。

単語ベースの方法

Wordleというゲームは、換言すれば、手がかりとなる単語を入力して出てきた色のパターンをヒントに、全12972単語から候補を1つに絞りこんでいくゲームです。
上で紹介した文字ベースの手法は、「よくある文字でできた単語を手がかりにすると、色のパターンにバリエーションが出やすい→絞りこみやすい」ことから、ヒューリスティクスとして有用だったわけで、原理そのものである「その単語はどれくらい単語候補を絞れるか?」を直接計算して比較するのが、以下の単語ベースの戦略になります。

試み③:ミニマックス法

Automatic Wordle Solving. Taking out the fun of Wordle is fun by… | by Yotam Gafni | Jan, 2022 | Towards Data Science

手がかり単語を入力したときに出てくる色のパターンは🟨🟩⬜⬜⬜とか🟩🟩🟨⬜⬜とかですが、これは逆に見ると、12972単語あったのが、手がかり単語によってそのパターンに属する単語のグループだとわかった、と解釈できます(たとえば、"aeros" を入力してパターン⬜🟨⬜🟩🟨 が返ってくるのは、答えが escot, estoc, estop, eusol, sheol, shmoe, syboe のどれかだったときだけ)。
ここで、ミニマックス法は、「「最悪の場合(属する単語数が最多の色のパターン)でも○○個までは絞りこめますよ」の、○○がいちばん小さくなる手がかり単語を見つける」考え方です。
この手法の利点は、「最悪でもn回でゴールできる」が言えることで、ミニマックス法を使えば、5回以内に必ずクリアできる(決まった手続きに従って単語を出せば、当てられない単語はない)ことが保証されています。

初手案:aesir

しかし、この方法でもまだ絞り込みが最悪ではなかった場合の色のパターンにそれぞれ何単語が属しているかの情報が使えておらず、平均のスコアをあげるのにまだ改善の余地があります。
属する単語が最悪(マックス)付近の個数のパターンがたくさんあるのか、満遍なく小さく分割されているかで状況が変わってくるわけです。使える情報を余すことなく活用するのが、以下の平均情報量(エントロピー)最大化の手法です。

ここから先はパッとみた感じ公開された試みがなかったので、自分で実装してみることにしました。

試み④:平均情報量最大化(Greedy)

情報量は、簡単にいうと、「その事象が発生した」という情報がどれくらい意味をもつか、という尺度です。よくあることだと小さいし、滅多に起きないことだと大きな値になります。 確率pでおこる事象が観測されたとき、その事象がもつ情報量は - log(p) であらわされます。pが小さければ小さいほど大きくなるので、滅多にないことが起こったならそれは大きな情報を持っている、とする定義になっています。

確率試行で得られる情報量の期待値が平均情報量です。とれる選択肢のうち、平均情報量が最大になる試行を選ぶことで、得られる手がかりを最大にすることができます。

Wordleにおける確率試行とは何か? その答えは、単語を入力してカラーパターンを得ることです。
得られるカラーパターン(🟩🟩🟨⬜⬜, ⬜⬜⬜⬜⬜, ⬜🟨⬜⬜🟨など)の組み合わせは、色数(🟩, 🟨, ⬜)の文字数(5)乗で243通り*4あり、「どのカラーパターンが実現するか」を確率として考えることで平均情報量が計算できます。

平均情報量Hの表式を書き下すとこんな感じになります:
f:id:xcloche:20220124211547p:plain

ここで、それぞれのパターンになる確率は、p(🟩🟩🟨⬜⬜) = (色パターンが 🟩🟩🟨⬜⬜になる解候補の数)/(解候補の総数)のように計算されます。

平均情報量が最大になるのはカラーパターンに属する単語の数がパターンによらず均等に近いときで*5、すべての単語について平均情報量を計算することで、一回の手がかりで得られる情報の期待値が最大になる単語を明示的・定量的に発見することができます。
計算してみると、tares(スズメノエンドウ)が6.2bitほどで最大(平均的に一手めで候補を12972個から200個程度まで絞れる)になることがわかりました。

初手案:tares

とりあえず一手目だけみると、もっとも多くの情報を得ることができる単語は、TARESです。

試み⑤:平均情報量最大化(多層)/なんかすごい人

ここまできたら正直もうあんまり変わらないんですが、実は、もうちょっとだけ考えることがあります。

というのも、taresは十分強い選択ですが、平均情報量最大化は実は一手目だけで考えるのはあまりよくない(一手目では最大でも、二手目以降の影響でひっくり返りうるGreedyな選択のため)です。
全体最適まで考えると計算量が爆発してしまうので、二手目まで&候補に残った単語だけのリストから新たに選ぶ、という制約で二手目時点での平均情報量を最大化してみたところ、salet(中世の鎧)(二手目時点で10.3bit)が最良の初手、となりました(taresだと10.25bit)。「SALET wordle」などで検索するとSALETがトップのなんかすごい別アプローチの手法なども出てきたので、このへんも読むと楽しいかもしれません(ぼくはまだしっかり読めてません)。Wordleチートシートもあるよ!

The best strategies for Wordle - Things (various)


読め

DUO 3.0

DUO 3.0

Amazon
英単語を勉強し、Wordleに勝て

情報理論を学び、Wordleに勝ち、競馬にも勝て

おまけ

あとでSALETの記事を読んでいて引っかかったのだが(というかこの記事を書いていて見つけたのだが)、どうもWordleの答えは回答として使える12972単語より少ない頻出2315リストからとられている(マニアックな単語ではなく、ある程度身近な単語が使われている)らしく(wordleの実行ファイルのjavascriptを見ると「La」と「Ta」という形で単語リストの変数が分けられており、どうも解答はLa側からのみ選ばれているっぽい)、解答候補がLaのみと仮定して計算してみると、taresではなくsoareがgleedyな場合の平均情報量最大(5.89bit)となる(Taのほうの「回答可能だが解答ではない」単語はさまざまな単語の複数形が含まれるため、末尾のsが強くなっていたと思われる)。
ちなみにsoare(イギリス英語で若鷹)もtares同様、Laの解答候補リストをうまく分割はするものの、これ自体はTa単語なので一発正解はなさそうである。

f:id:xcloche:20220127182937p:plain
Laリストのみの出現アルファベットの頻度を見るとsがだいぶ順位を下げているのがわかる
なんかもう飽きたのでやらないが……

ルールのスクリプト(参考:GitHub - yotam-gafni/wordle_solver: A python wordle solver

# cue5文字とanswer5文字を入れると、カラーパターン配列([0,1,0,0,2]など)を返す
# 0:⬜, 1:🟨, 2:🟩
def cue_to_color(cue, ans):
    color = [0 for i in range(5)]
    
    for c_ind in range(5):
        if cue[c_ind] == ans[c_ind]:
            color[c_ind] = 2
            ans = f"{ans[:c_ind]}*{ans[c_ind+1:]}"
    for c_ind in range(5):
        if cue[c_ind] in ans and color[c_ind] == 0:
            color[c_ind] = 1
            ind_app = ans.find(cue[c_ind])
            ans = f"{ans[:ind_app]}*{ans[ind_app+1:]}"
    return color

単語セットからのエントロピー計算(wordのリストは前出のgithubにあります)

import numpy as np
words = [word.strip() for word in open("words.txt","r").readlines()]
    
# cueとanswerの候補リストを入力すると、
# カラーパターン(key)と、そのカラーパターンになる絞り込まれた単語リスト(item)を返す 
def cue_to_patterns(cue, answers):
    patterns = {}
    for answer in answers:
        color = cue_to_color(cue, answer)
        if tuple(color) not in patterns:
            patterns[tuple(color)] = [answer]
        else:
            patterns[tuple(color)].append(answer)
    return patterns

# パターンと単語の辞書を入力すると、エントロピーを計算
def patterns_to_entropy(patterns):
    counts = np.array([len(patterns[item]) for item in patterns])
    freq = counts/counts.sum()
    entropy = -freq.dot(np.log2(freq))
    return entropy

# 好きな単語を入れてみて、その単語がどれくらいいい初手か計算してみよう!
patterns = cue_to_patterns("salet", words)
entropy = patterns_to_entropy(patterns)

# patternsの中から実現パターンを参照して更新し、
# エントロピー最大のcueを探して入力したら、平均情報量最大化ソルバーです

*1:答えに含まれているより多くの回数、手がかりに同じ文字が含まれていたときは、①位置が同じもの ②順目が早いもの の順の優先度で、答えに含まれているその文字の回数だけヒントが表示されます(たとえば正解ではoもtもひとつの「point」のときに、o, tがそれぞれ二つずつある手がかり「tooth」を入力すると、🟨🟩⬜⬜⬜になる)。

*2:https://slc.is/data/wordles.txt

*3:ちなみに、この確率をaerosのアナグラムだけでなくすべての答え単語について計算すると「sores」が位置と出現頻度が独立と仮定したとき「いちばんありきたり」な単語のようです(仮定のもと、いちばんどこかしらでヒントの色が出やすい)。ブログでは暗黙に「同じ文字は出てこないほうがいいヒント」が仮定されていますが、文字被りがない候補でも実は「aeros」ではなく「cares」がトップになります

*4:🟩🟩🟩🟩🟨みたいなパターンはありえないので、実際はもうちょっと少ない

*5:ヒントが出ない確率が高いために、ある意味で、文字ベースの手法は近似的にこれに近いことを行っています。満遍なくパターンが分かれてそれぞれが小グループになるのが、そこからさらに分割する上でいい状態、というイメージ

キレキレダンスとアニメーション

先日、アイドルマスターシンデレラガールズ・スターライトステージ(デレステ)が「涼宮ハルヒの憂鬱」とコラボし、いくつかの楽曲がゲーム内で実装され、音楽ゲームとしてプレイできるようになった。

中でもアニメのエンディングテーマ「ハレ晴レユカイ」のダンスは評判で、「すごい再現度だ」とする比較動画は何度もTwitterのタイムラインに流れてきた。


確かにアニメをよく再現した、いいモーションである(ぼくは「ワープでループなこの想いは」のところのナナさんの動きが好き)。が、いざ並べてアニメのキレキレのダンスと比較すると、デレステのダンスMVはもっさりして見えるというか、どこか動きに精彩を欠くように感じられないだろうか?

過去記事では、2Dアニメーションと3DCGの差異について、顔のパーツを前に持ってくる技法や画角、カメラワークなど、主に2Dアニメの奥行き方向に関するトピックについて書いた。

xcloche.hateblo.jp

今回はアニメーションのモーションに着目して、モーションキャプチャでとってきた動きと典型的な2dアニメーションの動きの差異から、このデレステダンスの違和感について考えていきたい。

リミテッド・アニメーション

一番大きな違いは、一般的なアニメは24fpsで作られ(秒間24枚の絵を表示する)、この24枚の中でも2コマや3コマ同じコマが使われる(2コマ打ち、3コマ打ちいわれる、実質12fps/8fpsのリミテッド・アニメーション)に対して、デレステはフルの60fpsで3Dモデルが動いていることだ。ヌルヌルである。

3DCGでセルルックアニメーションを製作する際も、ヌルヌルさせず多少間引いたほうが「アニメとして自然に見える」という話題は、前回の記事でも挙げたのであった。

ただし、モーションキャプチャで取り込んだモーションを24fpsで再生するだけで「アニメのキレキレのモーション」になるかというと、(けっこうこれだけでそれっぽくなるのだが)話はそう単純ではない。

アニメの世界は、我々とは異なる物理法則のもとで動いているのである。

アニメーションのタメとツメ

リミテッドアニメーション(コマ数の少ないアニメ)は現実世界以上に、緩急を強調する傾向があるとされる。これらは「タメ」と「ツメ」となどいわれ、予備動作を長くして強調する(タメ)一方で、素早い動きは少ないフレームでサッと描く(ツメ)。

「緩急を強める」というのは、換言すれば、速いものはより速く(枚数少なく)、遅いものはより遅く(枚数多く)する、ということだ。

解説ページなどをいろいろ見るに、CGアニメーションのモーション製作の現場では緩急の強調は当然のように意識されている*1ようだが、ダンスモーションをモーションキャプチャからおこすとき、つまりリアルの動きをバーチャルに取り込む際、事後的にタメ・ツメを(強力に)補正することはあまりないように思う。(後述するが、もちろんタメ・ツメをしすぎないのにも相応の理由がある)

ここではあえて、モーションキャプチャや現実の動画撮影でとってきたリアルのモーションを無理やりにタメ・ツメ強調の2Dアニメ的モーション表現にしてしまうにはどうすればいいか考えてみたい。

タメとツメを補正する

参考:すごいもので、そういう研究をしている人がいる。 http://www.cgg.cs.tsukuba.ac.jp/projects/2013/motion_frame_omission/data/gcad.pdf

ダンスの動画をタメとツメで緩急をつけてキレキレにするアルゴリズムを考えてみよう。実装されたコードがパッと見つからなかったので、夏休みの自由研究とでも思って先行研究を参考にオレオレ実装をしてみる。どうデザインすればいいだろうか?

まずは動画のデータを読み込み、(前のフレームとの画素の差分などから)フレームごとに物体の速度を何らかの形の時系列で表現してみる(スピード関数を作る)ことからはじめよう。スピード関数をどう定義するかは考えどころだが、カットの切り替わりやカメラのズームイン/ズームアウトしてもあまり値が変わらない、標準的な物体の動きの挙動にロバストな指標にするのがよさそうである*2

先に述べた通り、タメ・ツメのいちばん簡単な特徴は、速いものをもっと速く、遅いものをもっと遅くすることである。これは、元のフレーム(60fpsの青い等間隔の点)から、24fpsの表現で使うフレームをサンプリングする(赤い点)際、スピード関数が大きいところはよく間引き、スピード関数が小さいところからはいっぱいサンプリングする、ということに対応する。

Image
青い点(60fpsの等間隔)からオレンジのスピード関数にしたがって、赤い点をサンプリングする

こうして不均等にサンプリングした集めた赤い点を等間隔に並べて再生すると、遅い動きの部分はゆっくりと予備動作を描写する一方で、速い動きの中間の表現は少ない時間(=少ない枚数)で表現される、というリミテッドアニメーション的なフレームのサンプリングが行えるワケである*3

補正との比較

AISTのダンスデータセットから適当に取ってきたダンス動画をタメツメ補正してみた。
aistdancedb.ongaaccel.jp

上が均等割24fps、下がタメツメ補正の動画である。
パッと見でもダンスがキレキレになっているのがわかる(23秒付近の首を左右に振るシーンなどがわかりやすい)。

デレステのほうはこんな感じである。

(正直24fpsにしただけでかなりヌルヌルの違和感がかなり減って上下の違いがあまりわからないのだが)手を上下に振るシーンや、雪美ちゃんのソロパート、30秒時点での三人の左右移動などがより躍動的になっているのがわかる。コマ送りでみると、手を振る中間の枚数が減らされているのを確認できる。

身体性の呪縛

もちろんここには動きのリアリティとのトレードオフがあって、緩急を強調すればするほど動きは(アニメ的には自然でも、リアルから見ると)不自然になってしまう。アイドルの3Dモデルを動かすゲームであれば、ヌルヌル描画の方が生っぽくて喜ばれる、という状況も大いにあるだろう。

が、アニメのもつケレン味ってこういうところ(緩急の強化など)から出でくるものでもあるし、モーションキャプチャで取ってきたデータをゴリゴリにタメツメ処理してみるのも面白そうだな〜、と、いろいろ遊んでみて思った次第である。

始めからアニメ/CG上でデザインされたモーションと比べると、モーショントラッキングで取ってきた動きには、人体の身体性による呪縛があるといえる。人間には難しいけれどもCGのモデルであればいとも簡単にできる、メチャクチャかっこいい、彼ら・彼女らのエクストリームなモーションが、気づかないうちに排除されている可能性があるのだ。

遊べそう

現状、目まぐるしくカットが変わったりフレームイン/アウトがあってスピード関数がうまい表現になっていないなあとか、そもそも姿勢推定をした方がいいカモとか、フレームの中間表現を生成したほうがいいカモとか、大事なフレーム検出の技術があるらしいぞ*4とか、いろんな興味があるので、気が向いたらこのあたりはまた触ってみたい。

*1:SHIROBAKOでもこれを扱ったシーンがあった(戦闘機の中で動物をキャッチするシーン?)記憶がある

*2:今回の例ではめんどくさいので特徴点の移動距離平均のような量を使っている。ここはかなり工夫の余地がありそう

*3:どの程度スピードによるサンプリングの傾斜をつけるか(グラフではスピードが最大値のとき、スピードが最小値のときの1/3しかサンプリングしない)はタメ・ツメ度合いを表すパラメータになっている

*4:https://ieeexplore.ieee.org/document/6909825

(小市民のための)何もしない節約術

昔、格安SIMを使ってる人は高所得者のほうが多い!という記事を読んでびっくりしたのを覚えている。
www.mdn.co.jp

今でこそ業界全体的に安くなったり三大キャリアが格安SIMの価格帯に参入したりと、格安とそうでない回線の差は近づきつつある(それでも大きい)が、調査結果が出た2017年ごろといえば、その価格には雲泥の差があった。

「安い価格で携帯回線をもてる」サービスが、情報リテラシー格差や端末の初期投資の必要性などを原因に、結果的に経済格差を広げているのは皮肉な話である。

めんどくさい税

ぼくは極度のめんどくさがりなので、節約のために自分の行動を変えるのはイヤだし、節約のために手間をかけるのも苦手である。

一回設定するとその後いっさい変更しなくていいくらいの手法(年に一回くらいはメンテしてもいいかも)くらいでないと実践する気になれない。ので、細やかな日常のライフハックではなく、上であげた格安SIMのように、固定費を下げるわざをいくつか実践している。

携帯回線などは最たる例だが、惰性で昔のものをそのまま使い続けること、制度について無知であり続けることは、継続的に少しずつ、累積としては相当の額の資産を目減りさせる。ぼくはこれをめんどくさい税と呼んでいる。現代においてめんどくささはキッチリ確実に搾取されているし、逆進性もあるように思う。

ここでは特にインフラと税金について、一度やったらあとは何もしなくていい、スイッチングコストをかけるだけでできる節約術を紹介する。

インフラ

格安SIM(格安プラン)は使っているか?

目安:20000〜30000円/年

まずはじめに見直すべきはこれである。携帯回線といえばドコモ、ソフトバンクauの三大回線しかなくて、携帯電話の本体は携帯ショップで買うものである――十数年前の惰性にそのまま身をまかせ続けていないか?

各社の携帯回線のプランを調べてみて思うのが、その複雑性である。いわく、はじめの6ヶ月間だけ割引がある。いわく、光回線といっしょに契約すると割引がある。機種代金が割賦払いになっていて毎月それと同額のキャッシュバックをしている。家族割引がある。学割がある。サブスクのサービスがついている。前の月使わなかったギガを引き継げる。LINEはいくら使ってもカウントフリー。

お得感を煽るこれらはすべてまやかしであり、どんなに積み上げたところで格安SIMどころか、三大キャリア自身が提供している格安プランのほうが安い。

人が格安SIM、格安プランに変えない理由はだいたい次のようなものである:

SIMロックがあるから
回線業者で携帯を買ったとき、その回線でしか端末を使えなくしている仕組み(SIMロック)は、最近は撤廃されている。昔のものもショップで3000円くらいで解除できる。

電話番号が変わるから
変わりません。MNP(携帯電話番号ポータビリティ)という仕組みがあって引き継げる。

回線の契約期間内で、解約金(や端末の残債)がかかるから
大手の通信回線は2年契約などの縛りを設けていて、2年区切りの月のタイミング以外で解約しようとすると解約金が発生する。数年前までは10000円かかっていたが、2019年以降は1000円になっているため、更新月以外で解約しても一月で回収できる。端末の残債も、払ってでも抜けた方が安くなることが多い。

親が払ってるから
学生に多いケース。支払いが自分ではないので気にしていないパターン。気にしよう。
上に述べたように、三大キャリアの回線を家族割で使ってる、学割で使ってるという場合も、割引かれたところでそっちのほうが高い。

三大キャリアは通信品質がいいから
そんなすごい通信してるんですか?
まれに業者によって通信品質に問題があることもあるが、ぼくはMVNOで回線品質に不満をもったことはない(UQ Mobileを使っている)。いずれにせよそんなに気になるならキャリアが同じ格安プラン(ahamo、LINEMO、povo)には切り替えるとよい。

キャリアメールが使えなくなるから
このケースも多いっぽい(三大キャリアの格安プランでもキャリアメールは使えない)。 お前はこれから一生、毎月数千円のコストを支払ってキャリアメールのアドレスを維持し続けるんか?

ATMで手数料を払っていないか?

目安:3000円/年

学生のころ、夜や休日に時間外やコンビニのATMでおろして100円だの200円だのの手数料を取られて「損したな〜」と思ったことが何度もあった。超低金利の現代では、ATM手数料をいちいち払っていては銀行に預けているだけでお金が減っていく。

メガバンクや銀行の中には、預金口座のオプションに「スーパー普通預金(三菱UFG)」「SMBCポイントバック(三井住友)」「みずほマイレージクラブ(みずほ)」などの優待サービスがあり、ある程度の条件を満たすとATMの時間外手数料やコンビニATMの手数料が無料になる*1

これらの優待は前の月の金融サービス利用状況を踏まえて次の月に適用されるかが決定される。

メガバンクの三行を比較すると、優待を得るのに必要な条件として軽いのは

  • 給与口座にしている(「給与」や「年金」の名目での一定額以上の振り込みがある)

だろう。また、定期的な収入がない場合でも

  • 三菱UFG:インターネット通帳を利用している
  • 三井住友:SMBCのクレジットカードの引き落としがある or 若者(24歳未満)
  • みずほ:みずほのクレジットカードの引き落としがある or 預金残高30万以上 or 学割(25歳未満、学生)

などの条件でこれらの優待を利用できる。一番簡単なのは三菱UFJ銀行をインターネット通帳で使うことで、口座を開設するときスマホアプリで登録するだけで誰でも条件を満たすことができる。

地方銀行も調べてみるとこの手のサービスを展開していることがあるが、申し込んではじめて適用されるものも多い。使っている銀行にこの手の優待サービスがあるか、あるならそれを利用できるか確認して、場合によってはメインバンクを鞍替えすることも検討してみてはどうか。

一年につく利息より高いATM使用料を毎月のように支払ったり、時間外利用にならないようスケジュールに気を遣ってATMに行くのはアホらしいので、やめよう。思考に使うリソースが減るという点でも、強くオススメする。

税金

生命保険料控除枠は使っているか?

目安:7000円〜10000円/年(所得税率による)

所得税・住民税の控除に「生命保険料控除」というものがある。生命保険料控除は「生命保険料控除」「介護医療保険料控除」「個人年金保険料控除」の三つにわかれていて、それぞれの区分の保険に加入して保険金を支払っていると、そのぶん税金がちょっと引かれる、国が国民に保険に入るよう推奨する目的で作られた制度である。

お金の面だけでいえば、一見「いや、保険に金払ってるんだったら税金がちょっと安くなってもトータルで損してるじゃん」と思ってしまう。が、積立型の保険(ある期間を過ぎると支払ったお金が帰ってくる)はそうはならない。保険会社に将来帰ってくる資産として保険料を積立てつつ、控除の恩恵に与れるというワケである。

控除額は三つとも最高で(年間保険料80000円以上で)所得税40000円、住民税28000円である。所得税率によるが、保険に入るだけでそれぞれ年間7000円〜10000円の税が軽減される計算になる。

以下に示す理由で、三つのうち生命保険料控除だけが何も考えずに気軽に使える。

介護医療保険料控除
医療保険は積立てるものではないので、入っていれば控除の申請をすればよいが、このために入る、という話にはならない。

個人年金保険料控除
個人年金保険については年金の定義上、60歳まで積立した資産がロックされるうえ、節税効果は個人型確定拠出年金iDeCo)の方が高い。iDeCoの枠を最大限利用して、それでも(老後になってから使いたい、ロックされてもいい)資金が余っているなら検討すれとよい。

生命保険料控除
今回の本題。一般的な生命保険のほか、学資保険なども対象となる。
いま控除枠を使っていなくて特に生命保険に入る予定がないなら、これを埋めるために作られたとしか思えない、唯一無二の「じぶんの積立(明治安田生命)」という保険商品があるので、利用を強くおすすめする。

特徴はこんな感じ:

  • 一口5000円/月。
  • 保険期間は10年で、5年の払込み期間の後、さらに5年待つと満期になる(103%で帰ってくる)。
  • 払込期間中は、いつ解約しても返戻率が100%である

(控除枠までしか使えないが)節税効果だけでみても、10年のうち振込時に約7%、解約時に3%と、実質ほとんどリスクなく年利1%以上をあげる定期預金といえる、超優良投資効率の金融商品である。

契約を途中解除しても払い込んだ保険金がつねに100%返ってくるうえ、生命保険料控除の恩恵に与れる、つよつよ定期預金みたいなこの保険、なぜ存在するかというと、いわゆる(?)ドアノック商品(これをエサに他の保険への加入を勧める、保険勧誘の入り口の役割の商品)であるらしい。

この保険はWebで申し込みを完結させることはできず、保険会社の人と対面で契約する必要があって、他の保険を強く勧められるのかな……と身構えてアポを取って保険ショップに行ったのだが、特にそんなこともなく、一時間ほどですんなりとこれだけ契約することができた。

保険料控除の手続きとしては年末調整の際に関係書類を提出するだけでいいとのことである。

ふるさと納税しているか?

やり得。

おまけ(投資)

「普通の人が資産運用で99点をとる方法とその考え方」って有名な記事があって、
hayatoito.github.io

結論としては「リスク資産として考えてよさそうな余剰資金をとりあえずインデックス(ある方法で株の価格を平均したもの)に投げておけ」という話をしている。(投資自体に楽しみを見出したりギャンブルをやりたいのでなければ)まことにその通りだと思う。
株の銘柄買いをするな、そこらの投資家よりもインデックスのほうが賢いのに素人が勝てるワケがない、素人が投資に思考のリソースさくほどアホなことない、インデックス積立で買うなら年間30分考えるだけで済む、といった感じである。
けっこう面白いので一読をおすすめする。

金と効用の話

ぼくは刹那的に生きており、60歳までロックされる金(確定拠出年金個人年金)を貯めるよりは、若いうちに使ったほうが同じ金額で得られる効用/満足度もずっと高いと思っている。入り用になったとき使える状態にしておきたいのもあって、企業型確定拠出年金を少し積み立てているほかはiDeCo個人年金もやらず、余剰資金は積立NISAに回している*2

金は若いうちに使ったほうがええ。

*1:コンビニなど提携先のATMは月に一回や二回の回数制限あり。ちょうど最近(2021年の7月ごろ)から各銀行でこれらのプランに見直しが行われ、少しだけ条件が厳しくなっている。

*2:めんどくさがりの人間が積立NISAを登録し、使えるまでには本当に長い長い物語があった