井出草平の研究ノート

Mokken尺度分析②

ides.hatenablog.com

前回のつづき。
Mokken尺度分析の実務でよく用いられる AISP(Automated Item Selection Procedure;自動項目選択) を実行し、項目群が単一尺度としてまとまるのか、それとも複数の下位尺度(クラスター)に分かれるのかを探索的に確認する。第1回では尺度性(LoevingerのH)を中心に扱ったが、AISPは「どの項目同士が同じ尺度として抽出されるか」をより直接的に示す手続きであり、下位尺度構成を検討する入口として有用である。

AISP(自動項目選択)の概要

AISPは、指定した下限値(lowerbound)以上の“結びつき”をもつ項目同士を同一尺度に割り当てる探索的手続きである。出力は各項目がどの尺度番号に割り当てられたか(1,2,3,…)を示し、0はどの尺度にも入らない項目を意味する。

重要なのは、lowerboundは「同一尺度に入れるために要求する厳しさ」であり、値を上げるほど条件は厳しくなる点である。一般に、

  • lowerboundを上げるほど、尺度は 分割されやすく なり、0の項目が増えやすい
  • 強い結びつきだけが残るため、2項目ペア(k=2)が増えやすい

という挙動が出やすい(もちろんデータによって程度は異なる)。

また、AISPの出力に出てくる尺度番号(例:尺度1、尺度2…)は、lowerboundが変われば割り当てが変わりうるため、「0.3の尺度1」と「0.4の尺度1」を同一視してはならない。尺度番号はあくまで「その実行条件の中でのラベル」に過ぎない。

デモ:ACLデータの読み込みと前処理

library(mokken)
library(dplyr)
library(stringr)
library(knitr)

data(acl)

# データフレーム化(念のため)

df.acl <- as.data.frame(acl, check.names = FALSE)

# 欠損処理(このデータは欠損なしだが、手順として残す)

n_before <- nrow(df.acl)
df.acl <- na.omit(df.acl)
n_after <- nrow(df.acl)

# 整数化

df.acl <- as.data.frame(lapply(df.acl, as.integer))

cat("Rows before:", n_before, "Rows after na.omit:", n_after,
"Removed:", n_before - n_after, "\n")

AISPの実行

aisp_res <- mokken::aisp(df.acl, lowerbound = c(.30, .40, .50))
aisp_res
Warning in check.data(X) :
  Varying numbers of item scores were observed across the items.
  Either the items have the same number of response categories but some item categories were not endorsed;
  or the items have
      different numbers of categories by design. 
  In the latter case, the sum score cannot be used for (ordinal) measurement.
                  0.3 0.4 0.5
