2026年4月 8日 (水)

投票率と政党得票率(衆議院議員選挙2026年福岡)

最初のグラフが示すことは、投票率が上昇するとどうなる、ということではなく、投票率の高い地域で得票率が相対的に高い政党と低い政党とがある、ということになる。投票率の低い地域で得票率が相対的に高い政党と低い政党とがある。 もちろん、一般的に、投票率は都市部で低い。

かつての「動員」は、労働組合や業界団体などの「垂直的な組織動員」を指していたが、近年の日本保守党や参政党、あるいは国民民主党などに見られる現象は、「SNS等による熱狂の動員」という側面があるようだ。(自民党のものも含めて、それらの政党が掲げている憲法「改正」の内容について、その問題性についてマスメディアは十分に伝えていない。)

今回のような1時点でのデータからは推論することはできないが、もしも、投票率の変化が生じた場合には、以下のようなことがおこるであろう。(この記事の最後で投票率の上昇と各党の得票率の「変化」との関係を取りあげた。)

統計的に「投票率が高くなったところでシェアが高くなる」のであれば、それは組織による「底上げ」ではなく、「これまで投票に行かなかった層をどれだけ引っ張り出せたか(=浮動票の獲得)」の結果であろう。

投票率が上がると得票率が下がるのが、「組織・動員型」という説明ができるかもしれない。つまり、固定票(組織票)が一定なため、分母(投票者数)が増えると相対的なシェアが薄まる(希釈効果)。

Screenshot-20260408-at-132221 Screenshot-20260408-at-124928 Screenshot-20260408-at-120946 Screenshot-20260408-at-114604Screenshot-20260408-at-114615

以下のグラフはSASで作成した。

Screenshot-20260416-at-81751_20260416082502 Screenshot-20260409-at-170734 Screenshot-20260409-at-202728 Screenshot-20260409-at-220323
Screenshot-20260409-at-221446 Screenshot-20260409-at-224404

 


 

投票率の上昇がどの政党の得票率の増減に連動したか

以下のグラフは、投票率の増分と得票率の増分の相関関係を示すものである。

Screenshot20260410at221001 Screenshot20260411at73007 Screenshot-20260411-at-83450 Screenshot-20260411-at-85633 Screenshot-20260411-at-90309

有権者のエネルギー(投票率上昇)は、自民党へは「追い風」として、革新・新興勢力へは支持層を薄める「向かい風」として作用した。自民党が「正の相関」で票を吸い上げ、中道改革連合が「無相関」で停滞し、左派・新興勢力が「負の相関」でシェアを減らす結果となった。

グラフのバブルサイズは各投票区(区市町村)の有効投票総数を反映させている。 

 


 

補足:「大数の法則」に関連して

統計的な傾向(回帰直線)から大きく外れる「逸脱的なケース」については、大数の法則の観点から捉える必要があります。一般に、有権者数が多い大規模な自治体では、個々の多様な投票行動が全体の平均の中に収斂されるため、統計的な安定性が高まり、全体的なトレンド(回帰直線)に近接する傾向があります。

一方で、有権者数が極めて少ない小規模な自治体では、分母が小さいために大数の法則が十分に機能せず、統計的な分散が大きくなります。その結果、特定の地域事情や有力候補による強力な組織動員といった局所的な要因が、得票率や投票率のパーセンテージに極端な変動(逸脱)をもたらしやすくなります。

本分析のグラフにおいて、バブルのサイズ(有効投票総数)が小さい地域ほど回帰直線から離れた「外れ値」として現れている現象は、この統計的特性を反映していると考えられます。したがって、これらの逸脱的なケースは、「その地域で何が起きたのか」を解き明かすための重要なヒントなので無視すべきではありませんが、小規模集団ゆえの「統計的揺らぎ」として理解すべき面があります。

付言すれば、統計的には「揺らぎ」として処理される範囲であっても、その「揺らぎ」が特定の方向(例:特定の政党への極端な偏り)を向いている場合、それは「偶然」ではなく「局所的な意思」が働いた結果であると解釈できます。

