もしも「暇なコーヒー屋」を移転するとしたら、どこがいいだろうか。
ツキシマでーす。
最近、エンジニアの仕事とかコーヒーの仕事だけじゃなく、物を書いたりする仕事もちょっとずつ貰えるようになりました。
リモートでできる仕事が多くなれば、どこに住んでもよさそう。
バリエーション豊かな仕事が来るようになったので、また別のところに移り住んでも生きていけそうな気もします。ただ、コーヒー屋だけはリモートでできないんですが、移転してしまえば解決です。
ということで、次の行き先も探しておきましょう!
まずは、行き先の条件を羅列してみる。
思いついた条件から書いてみましょう。
次に移住する「街」の条件
現在コーヒー屋のある久留米くらいの規模感がよさそう。(30万人都市)
(理由1)車が無くてもなんとかなってる。
(理由2)家賃が安い。
(理由3)草刈りとか水路の掃除とか、持ち回りの○○当番みたいな労働がない。
プラスアルファの追加条件として、このくらいかな。
寒くない。(意外に久留米が寒い)
活動圏が同じになると面白くないので、福岡から遠くの方がいい。
次に移住する「家」の条件
コーヒー屋を移転するとして、家賃も改装費も高くない
車がいらない(必須)
ネットが速い(必須)
コインランドリーが近い
銭湯か温泉が近い
近所に犬が多い(希望)
他にも条件はありそうですが、そんな場所見つかるのかしら。
e-Stat を使ってデータを漁ろう。
犬が多いとかは無理でも、「久留米くらいの規模感」はプログラムで見つけられそうなので、適当な基準を設けて探してみましょう。
国勢調査の結果が e-Stat (政府統計データのサイト)にあったので、これを使ってみよう。↓↓
「久留米くらいの規模」ってフワッとしすぎな表現なので、適当に指標を決めよう。
市町村の類似度って明確な定義がなさそうなので適当に考えましょう。上のデータの、総人口・人口密度・世帯数の3つの統計データを使ってみます。
とりあえず、人口と密度と世帯数の単位とスケールが違いすぎるので Z-Score 正規化してみます。Z-Score は、元データを S としたときに、各データの平均 $${\mu}$$ と、標準偏差 $${\sigma}$$ を使えば計算できますね。
$${S_{norm} = \frac{S - \mu}{\sigma} }$$
正規化された各市町村の総人口(P)、人口密度(D)、世帯数(H)、正規化された久留米の総人口(Pk)、人口密度(Dk)、世帯数(Hk)として、ユークリッド距離を求めてみます。
$${ S_{euc} = \sqrt{(P-Pk)^2 + (D-Dk)^2 + (H-Hk)^2} }$$
この値が久留米の値と近ければ久留米度(K)が高いとかにすればいいかな。分かりやすく 0-100% の区間に正規化するにはこうですね。
$${ K = 100-\frac{S_{euc}}{max(S_{euc})}\times100}$$
あとは数式通りにプログラムを書けばいいね。
どうやら note って数式もコードも書けるみたいなので、MATLAB で上の式のプログラムを書いてみます。
%% データの読み込み
res = readtable('major_results_2020.xlsx','NumHeaderLines',8,'ReadVariableNames',true,'VariableNamingRule','preserve');
header1 =readtable('major_results_2020.xlsx','Range','A8:D9','VariableNamingRule','preserve');
header2 = readtable('major_results_2020.xlsx','Range','E5:AW7','VariableNamingRule','preserve');
% 謎の重複の削除
res(:,40) = [];
header2(:,36) = [];
vn = header2.Properties.VariableNames;
xhead = '';
for ix = 1:width(header2)
if contains(header2.Properties.VariableNames(ix),'Var')
res.Properties.VariableNames{ix+4} = [xhead, ':',header2{2,ix}{1}];
else
res.Properties.VariableNames{ix+4} = [header2.Properties.VariableNames{ix}, ':',header2{2,ix}{1}];
xhead = header2.Properties.VariableNames{ix};
end
end
res = res(any(res{:,4} == [2 3],2),:);
res(ismissing(res(:,"総人口(男女別):総数")),:) = []; % 双葉町にデータがないので削除
%% 久留米度を求める。
pickcol = ["都道府県・市区町村名","総人口(男女別):総数","総人口(男女別):人口密度","世帯:総世帯"];
cmat = res(:,pickcol);
idx = contains(cmat.("都道府県・市区町村名"),'_久留米');
data = cmat{:,2:end};
Snorm = zscore(data);
kurume = Snorm(idx,:);
Seuc = sqrt((Snorm - kurume).^2);
kurumedo = 100 - Seuc/max(Seuc) * 100;
cmat = [cmat,table(kurumedo,'VariableNames',"久留米度(%)")];
cmat = sortrows(cmat,"久留米度(%)",'descend');
cmat(1:20,[1 end])
プログラムを実行して出力される、1697市町村の久留米度ランキング上位20件はこんな感じ。
都道府県・市区町村名 久留米度(%)
_________________ __________
{'40203_久留米市'} 100.00
{'24202_四日市市'} 98.55
{'08201_水戸市' } 97.12
{'36201_徳島市' } 96.08
{'10201_前橋市' } 95.58
{'03201_盛岡市' } 94.39
{'39201_高知市' } 94.24
{'05201_秋田市' } 94.18
{'12219_市原市' } 94.10
{'07201_福島市' } 93.63
{'29201_奈良市' } 93.63
{'07203_郡山市' } 93.09
{'23201_豊橋市' } 92.92
{'25201_大津市' } 92.86
{'24201_津市' } 92.73
{'02201_青森市' } 92.63
{'28210_加古川市'} 92.33
{'08220_つくば市'} 92.18
{'01202_函館市' } 91.94
{'07204_いわき市'} 91.93
日本全国の市町村で、四日市が一番久留米っぽいという結果になりました!
確かにJR側が寂しくて、そこから1キロちょっと先の私鉄(西鉄・近鉄)が栄えてて、速い電車に乗ったら30分で大きな街(福岡・名古屋)に着いてとか、そういう町の特徴を含めても似てるかも。
それ以外の町でも寒いところは省くとして、徳島とか高知とか暖かそうだし、久留米くらいの規模感なのであれば移住によさそうね。
ちなみに久留米度の下位20件はこちら。
都道府県・市区町村名 久留米度(%)
_________________ __________
{'27227_東大阪市' } 45.59
{'26208_向日市' } 45.30
{'12207_松戸市' } 44.94
{'13222_東久留米市'} 44.72
{'28202_尼崎市' } 43.93
{'27203_豊中市' } 43.71
{'11228_志木市' } 43.06
{'27223_門真市' } 42.13
{'13204_三鷹市' } 41.27
{'12203_市川市' } 41.06
{'13215_国立市' } 38.63
{'27209_守口市' } 37.73
{'13210_小金井市' } 36.68
{'13214_国分寺市' } 36.39
{'13229_西東京市' } 36.15
{'12204_船橋市' } 32.39
{'11203_川口市' } 28.34
{'13203_武蔵野市' } 28.29
{'13219_狛江市' } 22.08
{'11223_蕨市' } 14.91
この指標だと、東久留米は全然久留米っぽくないという結果に。
まとめ:すごく適当な指標でもそれっぽく出てきたので、もうちょっといろんな指標を付け加えれば、次の移住先が絞り込めるかも。
e-Stat に家賃の集計データとかもあったので、もう少しちゃんとした指標を盛り込めばコーヒー屋の移住先の絞り込みに使えるかもしれないですね。
あと、結局は行ってみないと分からない情報も多いので、ここに暇なコーヒー屋が出来そうないい物件があるよ!とか、うちの町は条件を満たしてそうなので来てみてね!みたいなスカウトとか、いい情報があればコメント欄か、note のお問い合わせページから教えてね。
この記事が気に入ったらサポートをしてみませんか?