kitsUI 是 kits 的 Shiny 介面。 計算全部交給 kits,kitsUI 只負責畫面、檢查和下載。
四個頁面依序做:
下一回合上傳新的波次和上一回合的固定檔,從 ① 再做一次。
最後一頁「使用手冊」有完整的操作步驟與截圖(原稿在 tools/manual/)。
舊的參數不動,早先的分數也不重算。
一個回合可以一次勾好幾個波次。同一個量尺的各波合在一起做一次固定校準,偏移也合起來判斷。 已經收完的好幾波,建議一次勾;以後每次新收一波,再只勾那一波。 兩種做法的對照與 kitsUI 的處理流程,見使用手冊「任務二 → 一次加好幾波」。
見 NEWS.md。
這一版讓 KIT 以外的資料(例如世代不叫 M03、M36,或不是發展量表)也能從頭做到尾。 KIT 的資料照舊:示範資料 M03 + M36 兩回合的題庫、連結、分數和 0.3.12 完全相同(只有偏移紀錄的說明文字改了,見下面)。
kits::kits_anchors(),lan、motor、cog)時做。
沒有錨題時 ③ 寫「不適用」,這不是錯誤;④ 分數表的最後分數是參照世代量尺上的 ref_score(取代空白的 d_score)。Checksums)。上傳時核對;被改過的固定檔先擋下來,
可以按「仍然使用這個固定檔(我知道它被改過)」。0.3.12 以前的固定檔照樣讀,固定檔資訊寫「沒有核對碼」。
zip 只讀根目錄(或唯一一層資料夾)的檔案,子資料夾裡同名的檔案(例如 old/bank.csv)不會再蓋掉真的檔案。WaveUnit)。
單位不是月時,不照月齡借另一世代的題庫,題目表也不算 age50。之前的固定檔當成月。excluded。停下來的紅框裡有一鍵的「這一回合不做…,再校準一次」。excluded 那一列寫「insufficient information to estimate: …」,
② 的摘要與量尺一覽、④ 的固定檔說明都寫出這個量尺是因為資訊不足而跳過。其他原因停下來(資料有問題)時照舊。drift not judged, kept fixed)。steps、steps_judged(有判斷的步驟數)、steps_dropped(被拿掉的步驟)、
max_dist_judging(判斷的步驟離判斷用的線最遠的距離,就是判斷用的數字);
kits 的 max_abs_resid 改叫 max_dist_final,它包括沒有判斷的步驟、對最後的線算,只供參考。
表下面寫這個量尺的界線(2 × 殘差標準差);紀錄的說明改成「第 3 步離判斷用的線 0.40 logit,超過界線 0.31 logit」。
判斷本身沒有改。WaveUnit(一律當成月,下一個固定檔也不再有這一行)、
內部與外部連結仍然只認 M03,世代名稱有空白的量尺在下一回合會停下來。請大家都換成 0.4.0。lanc09_rR2),用這一波重新估;最後做固定校準。
所以偏移是在固定之前判斷的,固定之後的題不會偏移。step,三種門檻與 age50 照它算。
紅字是設定沒有套用;橘字是這一回合沒有的題,設定照樣存著給之後的回合。
校準、連結與分數都用全部的分數,不受影響。① 作答設計圖的通過比例也照它算。
例如之後的認知題是 0–4 分、3 分以上才算通過時用它。wave_summary.csv、pass_steps.csv(見下面「固定檔」)。④ 頁下載的 kitsui_fixed_R1.zip、kitsui_fixed_R2.zip… 是同一把尺。
下一回合一定要上傳它。請不要解壓縮後修改再壓縮:VERSION 記下每個檔案的 SHA-256,改過的檔案上傳時會被擋下來。
| 檔案 | 內容 |
|---|---|
| VERSION | 版本、建立日期、各回合名稱、參照世代(第一回合選的)、量尺、各回合的資料檔(md5)、波次的單位(WaveUnit,0.4.0 起;沒有這一行是月)、每個檔案的 SHA-256(Checksums,0.4.0 起) |
| bank.csv | 題庫:每個量尺每一題每一步的 beta 與標準誤 |
| versions.csv | 題目版本:偏移的題原來的題號與新的題號 |
| waves.csv | 每個題庫校準過的波次 |
| wave_summary.csv | 各量尺、世代、波次的人數、能力值的 P25、中位數、P75(校準的量尺上)與實際月齡的中位數(0.3.11 起);只有摘要,沒有個人資料 |
| pass_steps.csv | 通過步驟;沒列的題用 1。下一回合沿用;新版本用原來那一題的設定 |
| links.csv | 連結的點與設定 |
| checks.csv | 每一回合的檢查紀錄(0.4.0 起多了 excluded:這一回合不做的量尺;drift not judged, kept fixed:不能判斷偏移、固定在題庫的值) |
| README.txt | 固定檔的說明 |
install.packages("pak")
# pak::pkg_install("jiewenTsai/kitsUI")
install.packages("kitsUI", repos = c('https://jiewentsai.r-universe.dev', 'https://cloud.r-project.org')) # 會一起裝 kits、kitDesign,並把太舊的套件更新到需要的版本
kitsUI::run_kitsui()
pak 安裝失敗時,可以改用 remotes(upgrade = "always" 才會更新太舊的套件):
install.packages("remotes")
remotes::install_github("jiewenTsai/kitsUI", upgrade = "always")
Windows 也可以雙擊 run.bat:第一次會自動安裝需要的套件,之後每次打開都會檢查版本,
太舊的會自動更新(照 DESCRIPTION 寫的最低版本)。
打開時說「bslib 版本太舊」:在 R 執行 install.packages("bslib"),再重新開啟。
下載圖檔(HTML)需要 pandoc;裝了 RStudio 或 Quarto 就有。
長格式,一列是一個列次(一個孩子的一個波次)的一題作答。
手上的資料是寬格式(一題一欄)、欄名不一樣,或分數不是從 0 開始時,
先用 kitJoin 的「kits 作答檔」轉好再上傳(本機版:在 R 執行 kitJoin::run_kitjoin(),資料不會離開這台電腦)。
① 資料頁的上傳說明和紅字裡也有「開啟 kitJoin」按鈕。
| 欄位 | 必填 | 意思 |
|---|---|---|
| visit_id | 是 | 列次編號,每個孩子的每個波次不同 |
| subj_id | 否 | 孩子編號 |
| cohort | 是 | 世代,例如 M03、M36;名稱可以有空白 |
| sex | 否 | 性別 |
| wave_m | 是 | 波次。KIT 是施測月齡;也可以是年或波次序號(在 ① 第一回合選單位) |
| age_m | 否 | 實際月齡 |
| item_id | 是 | 題號 |
| item_score | 是 | 得分,從 0 開始的整數 |
| domain | 是 | 領域,例如 lan、motor、cog |
① 頁可以下載欄位範例檔。
外部連結用 kits::kits_anchors() 的錨題,領域名稱要和它一致(lan、motor、cog)。
參照世代沒有錨題時(例如不是發展量表),外部連結不適用,分數停在參照世代的量尺上(ref_score)。
app.R 是 Posit Connect Cloud 的主檔,manifest.json 記錄套件版本。
新增或移除 R/ 的檔案、或更新套件後,請重新產生 manifest.json:
rsconnect::writeManifest(appPrimaryDoc = "app.R")
雲端版只能上傳已去識別化的資料。
GPL-3。