|

衆議院議員選挙2026年福岡:前回の選挙との投票率の比較

速報状況:選挙区別 [Excelファイル/438KB] https://www.pref.fukuoka.lg.jp/uploaded/attachment/276994.xlsx

平成8年

Screenshot-20260410-at-121240

国内+在外:選挙区別 [Excelファイル/153KB] https://www.pref.fukuoka.lg.jp/uploaded/attachment/276990.xlsx

平成8年

Screenshot-20260410-at-121626_20260410121701

Screenshot-20260410-at-125623Screenshot-20260410-at-125639 Screenshot-20260410-at-134045 Screenshot-20260410-at-135235Screenshot-20260410-at-135246 Screenshot-20260410-at-135434 Screenshot-20260410-at-142934 Screenshot-20260410-at-140031

 

参考(Rで作成したもの)

Screenshot-20260410-at-160423

/* 日本語の変数名を許可する設定 */
options validvarname=any;

data work.touhyoritsu;
    infile "touhyoritsu_w.csv" dsd dlm=',' truncover;

    /* 列名定義 */
    input
        区市町村       : $40.
        有権者_男     : comma12.
        有権者_女     : comma12.
        投票数_男     : comma12.
        投票数_女     : comma12.
        投票率_男
        投票率_女
        投票率_計
        投票率_男_前回
        投票率_女_前回
        投票率_計_前回
    ;

    /* 数値の表示形式を整える設定 */
    format 有権者_男 有権者_女 投票数_男 投票数_女 comma12.
           投票率_男 投票率_女 投票率_計 投票率_男_前回 投票率_女_前回 投票率_計_前回 8.2;
run;

/* データの確認 */
proc print data=work.touhyoritsu(obs=10);
    title "投票率データ 読み込み確認";
run;

options validvarname=any;

/* 1. データの読み込み */
data work.raw_data;
    /* encoding="utf-8" を指定して文字化けを防止 */
    infile "touhyoritsu_w.csv" dsd dlm=',' truncover encoding="utf-8";
    input 
        区市町村       : $40.
        有権者_男     : comma12.
        有権者_女     : comma12.
        投票数_男     : comma12.
        投票数_女     : comma12.
        投票率_男
        投票率_女
        投票率_計
        投票率_男_前回
        投票率_女_前回
        投票率_計_前回
    ;
    /* 前後の空白(全角・半角)を削除して名前を正規化 */
    区市町村 = strip(区市町村);
run;

/* 2. データの集約(72地域へ) */
proc summary data=work.raw_data nway;
    class 区市町村;
    var 有権者_男 有権者_女 投票数_男 投票数_女 
        投票率_男_前回 投票率_女_前回 投票率_計_前回;
    output out=work.summed_data(drop=_type_ _freq_) 
           sum(有権者_男 有権者_女 投票数_男 投票数_女)=有権者_男 有権者_女 投票数_男 投票数_女
           mean(投票率_男_前回 投票率_女_前回 投票率_計_前回)=投票率_男_前回 投票率_女_前回 投票率_計_前回;
run;

/* 3. 投票率の再計算 */
data work.final_data;
    set work.summed_data;

    if 有権者_男 > 0 then 投票率_男 = (投票数_男 / 有権者_男) * 100;
    if 有権者_女 > 0 then 投票率_女 = (投票数_女 / 有権者_女) * 100;
    
    total_voters = 有権者_男 + 有権者_女;
    total_votes  = 投票数_男 + 投票数_女;
    if total_voters > 0 then 投票率_計 = (total_votes / total_voters) * 100;

    format 有権者_男 有権者_女 投票数_男 投票数_女 comma12.
           投票率_男 投票率_女 投票率_計 投票率_男_前回 投票率_女_前回 投票率_計_前回 8.2;
    drop total_voters total_votes;
run;

/* 4. 結果の表示(念のためラベルを付与) */
proc print data=work.final_data;
    title "集約後データ(全72地域)";