reliable           11  12  15
honest             11  12  15
unscrupulous.       0   0   0
deceitful.         26   0   0
unintelligent.     12  13  16
obnoxious.          8   0   0
thankless.         26   0   0
unfriendly.         8  22  28
dependable         11  12  15
cruel.              8   9  11
active              1   2   8
alert               3   0   0
ambitious           3   3   3
thorough            1  17   0
energetic           1   2   8
unambitious.        3   3   3
quitting.          30   0   0
determined          1  10  13
industrious         3  38   0
persevering         1  10  13
apathetic.          0   0   0
timid.              2  19  25
dominant            1  14  18
dreamy.             6  29   0
inhibited.          2  19  25
reserved.           2  19  25
enterprising        1   2   8
strong              1  10  13
withdrawn.          2  19  25
shy.                2  19  25
shiftless.          6   0   0
efficient           3   7   0
irresponsible.     23  28  42
hasty.             15  24  32
restless.          15   0   0
slipshod.           3   7  10
distractible.      30   0   0
stable              9  10  12
responsible         3  28  42
fickle.             0   0   0
organized           3   7  10
methodical          3  33   0
conscientious       3   0  10
precise             3   7  10
rattlebrained.     23  40   0
planful             3   7  10
confused.           6   7   7
foresighted         3   0   0
deliberate         19  35   0
painstaking         3   7  10
clear.thinking     12  13  38
intelligent        12  13  16
logical            12  20  38
reflective         12  35   0
rational           12  20  26
fair.minded        10  11  14
reasonable         10  11  14
serious             0   0   0
insightful         12  45   0
mature             19  30   0
kind               10  21  27
aloof.              2  31   0
helpful            10  11  30
intolerant.        28  22  39
sympathetic        10  11  30
snobbish.          32  44   0
affectionate       10   0   0
hostile.            8   9  11
friendly           10  11  27
distrustful.        8   9  11
pleasant            0  21  27
attractive          1   1   1
poised              9  10  12
sociable            1   2  36
relaxed             9  18  24
cheerful            1   2   8
optimistic          1   2   0
contented           8  18  31
versatile           1  16   0
self.controlled    19   0   0
modest.             0   0   0
outgoing            1   2  41
witty               4   4   4
sharp.witted        4   4   0
humorous            4   4   4
jolly               2   2  36
noisy               2   2   2
loud                2   2   2
talkative           2   2   2
silent.             2  19  25
aggressive         13  39   0
cynical             4   0   0
self.centered      13  14  21
egotistical        13  14  21
opinionated        22  36   0
headstrong         22   0   0
individualistic    20   0   0
indifferent         7   0   0
tactless            7   8   9
tactful.            7   8   9
patient.           16   0   0
calm.              16  25  33
argumentative       0  15   0
unkind              7   0   0
impatient          13  15  19
excitable           5  15  19
quiet.             16  25  33
quarrelsome        13  15   0
irritable           5  15  19
vindictive         13  39   0
adventurous         1  17  23
interests.narrow.  18  27  40
interests.wide     18  27  40
creative           24  16  34
daring              1  17  23
enthusiastic        1   2   8
initiative          1   2   8
curious             0   0   0
pleasure.seeking    1   0   0
dependent          17  26  37
fearful             5   5   5
whiny               5   0   0
infantile           0   0   0
complaining         5  15  35
nervous             5   5   5
independent.       17  26  37
confident.          5   6   6
self.pitying        5  41  35
spineless           0  37   0
anxious             5   5   5
cowardly            5  37  43
despondent          5   5  17
submissive          0   0   0
pessimistic         5   5  17
gloomy              5   5  17
self.punishing     29   0   0
self.denying       29  41   0
self.confident.     5   6   6
weak                5   5  43
arrogant           13  14  22
bossy              13  14  18
impulsive           1  32   0
forceful            1  10  13
uninhibited         1   2   0
boastful           13  14   0
rebellious         13  36   0
reckless           21  32   0
demanding          13  36   0
conceited          13  14  22
considerate        10   0   0
affected.          32   0   0
healthy             0   0   0
cold.              26  31   0
dissatisfied.       8   9  31
leisurely           9  18  24
fussy.             27  34   0
prudish.            0   0   0
dull.               2   0   0
nagging.            8  34   0
charming            1   1   0
ingenious          20  16  20
inventive           1  16  20
handsome            1   1   1
courageous          1  17  23
good.looking        1   1   1
original            1  16  34
clever              1  13  16
resourceful         1  16  20
wise                0  45   0
suspicious.         8   9  11
prejudiced.        28   0   0
tense.              9  18  24
good.natured       31   0   0
persistent.        14  23  29
selfish.            8   0   0
stubborn.          14  23  29
tolerant           10  22  39
forgiving          31   0   0
resentful.          8   9  11
understanding      10  11   0
defensive.          0   0   0
illiberal.          8  22  28
sincere            11  12  15
fault.finding.     27   0   0
sarcastic.         26   0   0
bitter.             8   9  31
appreciative       10  11   0
independent        19  30   0
self.seeking.       8  44   0
foolish.           23  43   0
peculiar.           8  43   0
emotional.         25  46   0
hurried.           15  24  32
zany.              23  40   0
orderly             3   7  10
practical           3  33   0
steady              9  10  12
absent.minded.      6   7   7
disorderly.         3   7   7
imaginative        24   0   0
flirtatious         1   0   0
moderate.           0   0   0
mischievous         1  32   0
outspoken           2   0  41
spunky              1   2   8
sexy                1   1   1
spontaneous         1   2   8
temperamental       1  32   0
cautious.          21   0   0
preoccupied.        6  29   0
worrying.          25  46   0
moody.              8  42   0
touchy.             8  42   0
lazy.              26  38   0
unrealistic.        6   0   0
realistic          12  20  26
forgetful.          6   7   7
high.strung.        9  18  24

