為了精簡量表的題項摩窃,減少測量模型中題項的數(shù)目芬骄,可以通過信度鹦聪、因子負(fù)荷以及題總相關(guān)等信息對問卷中的題目進(jìn)行刪減。然而在實踐中 泽本,這些方法在使用時是逐步進(jìn)行的,不同的步驟會導(dǎo)致刪減的結(jié)果不同规丽,從而產(chǎn)生主觀選擇實施步驟而導(dǎo)致的錯誤。
Leite等(2008)提出了使用蟻群算法進(jìn)行量表題項的精簡赌莺。采用蟻群算法可以避免逐步使用各種指標(biāo)進(jìn)行問卷簡化時所產(chǎn)生的偏差。通過綜合考察各種模型擬合狀況的參考指標(biāo)艘狭,蟻群算法可以比其他方法更好地簡化問卷題目。
蟻群算法的邏輯來源于螞蟻如何解決食物源與巢穴之間的最短路線的問題缓升。螞蟻們?yōu)榱苏业阶疃搪肪€,首先會隨機(jī)選擇通往食物源的路線骇吭,然后在路線上留下信息素,用來吸引同伴燥狰。那些最短的路徑會更快地聚集信息素,因此會吸引更多的螞蟻龙致,從而形成良性循環(huán)顷链,直到螞蟻們匯聚到最短的路徑上目代。
該算法首先從問卷中隨機(jī)抽取N個題目(對應(yīng)著N個路線)作為一個簡版的問卷嗤练。然后用指定的各種指標(biāo)對問卷進(jìn)行評估,比如使用信度煞抬、關(guān)聯(lián)指標(biāo)或者是模型擬合指數(shù),如果評估結(jié)果良好革答,則簡版問卷中題目的概率權(quán)重(對應(yīng)著信息素的量)就會增加曙强。多次重復(fù)上述過程途茫,那些最可能具有良好評估結(jié)果的題目的概率權(quán)重會越來越大,更可能被抽取出來慈省,從而形成良性循環(huán),產(chǎn)生最終的抽取結(jié)果边败,形成簡化問卷捎废。
R語言的ShortForm包提供了用來簡化問卷的蟻群算法的代碼。這里提供一個例子來說明如何使用ShortForm包提供的蟻群算法進(jìn)行題項的精簡登疗。
# 測量模型按照lavaan包接受的方式來表達(dá)。此處測量模型的驗證性因子分析是lavaan包作為分析工具辐益。
# 接下來,創(chuàng)建一個題項名稱的列表
# 本例中智政,所有的體現(xiàn)都測量是“Ability”的觀測指標(biāo)。
list.items <- list(c('Item1','Item2','Item3','Item4','Item5',
'Item6','Item7','Item8','Item9','Item10',
'Item11','Item12','Item13','Item14','Item15',
'Item16','Item17','Item18','Item19','Item20',
'Item21','Item22','Item23','Item24','Item25',
'Item26','Item27','Item28','Item29','Item30',
'Item31','Item32','Item33','Item34','Item35',
'Item36','Item37','Item38','Item39','Item40',
'Item41','Item42','Item43','Item44','Item45',
'Item46','Item47','Item48','Item49','Item50',
'Item51','Item52','Item53','Item54','Item55','Item56'))
# 加載一個隨機(jī)生成的數(shù)據(jù)集
data(simulated_test_data)
# 最后垦垂,對antcoloy.lavaan的參數(shù)稍微做調(diào)整
abilityShortForm = antcolony.lavaan(data = simulated_test_data,
ants = 5, evaporation = 0.7, antModel = exampleAntModel,
list.items = list.items, full = 56, i.per.f = 20,
factors = 'Ability', steps = 3, fit.indices = c('cfi', 'rmsea'),
fit.statistics.test = "(cfi > 0.95)&(rmsea < 0.05)",
summaryfile = 'summary.txt',
feedbackfile = 'iteration.html',
max.run = 500)
abilityShortForm[[1]] # 顯示最后的運算結(jié)果
蟻群算法的結(jié)果顯示的是哪些題項予以保留牙瓢。若某題項的計算結(jié)果顯示為1,則該題項予以保留矾克;若為0則建議刪去。
蟻群算法的計算需要基于R中用于潛變量建模的lavaan包,因此其模型設(shè)定的語法可參考潛變量建模lavaan包的使用說明。