run;

/* 日本語変数名の許可 */
options validvarname=any;

/* 相関分析用に「有権者_合計」を作成 */
data work.analysis_data;
    set work.final_data;
    有権者_合計 = 有権者_男 + 有権者_女;
    label 有権者_合計 = "有権者数(合計)";
run;

/* 1. 基本統計量の算出(平均、標準偏差、最小、最大) */
proc means data=work.analysis_data n mean std min max maxdec=2;
    var 有権者_合計 投票率_男 投票率_女 投票率_計;
    title "投票データ 基本統計量一覧(全72地域)";
run;

/* 2. 相関分析(有権者数と投票率の関係) */
/* RANKオプションで相関の強い順に表示、PLOTSで散布図行列を作成 */
proc corr data=work.analysis_data rank plots=matrix(histogram);
    var 有権者_合計;
    with 投票率_計;
    title "有権者数と投票率の相関分析";
    
  
 /* 日本語変数名を許可 */
options validvarname=any;

data work.turnout_comparison;
    set work.final_data;
    
    /* 今回と前回の差分を計算(ポイント増減) */
    男_増減 = 投票率_男 - 投票率_男_前回;
    女_増減 = 投票率_女 - 投票率_女_前回;
    
    label 男_増減 = "男性増減(pt)"
          女_増減 = "女性増減(pt)";
run;

/* 地域別の一覧表を出力 */
proc print data=work.turnout_comparison;
    var 区市町村 投票率_男 投票率_男_前回 男_増減 投票率_女 投票率_女_前回 女_増減;
    title "地域別 投票率比較(今回 vs 前回)";
run;


/* 結果をCSVファイルとして書き出し */
proc export data=work.turnout_comparison
outfile="turnout72_result.csv"
dbms=csv;



/* 増減の大きい順に並べ替えて表示(例:男性の増減順) */
proc sort data=work.turnout_comparison;
    by descending 男_増減;
run;

proc print data=work.turnout_comparison(obs=10);
    title "投票率が前回より大きく上昇した地域(上位10件)";
run;

/* 1. 描画用の最小・最大値を計算 */
data work.plot_ready;
    set work.analysis_data;
    rate_min = min(投票率_計, 投票率_計_前回);
    rate_max = max(投票率_計, 投票率_計_前回);
run;

/* 2. グラフの作成 */
title1 "有権者数と投票率の変化(全72地域)";
title2 "垂直な線は前回からの増減を示す(下落した地域も表示)";
footnote1 j=r "Archives from 2026 Onward and Notes for the Future";
footnote2 j=r "2026年以降の記録 | https://ab.cocolog-nifty.com/note/";


/* グラフのサイズを指定(高さを600px、幅を600pxに設定して縦長にする) */
ods graphics / height=600px width=600px;

proc sgplot data=work.plot_ready;
    /* 計算した最小・最大値を使って線を引く */
    highlow x=有権者_合計 low=rate_min high=rate_max / 
            lineattrs=(color=gray80 thickness=1px) 
            nomissinggroup;

    scatter x=有権者_合計 y=投票率_計_前回 / 
            markerattrs=(symbol=CircleFilled color=steelblue size=8px) 
            name="prev" legendlabel="前回";

    scatter x=有権者_合計 y=投票率_計 / 
            markerattrs=(symbol=CircleFilled color=firebrick size=10px) 
            name="curr" legendlabel="今回";

    xaxis type=log logbase=10 label="有権者数(合計・対数軸)" grid;
    yaxis label="投票率 (%)" grid values=(45 to 70 by 5);
    keylegend "prev" "curr" / location=outside position=bottom;
run;
title; footnote;

|

2026年4月 7日 (火)

衆議院小選挙区選出議員選挙の「当日有権者見込数」(令和8年2月8日執行第51回衆議院議員総選挙、福岡県)

福岡市の場合、東区は1区と4区に、城南区は2区と3区に、南区は2区と5区とにそれぞれ投票区が分かれている。