Warning の解釈(重要)

AISP実行時に次の警告が出ることがある。

Varying numbers of item scores were observed across the items...

これは、主に次のどちらかを意味する。

  1. 設計上は同じカテゴリ数でも、あるカテゴリが誰にも選ばれず、観測上「カテゴリ数が揃っていない」ように見える
  2. 設計そのものが項目によってカテゴリ数が異なる(この場合は合計得点の順序測定が難しくなる)

ACLデータは基本的に同一カテゴリ設計のデモデータであり、ここでは多くの場合 (1) の事情(未使用カテゴリの存在)によって警告が出ていると理解してよい。したがって、警告=即アウトではないが、短尺度や実データでは(2)の可能性もあるため、データ仕様は常に確認しておくのが安全である。

AISP出力の読み方(最小限)

AISPの出力表(行=項目、列=lowerbound)において、

  • 同じ数字=同じ尺度(同一クラスター)
  • 0=どの尺度にも入らない項目

である。lowerboundを 0.3 → 0.4 → 0.5 と上げるほど、条件が厳しくなり、尺度は分割・縮退し、0や2項目尺度が増えやすい。

ACLのように多数項目から成るデータでは、しばしば多数の尺度が抽出される。これは「単一尺度」というより、複数の下位特性(クラスター)を含む多次元的構造があることを示唆する。

抽出された各尺度ごとに尺度係数Hを再計算する

AISPは「どの項目が同じ尺度に入ったか」を返すが、各尺度がどの程度まとまっているか(尺度性)は、抽出後に coefH() などで確認する必要がある。そこで、lowerboundごと・尺度ごとに、尺度係数Hと標準誤差seH、項目数k、項目リストを表にする。

aisp_mat <- as.matrix(aisp_res)
lbs <- colnames(aisp_mat)

out <- data.frame(
  lowerbound = numeric(0),
  scale      = integer(0),
  k          = integer(0),
  H          = numeric(0),
  seH        = numeric(0),
  items      = character(0),
  stringsAsFactors = FALSE
)

for (lb in lbs) {
  sc <- aisp_mat[, lb]
  scale_ids <- sort(unique(sc[sc > 0]))

  for (s in scale_ids) {
    item_names <- rownames(aisp_mat)[sc == s]  # ← names(sc) ではなく rownames 推奨
    k <- length(item_names)

    if (k < 2) {
      out <- rbind(out, data.frame(
        lowerbound = as.numeric(lb),
        scale      = s,
        k          = k,
        H          = NA_real_,
        seH        = NA_real_,
        items      = paste(item_names, collapse = ", ")
      ))
      next
    }

    ch <- coefH(df.acl[, item_names, drop = FALSE],
                se = TRUE,
                nice.output = FALSE)

    out <- rbind(out, data.frame(
      lowerbound = as.numeric(lb),
      scale      = s,
      k          = k,
      H          = as.numeric(ch$H),
      seH        = as.numeric(ch$se.H),
      items      = paste(item_names, collapse = ", ")
    ))
  }
}

out <- out[order(out$lowerbound, out$scale), ]
print(out)

lowerbound を段階的に変えて AISP を実行したところ、複数の項目群がスケールとして抽出された。抽出された各スケールについて伸長性指標 H(se.H)を算出し、概ね 弱〜中程度の伸長性を示した。あわせて各項目の Hi(se.Hi)も確認したところ、項目間の一貫性は大きく崩れず、スケールとしてのまとまりは保たれていた。なお、Hij(項目ペア指標)は情報量が大きいため本文では省略し、必要に応じて問題となるペアのみ補足で扱う。

1) lowerboundごとの抽出状況(全体像)

本文では「AISPの結論がどのように変わるか」をまず俯瞰する。ここでは、尺度数、2項目尺度の多さ、k≥4の“読み物として意味のある尺度”の数などを要約する。

