make survey data
makeSurvey.Rd
調査データを作成する.
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
でありj
がmnASSIGNCAT[i,]
に含まれているとき、lSLOT[[j]][i, ]
の欠損は許されない。すなわち、 ある対象者があるカテゴリに割り付けられた場合、 その対象者のそのカテゴリに属するスロットへの割付可能性は既知であるはずなので、 指定しなければならない。Case 3.
mbCAT[i,j] == 1
でありj
がmnASSIGNCAT[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)