Screenshot-20260407-at-73705
Screenshot-20260407-at-150401
Screenshot-20260407-at-74347
Screenshot-20260407-at-152739
Screenshot-20260407-at-152801
Screenshot-20260407-at-153827
Screenshot-20260407-at-153852
令和8年2月8日執行 第51回衆議院議員総選挙(福岡県選挙管理委員会)

 

Screenshot-20260408-at-104312

> 政府は3日に閣議決定した答弁書で、先の衆院選で海外居住者が利用した「在外投票」の郵便投票のうち、投票締め切りまでに市町村の選挙管理委員会に届かなかった割合が小選挙区で27・7%、比例代表で27・9%に上ったと明らかにした。いずれも53件。2024年の衆院選や昨年の参院選に比べ、締め切りを超過した割合は増加した。
> 立憲民主党の石垣のり子参院議員は質問主意書で、衆院解散から投票日までの期間が戦後最短だったため、締め切りまでに届かず無効となったと指摘。答弁書では、有権者の手続きや郵送の遅れを挙げ「さまざまな理由が考えられ、一概に答えるのは困難だ」とした。
在外郵便投票27%締め切り超過 衆院選で海外居住者が利用(毎日新聞、2026年4月3日 23時45分 (共同通信))

衆議院議員総選挙時における在外選挙人による郵便等投票の投票用紙の未達に関する質問主意書(石垣のりこ)

|

2026年4月 5日 (日)

20年あまり前にSASを使ったことがある。

調査データのクロス集計に関係するメモがあった。
SAS OnDemand for Academicsで実行してみた。
パソコンの中を捜して見つかったデータファイルが 、その姿を現した。

 

Screenshot-20260405-at-143916 Screenshot-20260405-at-143926

 

調査票を確認し、集計結果のフェイス・シートの部分などを覗いてみた。SASではなく、SPSSのTABLESというのを利用していたことも思い出した。(SASより前に使っていたSPSSでは、SAS OnDemand for Academicsのようなものはなく、2週間限定の試用版というものしかないようだ。)

Screenshot-20260405-at-172837 Screenshot-20260405-at-172945 Screenshot-20260405-at-183212

SASのプログラム

DATA FC;
INPUT ROW $ COLUMN $ COUNT;
DATALINES;
1 1 12
1 2 32
2 1 45
2 2 45
3 1 56
3 2 34
;
PROC FREQ DATA=FC;
TABLES ROW*COLUMN /CHISQR;
WEIGHT COUNT;
RUN;

クロス集計をおこなった結果を吟味して、「カテゴリーの合併」(RE-CODE)が必要な場合に参考にしてください。素データからではなく、クロス集計結果からカイ2乗値等を計算します。もちろん、表も出力されます。データは、クロス統計表(カテゴリーの合併等を行った後のもの)の各マスの、行番号、列番号、度数を入力します。

表の出力において、以下のオプションを「/」の後に指定することができます。
NOPERCENT ←総数を100としたパーセントを出力しない
NOROW ←行パーセントを出力しない
NOCOL ←列パーセントを出力しない

 プログラム例の中に出てくる「ROW」や「COLUMN」は、変数名であり、別のものに変えることができます。

 

DATAステップのINPUT文のあとに次の行を付け加えると、ageという変数に「-54」、「55-」という値が入ります。つまり、年齢が、55歳未満と55歳以上に再分類されます。この新しい変数ageをクロス集計等に用いることができます。

       if f2 = '2' or f2 ='3' or f2 ='4' or f2 = '5' then age ='-54';
       if f2 ='6' or f2 ='7' or f2 ='8' then age = '55-';

[追記]
 「SASデータセット」がすでに存在する場合――DATAステップをすでに一度実行した場合――には、プログラムを変更した後にそのプログラムを保存し、再度SASを起動する必要があります(別の方法をとらない場合には)。

 「クロス統計表の度数からカイ2乗値等を計算」の記事を参考にして、別のプログラムで表を作り直すこともできます。その場合は、自分で計算した度数をデータとして入力します。

 