summary_lb <- out %>%
group_by(lowerbound) %>%
summarise(
n_scales = n(),
n_pairs  = sum(k == 2, na.rm = TRUE),
n_kge4   = sum(k >= 4, na.rm = TRUE),
prop_pairs = n_pairs / n_scales,
H_min = min(H, na.rm = TRUE),
H_med = median(H, na.rm = TRUE),
H_max = max(H, na.rm = TRUE),
.groups = "drop"
)

kable(summary_lb, digits = 3, caption = "lowerbound別:抽出尺度の概観(尺度数・2項目尺度の割合・Hの分布)")

Table: lowerbound別:抽出尺度の概観(尺度数・2項目尺度の割合・Hの分布)

lowerbound n_scales n_pairs n_kge4 prop_pairs H_min H_med H_max
0.3 32 14 16 0.438 0.308 0.383 0.603
0.4 46 26 17 0.565 0.420 0.479 0.823
0.5 43 24 9 0.558 0.501 0.579 0.823

解釈

lowerbound を上げるほど判定条件は厳しくなり、抽出される尺度は小さく分割されやすい(ただし尺度数が単調に増えるとは限らない)。その結果として、2項目尺度(ペア)の比率は高くなりやすく、本データでも 0.3→0.4 で上昇し、0.5 でも高止まりしている。一方で、本文で「意味のあるクラスター」として扱いやすい k≥4 の尺度は、lowerbound を高めれば自動的に増えるわけではなく、今回の設定では 0.5 で減少している点に注意が必要である。ACL のような語彙特性データは単一特性に収まりにくく、外向性・誠実性・協調性・情緒安定性など複数のまとまりを含みうるため、AISP が多数の尺度を返すこと自体は自然だと考えられる。

2) 主要尺度の提示:lowerbound = 0.4、k≥4

なぜ lowerbound=0.4 を主要結果とするのか

AISP(Automated Item Selection Procedure)における lowerbound は、項目間結びつき(例:Loevinger の H など)に対して「どの程度以上を“同一尺度”として許容するか」を決める閾値である。閾値を下げれば弱い関連も許容され、尺度は大きくまとまりやすい反面、尺度内の等質性(単一性)が低下しやすい。逆に閾値を上げれば強い関連のみが残り、尺度の等質性は上がるが、尺度が細分化し、2項目ペアのような“読み物としてのクラスター”になりにくい結果が増えることが知られている〔A〕〔B〕。

本データでも、lowerbound=0.3 は尺度数が少なく(=まとまりやすい)が、2項目尺度の割合が相対的に低い一方で、H の中央値が lowerbound=0.4/0.5 より低く、弱い結合を含む尺度が混ざりやすい配置であった。対照的に lowerbound=0.5 は H が高い尺度のみが残るが、k≥4 の尺度数が大きく減り、2項目尺度が増えて(クラスターとしての説明可能性が低下して)しまう。AISPは探索的に“まとまり”を抽出する手続きであり、過度に低い閾値は異質な項目の混在を、過度に高い閾値は尺度の過分割(fragmentation)を招くため、実務的には「等質性と可読性(解釈可能な塊としてのまとまり)」のバランス点を主要結果として採用するのが妥当である〔A〕〔C〕。以上を踏まえ、本稿では 中程度以上の等質性を確保しつつ、解釈可能なクラスター(k≥4)が比較的保たれる lowerbound=0.4 を主要結果として提示する。

また、2項目尺度(k=2)は、(i)ほぼ同義の言い換え、(ii)強い対概念、(iii)局所依存(項目文の近接や表現の類似)によって“強く結びついて見える”ケースが混入しやすい。2項目だけでは尺度としての情報量が小さく、信頼性・妥当性の議論も限定されるため、本文では主要解釈から外し、付録で一覧提示する方針とする〔D〕〔E〕。したがって、以下では lowerbound=0.4 かつ k≥4 の尺度を主要クラスターとして取り上げ、ACL語彙特性データがどのような多次元構造(例:外向性・誠実性・協調性・情緒安定性など)に分割されるのかを検討する。

