Skip to contents

調査データを作成する.

Usage

makeSurvey(
  mbCAT,
  lSLOT,
  lSETTING,
  mnASSIGNCAT,
  anPARENTCAT,
  mnASSIGNSLOT,
  sVERBOSE = c("simple", "none", "detail")
)

Arguments

mbCAT

整数行列。 調査対象者のカテゴリ割付可能性。 mbCAT[i,j]は以下を表す。欠損不可。

  • 1: 調査対象者iはカテゴリjについて割付可能。

  • 0: 調査対象者iはカテゴリjについて割付不能。

列に名前を付けるとカテゴリ名とみなされる。 名前を付けるならばすべての列に重複なく名前をつけること。

lSLOT

整数行列のリスト。 調査対象者のスロット割付可能性。 lSLOT[[j]][i,k]は以下を表す。

  • 1: 調査対象者iはカテゴリjのスロットkについて割付可能。

  • 0: 調査対象者iはカテゴリjのスロットkについて割付不能。

欠損についてはDetailsを参照。

要素の各列に名前を付けたときはスロット名とみなされ、 各列の列名がlSETTING$lSLOT_REQUESTと一致していないと エラーとなる。

lSETTING

`assignsetting'クラスのオブジェクト。 調査データを得た際の割付のセッティング。makeSettingで生成する。

mnASSIGNCAT

整数行列。 調査対象者の割付カテゴリ。列数はlSETTING$nCAT_MAXと一致すること。 mnASSIGNCAT[i,j]は、調査対象者iのj番目の割付カテゴリ番号(mbCATの列番号)を表す。 調査対象者iの割付カテゴリ数が列数より小さい場合はNAを埋める。 列順には意味がない。

anPARENTCAT

整数ベクトル。 調査対象者の割付スロットが属するカテゴリ。 anPARENTCAT[i]は、調査対象者iの割付スロットが属するカテゴリ番号(mbCATの列番号)を表す。 調査対象者iがスロットに割り付けられなかった場合はNAを埋める。

mnASSIGNSLOT

整数行列。 調査対象者の割付スロット。列数は、列数はlSETTING$nSLOT_MAXと一致すること。 mnASSIGNSLOT[i,j]は、調査対象者iの割付スロット番号(lSLOT[[anPARENTCAT[i]]]の列番号)を 表す。調査対象者iの割付スロット数が列数より小さい場合はNAを埋める。 列順には意味がない。

sVERBOSE

文字列。 画面表示レベル。

Value

`surveydata`クラスのオブジェクト。その実体は以下の要素を持つリスト。

  • lSETTING リスト。引数lSETTINGの値。

  • mbCAT 整数行列。引数mbCATの値。 列名がついていなかった場合は、 列名"Cat_(j)"が付与される。

  • lSLOT 整数行列のリスト。引数lSLOTの値。ただし、割付不能カテゴリの スロット割付可能性はすべてNAに変更される。また、要素の行にひとつでもNAがあったら その行はみなNAに変更される。 列名がついていなかった場合はlSETTING$lSLOT_REQUESTの要素名が付与される。

  • manSubjectCat_AltSubject 整数ベクトルを要素とする行列。行は対象者(mbCATの行), 列はカテゴリ(mbCATの列), 要素はその対象者のスロット割付可能性を調べるときに 参照すべき対象者番号のベクトル。

  • mnSubjectCat_AltStatus 整数ベクトルの行列。行は対象者(mbCATの行), 列はカテゴリ(mbCATの列), 要素は以下のいずれか:

    • NA: 割付不能カテゴリ

    • 0: スロット割付可能性が既知

    • 1: スロット割付可能性が未知であるためカテゴリ割付可能性が同じ対象者で代替

    • 2: スロット割付可能性が未知であるため割付カテゴリ数が同じ対象者で代替

    • 3: スロット割付可能性が未知であるためランダムに選んだ対象者で代替

Details

lSLOTの欠損は以下のように扱われる。

  • Case 1. mbCAT[i,j] == 0のとき、 lSLOT[[j]][i, ]は無視される。すなわち、 ある対象者があるカテゴリに対して割付不能な時、 その対象者のそのカテゴリに属するスロットへの割付可能性は未知として扱われ、 指定しても無視される。

  • Case 2. mbCAT[i,j] == 1でありjmnASSIGNCAT[i,]に含まれているとき、 lSLOT[[j]][i, ]の欠損は許されない。すなわち、 ある対象者があるカテゴリに割り付けられた場合、 その対象者のそのカテゴリに属するスロットへの割付可能性は既知であるはずなので、 指定しなければならない。

  • Case 3. mbCAT[i,j] == 1でありjmnASSIGNCAT[i,]に含まれていないとき、 lSLOT[[j]][i, ]の欠損はある程度まで許容される。すなわち、 ある対象者があるカテゴリに割付可能であったが割り付けられなかった場合、 その対象者のそのカテゴリに属するスロットへの割付可能性は、分かっている限りにおいて 指定すればよい。ある行に欠損がある場合、その行はすべて欠損とみなされる。

Case 3.に相当する調査対象者も、 再割付シミュレーションにおいてカテゴリ j に割り付けられる可能性がある。 そのため、jに属するスロットへの割付可能性が欠損である調査対象者については、 それらの欠損を補完する必要が生じる。このとき、 SurveyAssignパッケージによるシミュレーションでは、 調査対象者 i の割付可能性を 他の調査対象者 i' の割付可能性によって置き換える。 i' はシミュレーション試行ごとに、次の手順で選ばれる。

  • Step 1. jに属するスロットへの割付可能性が既知であり、 かつJ個のカテゴリへの割付可能性が i と同一である人の中からランダムに選ぶ。

  • Step 2. みつからなかった場合は、jに属するスロットへの割付可能性が既知であり、 かつ割付可能なカテゴリの数が同一である人の中からランダムに選ぶ。

  • Step 3. みつからなかった場合は、jに属するスロットへの割付可能性が既知である 人の中からランダムに選ぶ。

makeSurveyは、今後のシミュレーションの際に 上記の手順での補完が可能かどうかをチェックし、Step 1で補完できない人が 出現した場合には警告を表示する。

Examples

data(surveydata, package = "rSurveyAssign")
lSurvey <- makeSurvey(
  mbCAT = as.matrix(surveydata[, paste0("bCat_", 1:3)]),
  lSLOT = list(
    as.matrix(surveydata[, paste0("bSlot_1_", 1:10)]),
    as.matrix(surveydata[, paste0("bSlot_2_", 1:10)]),
    as.matrix(surveydata[, paste0("bSlot_3_", 1:10)])
  ),
  lSETTING = makeSetting(
    lSLOT_REQUEST = list(rep(10, 10), rep(10, 10), rep(10, 10)),
    nCAT_MAX      = 2,
    sCAT_ASSIGN   = 'assignable-openclosed-open-none',
    nSLOT_MAX     = 2,
    sSLOT_ASSIGN  = 'assignable-shortnum-assignable-allclosed'
  ),
  mnASSIGNCAT   = as.matrix(surveydata[, c("nAssignedCat_1", "nAssignedCat_2")]),
  anPARENTCAT   = as.vector(surveydata$nAssignedCat_Slots),
  mnASSIGNSLOT  = as.matrix(surveydata[, c("nAssignedSlot_1", "nAssignedSlot_2")])
)
#> [makeSetting] assign names to lSLOT_REQUEST ...
#> [makeSurvey] # of categories: 3 
#> [makeSurvey] # of slots: 10,10,10 
#> [makeSurvey] # subjects: 504 
#> [makeSurvey] # of pairs of subject-category:
#> [makeSurvey]   total: 1512 
#> [makeSurvey]   assignable: 1337 (445.7/category) 
#> [makeSurvey]   assigned: 1767 (589.0/category) 
#> [makeSurvey]   assignable but assignabilities to slots are unknown: 447 (149.0/category) 
#> [makeSurvey]     each of these subjects will be complemented by:
#> [makeSurvey]     a subject who has the same pattern of assignable categories: 447 
#> [makeSurvey]     a subject who has the same number of assignable categories: 0 
#> [makeSurvey]     a subject who is randomly selected: 0 
#> [makeSurvey] # of pairs of subject-slot:
#> [makeSurvey]   in assignable categories: 13370 (445.7/slot) 
#> [makeSurvey]   known to be assignable: 1829 (61.0/slot) 
#> [makeSurvey]   assigned: 346 (11.5/slot)