プログラムの、実行させたくない部分は次の行で囲むとよい。
/*************************
**************************/

1番目を上に挿入し、2番目を下に挿入する。

 

/*************************

proc print data=データ名;

run;
**************************/

というように。

 

===================

単純集計は、次のように変数名をハイフンで省略して書くことができます。

proc freq data=データ名;

tables Q011-Q019
       Q021 Q022 Q031 Q032 Q0401-Q0410  Q0411-Q0423   
       Q061-Q069   Q0701-Q0710 Q0801-Q0810  Q09-Q24  Q24S  Q25  F1-F6;
run;

|

2026年4月 4日 (土)

2026年衆議院議員選挙(福岡県)の比例代表得票率の相関:自由民主党と各党(国民民主党、参政党、日本維新の会)

Screenshot-20260404-at-91149 Screenshot-20260404-at-91211 Screenshot-20260404-at-91130

|

2026年4月 3日 (金)

中道改革連合と各党(国民・れいわ・社民・共産)との関係

地域レベルの得票傾向から見ると、統計的に正の相関が見られる場合は、それらの政党の支持層が重なっている可能性が高く、同一選挙区では票を奪い合う「競合関係」にあると推測できます。しかし、見方を変えれば「選挙協力」による一本化の効果が最も大きく現れる相手でもあり、共倒れを防ぐ戦略的メリットは無視できません。

一方で、支持基盤が全く異なる(負の相関がある)政党同士が安易に協力関係を結ぶと、互いの独自性(カラー)を打ち消し合い、有権者が離反するリスクを孕んでいます。今回の衆院選における立憲民主党と公明党の合流などは、そのミスマッチが生んだ混迷の象徴と言えるかもしれません。 立憲民主党の野田佳彦代表が、かつて、現在自民党と連立を組んでいる日本維新の会との選挙協力を模索していたことも思い出されます。

最初のヒートマップは、2025年の参議院議員選挙比例代表のデータで作成したものです。合流前なので、立憲民主党と公明党は別の政党として表示されています。両党の得票率の間に負の相関が見られることに注目してください。 興味深いのは、自公連立時において、自民党と公明党の得票率に有意な相関関係が見られなかったことです。 自公連立は「支持層が似ているから組んでいた」のではなく、「支持層が全く異なるからこそ、補完し合うために組んでいた」という極めて戦略的なものであったと考えられます。

政党別得票率2026年衆院選福岡

Screenshot-20260409-at-164249 Screenshot-20260403-at-163208 Screenshot-20260403-at-191523 Screenshot-20260403-at-193231 Screenshot-20260403-at-193358 Screenshot-20260403-at-193010 Screenshot-20260403-at-193535 Screenshot-20260403-at-192014

|

2026年4月 2日 (木)

立憲民主党と公明党の衆議院議員選挙における合流の失敗:衆議院議員選挙2024年と2026年の比較

a. 2024年衆議院議員選挙

Screenshot-20260402-at-224654

b. 2026年衆議院議員選挙

Screenshot20260327at123339_20260402224901

c. 2つの選挙のデータを合併して分析

Screenshot-20260402-at-224028

中道改革連合の分析

Screenshot-20260402-at-213136

1. スイングの方向性
グラフのバーがすべて左側(マイナス方向)に伸びています。これは、「中道改革連合」の得票率が、2024年の「立憲+公明」の合算得票率と比較して、すべての(上位20)自治体で減少したことを示しています。

2. 減少幅の大きさ
特に上位の自治体(赤村、嘉麻市、田川市など)では、-20%(0.20)前後の非常に大きなマイナスのスイングが観測されています。

これは、単なる「微減」ではなく、勢力図が大きく塗り替わったことを示唆する数値です。

2024年時点では立憲や公明に投じられていた票が、2026年の選挙では別の受け皿へ分散、あるいは流出した可能性が高いと言えます。