〔A〕Sijtsma, K., & Molenaar, I. W. (2002). Introduction to Nonparametric Item Response Theory. Sage. 〔B〕Mokken, R. J. (1971). A Theory and Procedure of Scale Analysis. De Gruyter. 〔C〕van der Ark, L. A. (2007). Mokken scale analysis in R. Journal of Statistical Software, 20(11), 1–19. 〔D〕Clark, L. A., & Watson, D. (1995). Constructing validity: Basic issues in objective scale development. Psychological Assessment, 7(3), 309–319. 〔E〕Tavakol, M., & Dennick, R. (2011). Making sense of Cronbach’s alpha. International Journal of Medical Education, 2, 53–55.

main_04 <- out %>%
filter(lowerbound == 0.4, k >= 4) %>%
arrange(desc(H), desc(k))

kable(main_04, digits = 3,
col.names = c("lowerbound", "尺度", "k", "H", "seH", "項目(items)"),
caption = "主要尺度(lowerbound=0.4、k≥4):尺度係数Hと項目リスト")

Table: 主要尺度(lowerbound=0.4、k≥4):尺度係数Hと項目リスト

lowerbound 尺度 k H seH 項目(items)
0.4 1 5 0.621 0.030 attractive, charming, handsome, good.looking, sexy
0.4 12 4 0.566 0.036 reliable, honest, dependable, sincere
0.4 19 6 0.540 0.024 timid., inhibited., reserved., withdrawn., shy., silent.
0.4 18 5 0.523 0.028 relaxed, contented, leisurely, tense., high.strung.
0.4 13 4 0.515 0.032 unintelligent., clear.thinking, intelligent, clever
0.4 16 6 0.514 0.026 versatile, creative, ingenious, inventive, original, resourceful
0.4 17 4 0.491 0.031 thorough, adventurous, daring, courageous
0.4 9 7 0.482 0.029 cruel., hostile., distrustful., dissatisfied., suspicious., resentful., bitter.
0.4 5 7 0.474 0.022 fearful, nervous, anxious, despondent, pessimistic, gloomy, weak
0.4 15 6 0.469 0.026 argumentative, impatient, excitable, quarrelsome, irritable, complaining
0.4 22 4 0.463 0.040 unfriendly., intolerant., tolerant, illiberal.
0.4 7 11 0.463 0.022 efficient, slipshod., organized, precise, planful, confused., painstaking, orderly, absent.minded., disorderly., forgetful.
0.4 10 7 0.462 0.027 determined, persevering, strong, stable, poised, forceful, steady
0.4 11 7 0.444 0.033 fair.minded, reasonable, helpful, sympathetic, friendly, understanding, appreciative
0.4 14 7 0.443 0.025 dominant, self.centered, egotistical, arrogant, bossy, boastful, conceited
0.4 32 4 0.430 0.031 impulsive, reckless, mischievous, temperamental
0.4 2 16 0.424 0.021 active, energetic, enterprising, sociable, cheerful, optimistic, outgoing, jolly, noisy, loud, talkative, enthusiastic, initiative, uninhibited, spunky, spontaneous

主要尺度の解釈メモ(短く)

上の表を見ると、ACLは単一尺度というより、次のような意味的に近い語群がまとまりやすい。

  • 誠実性/信頼性(reliable, honest, dependable, sincere など)
  • 内向性/抑制・引っ込み思案(timid, inhibited, reserved, withdrawn, shy, silent など)
  • 情緒不安定/不安傾向(fearful, nervous, anxious, despondent, pessimistic, gloomy, weak など)
  • 敵意・不信(cruel, hostile, distrustful, suspicious, resentful, bitter など)
  • 外向性・活動性(active, energetic, sociable, talkative, enthusiastic, initiative など)
  • 創造性・柔軟性(creative, inventive, original, resourceful など)

このようなまとまりが得られる点は、AISPが「データが多次元的でありうる」ことを具体的に可視化していると解釈できる。したがって、ACL全体を単一の合計得点で扱うよりも、抽出された下位尺度ごとに運用するほうが自然な場合が多い。

次回

次回は、本稿で主要結果として提示した下位尺度(lowerbound=0.4、k≥4)を対象に、単調性(monotonicity) と不変項目順序(IIO)の診断を行い、順序尺度としての運用可能性を追加で点検する。