3. 地域的な傾向
上位には「赤村」「嘉麻市」「田川市」「香春町」「添田町」といった、いわゆる筑豊エリア(福岡11区など)の自治体が目立ちます。

「中道」は、衆議院公明党の後継政党でしかなかったようだ。(福岡11区についてとりあげている。)

4. 中道改革連合の市町村別得票率(上位30)

Screenshot-20260403-at-143333

5. 政党別得票率の相関係数によるヒートマップ

中道改革連合は、「ど真ん中の中道」とか言わないで、れいわ新選組、社会民主党、日本共産党と選挙協力したならば、……

中道改革連合と各党(国民・れいわ・社民・共産)との関係

Screenshot-20260403-at-163208

以下解説を省略。

Screenshot-20260402-at-215237 Screenshot-20260403-at-73023 Screenshot-20260403-at-71420 Screenshot-20260403-at-71401 Screenshot-20260402-at-215744 Screenshot-20260403-at-73008

データの一部。

Screenshot-20260402-at-221712

|

2026年3月31日 (火)

福岡県内における国政選挙の動向:2022年、2024年、2025年、2026年の比例代表投票の比較

本稿では、2022年から2026年までの衆議院および参議院の比例代表投票について、福岡県内の区市町村別データを用いた対応分析の結果を比較する。

Screenshot20260327at130047_20260401180601

2026年衆議院議員選挙福岡11区の対応分析(SAS OnDemand for Academicsによる)
MassとInertiaの相関図(衆議院議員選挙2026年福岡県の選挙データの対応分析)
参院選2022年と2025年の比較

2026年衆議院議員選挙の比例代表投票の結果において注目されるのは、2024年の同選挙でも見られた傾向が再び確認された点である。すなわち、社会民主党と日本維新の会が、他の政党から相対的に離れた位置に配置されている。ただし、その方向は両者で異なっている。

このような配置は、参議院選挙の比例代表投票では必ずしも明確には現れない。対応分析が地域ごとの投票構造の差異を反映する手法であることを踏まえると、この違いは、小選挙区制のもとで形成される地域的分断の影響が、比例代表投票にも間接的に及んでいる可能性を示唆している。比例代表であっても、候補者中心の選挙運動や地域組織の影響を通じて、小選挙区的な構造が反映されると考えられるためである。

さらに、この傾向は福岡11区における動向とも無関係ではない可能性がある。同選挙区では自民党の武田良太氏の復活が見られたが、こうした選挙区レベルの力学が、比例代表投票の地域分布にも影響を与えていることが考えられる。

2026年衆議院議員選挙で特に興味深いのは、新党「中道改革連合」の配置である。同党は、立憲民主党と公明党の合流によって成立した政党であり、本来は広範な支持基盤を背景に、空間の中心に近い位置に現れることも想定される。

Screenshot20260328at95343 Screenshot20260328at95409

しかし実際の分析結果では、同党は第1軸への寄与度(Contribution)および、その位置づけの正確性を示すcos2(平方余弦)がともに高い値を示している。これは、得票規模(Mass)の大きさとは必ずしも一致しない形で、第1軸の形成において相対的に大きな役割を果たしていることを意味する。その結果、同党は空間上で特定の方向へ明確に位置づけられている。次のグラフは、Massと「平均からの乖離のインパクト」を示す慣性(Inertia)との関係を散布図で示したものである。

Screenshot20260328at142427_20260401180301

このことは、同党が全体に均質な支持を持つ「中心勢力」として機能したというよりも、特定の地域的特徴を反映した存在として現れている可能性を示している。すなわち、旧立憲民主党と旧公明党の支持基盤が完全には統合されず、地域ごとに異なる投票行動として現れた結果、空間上で一方向に偏った配置となったと解釈することができる。

西日本新聞の出口調査において、福岡11区の中道支持層の一部が自民党や日本維新の会へ流出したとされる結果は、このような「中心の収斂の弱さ」という見方と整合的である。

このように、中心が十分に形成されない状況のもとでは、比例代表投票においても、社会民主党や日本維新の会が相対的に外側に位置づけられることになる。ただし、その意味は一様ではない。社会民主党のように一貫した立場を維持する政党が外側に位置する場合、それは政治空間の対立軸を明確にする機能を持つと考えられる。一方で、他の政党については異なる要因によって同様の配置が生じている可能性もある。

選挙制度との関係でいえば、社会民主党および日本維新の会が他党から離れて配置される現象は、福岡11区の市町村がその近傍に位置していることと対応している。この点は、比例代表投票であっても、地域的な固有性が政党配置に影響を及ぼしている可能性を示唆している。

取りあげた2つの参議院議員選挙のデータを併合して対応分析をおこなうと次のようなグラフが作成される。22は2022年を25は2025年を意味している。

Screenshot20260331at110944

以上の比較から、衆議院選挙と参議院選挙のあいだには、比例代表投票の空間構造においても明確な差異が存在することが確認される。この差異は、選挙制度の違いを通じて生じる地域的分断の強さの違いとして理解することができる。

 

グラフ

1. 2022(令和4)年参議院議員選挙

Screenshot20260330at203636 Screenshot20260330at205133

2. 2024(令和6)年衆議院選挙

Screenshot-20260331-at-131359 Screenshot20260330at91053

3. 2025(令和7)年参議院議員選挙

Screenshot20260325at184952 Screenshot20260326at144057

4. 2026(令和8)年衆議院議員選挙

Screenshot20260327at123339 Screenshot20260327at144851

次の2つのグラフのもとになった計算は、FactoMineRを利用した。

04_biplot_1_2_20260327225401_20260331125201 P1_3_20260402202901

以下のグラフでは、上下が反転している。Greenacreのcaパッケージを計算に利用した。

Screenshot20260329at123021 Screenshot20260329at123056_2026032912360

|

参院選2022年と2025年の比較

Screenshot-20260331-at-115734 Screenshot-20260331-at-115551 Screenshot-20260331-at-110944 Screenshot-20260331-at-111007

以下はRで作成した。

Screenshot-20260331-at-110337 Screenshot-20260402-at-201159

/* 1. データのインポート */
proc import datafile='/home/uXXXXXXXX/選挙データ/参院選2022_福岡72自治体集計.csv'
    out=d_2022_raw dbms=csv replace;
run;

proc import datafile='/home/uXXXXXXXX/選挙データ/cleaned_parties_data.csv'
    out=d_2025_raw dbms=csv replace;
run;

/* 2. データの整形と名称統一 */
data d_2022_prep;
    set d_2022_raw;
    自治体名 = city_town;
    自民_22 = 自由民主党; 公明_22 = 公明党; 立憲_22 = 立憲民主党;
    維新_22 = 日本維新の会; 国民_22 = 国民民主党; 共産_22 = 日本共産党;
    れいわ_22 = れいわ新選組; 社民_22 = 社会民主党; 参政_22 = 参政党;
    NHK_22 = NHK党; 幸福_22 = 幸福実現党; 新風_22 = "維新政党・新風"N;
    keep 自治体名 自民_22 公明_22 立憲_22 維新_22 国民_22 共産_22 れいわ_22 社民_22 参政_22 NHK_22 幸福_22 新風_22;
run;

data d_2025_prep;
    set d_2025_raw;
    自治体名 = 市区町村名;
    共産_25 = VAR3; れいわ_25 = VAR4; 立憲_25 = VAR7;
    国民_25 = VAR9; 維新_25 = VAR8; 社民_25 = VAR12;
    自民_25 = VAR15; 公明_25 = VAR17; 参政_25 = VAR6;
    保守_25 = VAR13; NHK_25 = VAR18;
    keep 自治体名 共産_25 れいわ_25 立憲_25 国民_25 維新_25 社民_25 自民_25 公明_25 参政_25 保守_25 NHK_25;
run;

/* 3. データの結合 */
proc sort data=d_2022_prep; by 自治体名; run;
proc sort data=d_2025_prep; by 自治体名; run;

data d_trajectory;
    merge d_2022_prep d_2025_prep;
    by 自治体名;
run;

/* 4. 対応分析の実行(BINARYを削除) */
ods graphics on;
proc corresp data=d_trajectory dimens=2 outc=ca_results;
    var 自民_22 公明_22 立憲_22 維新_22 国民_22 共産_22 れいわ_22 社民_22 参政_22 NHK_22 幸福_22 新風_22
        共産_25 れいわ_25 立憲_25 国民_25 維新_25 社民_25 自民_25 公明_25 参政_25 保守_25 NHK_25;
    id 自治体名;
run;

/* 5. 統計表の作成(自治体名カラムをNameとして扱う) */
data ca_cols;
    set ca_results;
    where _TYPE_ = 'VAR'; /* 政党データ */
    Name = 自治体名;       /* ID変数の値がラベルになっている */
run;

/* 政党名でソートして22年と25年を隣接させる */
proc sort data=ca_cols; 
    by Name; 
run;

proc print data=ca_cols;
    var Name Quality Mass Dim1 Dim2;
    title "政党別対応分析統計量(2022 vs 2025:継続比較)";
run;

/* 6. 可視化(AONFキャプション付き) */
footnote1 "Archives from 2026 Onward and Notes for the Future";
footnote2 "2026年以降の記録 | https://ab.cocolog-nifty.com/note/";

proc sgplot data=ca_results;
    where _TYPE_ = 'VAR';
    /* datalabelにも自治体名変数を使用 */
    scatter x=Dim1 y=Dim2 / datalabel=自治体名 
                             markerattrs=(color=red symbol=trianglefilled size=10);
    refline 0 / axis=x lineattrs=(pattern=dash color=gray);
    refline 0 / axis=y lineattrs=(pattern=dash color=gray);
    title "対応分析:福岡県比例代表 2022 vs 2025(政党配置)";
run;
footnote;

|

2026年3月30日 (月)

今から4年前の2022年参議院議員選挙、こんな名前の政党があったのだろうか。

Screenshot-20260331-at-73853 Screenshot-20260330-at-205133 Screenshot-20260330-at-214001

 

以下はSASによる出力

Screenshot-20260330-at-203636 Screenshot-20260330-at-203653 Screenshot-20260330-at-203742 Screenshot-20260330-at-204434Screenshot-20260330-at-204444Screenshot-20260330-at-204453 Screenshot-20260330-at-204503 Screenshot-20260330-at-210843

/* 0. 日本語変数名を正しく扱うための設定 */
options validvarname=any;

/* 1. データのインポート */
filename reffile '/home/uXXXXXXXX/選挙データ/参院選2022_福岡72自治体集計.csv';

proc import datafile=reffile
    dbms=csv
    out=work.election_72
    replace;
    getnames=yes;
run;

/* 2. 対応分析 (Correspondence Analysis) の実行 */
/* DIMENS=3: 第3次元まで計算
   ALL: すべての統計量を出力
   OBSERVED: 実際の票数表を表示
   OUTC: 座標データを後のクラスタリング用に保存
   PLOTS=ALL: 散布図等のグラフをすべて出力
*/
ods graphics on;
proc corresp data=work.election_72 
             dimens=3 
             all 
             observed 
             plots=all 
             outc=work.ca_coords;
    id city_town;  /* 自治体名を行の識別子として指定 */
    var 'NHK党'n 'ごぼうの党'n 'れいわ新選組'n '公明党'n '参政党'n 
        '国民民主党'n '幸福実現党'n '新党くにもり'n '日本共産党'n 
        '日本第一党'n '日本維新の会'n '社会民主党'n '立憲民主党'n 
        '維新政党・新風'n '自由民主党'n;
    title "2022年参議院議員選挙 福岡県比例代表:対応分析";
run;
ods graphics off;

|

より以前の記事一覧