第六章 結論與建議
6.2 研究建議與方向
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
74
性質正確率為0.8466 及相關係數約為 0.77 左右。大體而言,在此種加權及鑑別 參數設定下,符合SOM 性質正確率約有七成三以上,符合 SOL 性質正確率約有 六成九以上,而相關係數約有0.5 以上。
此種加權設定與沒有加權的情況比較後,可以發現不管是正確率或是相關係 數,沒有加權的情況都比加權來的好,因此在此種情況下,加權似乎是沒有必要 的。由於加權效果好壞的重要關鍵之一為權重選取的適當與否,因此模擬實驗的 結果並非全盤否定加權的不必要性,只能說針對我們的模擬資料形式,1、1、1、
2、3 的加權方式與未加權的情況相較,加權顯然是多此一舉。我們也針對 1、2、
3、4、5 的這種加權方式進行較小規模的模擬實驗,結果依然不如未加權的情況。
不過我們充其量只針對兩種權重的情況做考量,所以之後可能還需要多考慮其他 的權重後,才能提出更一般性的結論。
6.2 研究建議與方向
本研究只針對試題個數為五題,試題的難易度平均分散於[-1.5, 1.5]間的情況 進行探討。我們考慮四種鑑別參數的情況,分別是 0.75、1.00、1.25 及 1.50,
但每個試題的鑑別參數值都一樣,表示每個試題的斜率都相同。另外,因為模擬 實驗及時間限制的關係,我們只考慮試題從易至難排序權重分別是 1、1、1、2 及3 這一種加權方式。為了得到更一般化的結論,這些模擬實驗的涵蓋範圍明顯 不足,未來應該可以朝多方面去探討:
(1) 因為我們設定受試者潛在特質為標準常態分配,也許可以考慮試題的難易度 涵蓋區域較廣的情況,例如:[-3, 3]。再者試題難易度甚至也不一定要對稱 分布,藉以了解正確率跟相關係數會有何改變。
(2) 本研究設定每個試題的鑑別參數都相同,也就是每個試題的斜率都一樣,具 有非相交性符合雙重單調性模型,是單調同質性模型中其中一種,也許也可 以探討每個試題鑑別參數不同的時候,不具有非相交性這個假設,來看正確
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
75
率跟相關係數會有甚麼改變。
(3) 因為模擬實驗及時間限制的關係,我們只能針對兩種權重的情況作探討,且 權重的給予方式是屬於單調性的結構,也就是說較困難的試題權重較重,但 也許有時候簡單的試題也需要加權重,還有許多不同的加權方式,端看研究 者所需而定。如何針對不同的試題選取適當的權重,這恐怕不是件容易處理 的問題,但應該也值得做進一步的探究。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
76
參考文獻
章英華、傅仰止(2006)。台灣社會變遷基本調查五期一次- 綜合問卷組(C00153_1)
【原始數據】。取自中央研究院人文社會科學研究中心調查研究專題中心學 術調查研究資料庫http://srda.sinica.edu.tw。
doi:10.6141/TW-SRDA-C00513_1-1
Grayson, D. A. (1988). Two group classification in latent trait theory: Scores with monotone likelihood ratio. Psychometrika, 53, 383-392.
Guttman, L. (1950). The utility of scalogram analysis. In S. A. Stouffer, L. Guttman, E. A. Suchman, P. F. Lazarsfeld, S. A. Star, & J. A. Clausen (Eds.), Measurement and prediction. Studies in Social Psychology in World War II (Vol. 4, pp.
122-171). New York, NY: Wiley.
Huynh, H. (1994). A new proof for monotone likelihood ratio for the sum of independent bernoulli random variables. Psychometrika, 59, 77-79.
Lehmann, E. L. (1986). Testing statistical hypotheses. 2nd Ed., New York: Wiley.
Loevinger, J. (1948). The technique of homogeneous tests compared with some aspects of "scale analysis" and factor analysis. Psychological Bulletin, 45, 507-530.
Mokken, R. J. (1971). A theory and procedure of scale analysis. With applications in political research. Berlin, Germany: De Gruyter (Mouton).
‧
out.items <- seq(from=-1.5, to=1.5, length=items)
out.alphas <- rep(0.75, alphas) out.alphas
out.persons <- sort(rnorm(persons)) out.persons
non.weight.matrix <- matrix(1, nrow=n.persons, ncol=(n.items+1), byrow=TRUE)
out.non.weight.matrix1 <- non.weight.matrix
#out.non.weight.matrix1
out.weight.matrix <- matrix(c(out.weight,1), nrow=n.persons, ncol=(n.items+1),
byrow=TRUE)
‧
out.weight.matrix1 <- out.weight.matrix#out.weight.matrix1
n.compare.1 <- (n.persons)*(n.persons-1)/2
#n.compare.1
(non.finaldata1[[s]][-(1:u), n.items+2] >=
rep(non.finaldata1[[s]][u, n.items+2], n.persons-u))*1
non.compare1[u, -(1:u)] <- non.compare1.data
}
out.non.compare1[[s]] <- non.compare1 cat(s ,"Gd \n")
} cat("End"," \n")
#out.non.compare1
compare1 <- matrix(0, nrow=n.persons, ncol=n.persons)
for (u in 1:(n.persons-1)){
compare1.data = (finaldata1[[s]][-(1:u), n.items+2] >= rep(finaldata1[[s]][u,
n.items+2], n.persons-u))*1
b <- sum(out.compare1[[s]])/n.compare.1 prob1 <- cbind(prob1, b)
cat(s ,"Ok \n") }
#prob1
#--- abc <- as.numeric(rbind(non.prob1, prob1)) prob.matrix <- matrix(abc, nrow=m, ncol=2, byrow=TRUE)
pick1=NULL
compare.pick1=NULL
‧
{pick1[t]=1} else {pick1[t]=0}compare.pick1[t] <- pick1[t]
cor.noweight <- cor(non.finaldata1[[s]][, (n.items+1)], non.finaldata1[[s]][,
(n.items+2)])
non.cor <- cbind(non.cor, cor.noweight) cat(s ,"Ok \n")
}
#non.cor
non.prob1.cor <- rbind(non.prob1, non.cor) non.prob1.cor.matrix <- matrix(non.prob1.cor, nrow=m, ncol=2, byrow=TRUE)
cor=NULL for (s in 1:m){
cor.weight <- cor(finaldata1[[s]][,
(n.items+1)], finaldata1[[s]][, (n.items+2)]) cor <- cbind(cor, cor.weight)
cat(s ,"Ok \n") }
#cor
prob1.cor <- rbind(prob1, cor) prob1.cor.matrix <- matrix(prob1.cor, nrow=m, ncol=2, byrow=TRUE)
‧
out.items <- seq(from=-1.5, to=1.5, length=items)
out.alphas <- rep(1.5, alphas) out.alphas
out.persons <- sort(rnorm(persons)) out.persons
non.weight.matrix <- matrix(1, nrow=n.persons, ncol=(n.items+1), byrow=TRUE)
out.non.weight.matrix1 <- non.weight.matrix
#out.non.weight.matrix1
‧
out.weight.matrix <- matrix(c(out.weight,1), nrow=n.persons, ncol=(n.items+1),byrow=TRUE)
out.weight.matrix1 <- out.weight.matrix
#out.weight.matrix1
n.compare.1 <- (n.persons)*(n.persons-1)/2
#n.compare.1
order.non.finaldata1.data <- non.finaldata1[[s]][non.order[[s]], ] order.non.finaldata1[[s]] <- order.non.finaldata1.data
> rep(order.non.finaldata1[[s]][u, n.items+1], n.persons-u))*1
non.compare1[u, -(1:u)] <- non.compare1.data
}
out.non.compare1[[s]] <- non.compare1 cat(s ,"Gd \n")
as.vector(non.table[[s]][c("0", "1", "2", "3", "4",
"5")])
‧
order.finaldata1.data <- finaldata1[[s]][order[[s]], ]
compare1 <- matrix(0, nrow=n.persons, ncol=n.persons)
for (u in 1:(n.persons-1)){
compare1.data =
(order.finaldata1[[s]][-(1:u), n.items+1] >
rep(order.finaldata1[[s]][u, n.items+1],
} cat("End"," \n")
#out.compare1
vector[[s]] <- as.vector(table[[s]][c("0", "1",
"2", "3", "4", "5", "6", "7", "8")])
new[[s]] <- vector[[s]]*(vector[[s]]-1)/2 abc <- as.numeric(rbind(non.prob1, prob1)) prob.matrix <- matrix(abc, nrow=m, ncol=2, byrow=TRUE)
pick1=NULL
compare.pick1=NULL for (t in 1:m){
if ((prob1[1, t]-non.prob1[1, t])>0) {pick1[t]=1} else {pick1[t]=0}
compare.pick1[t] <- pick1[t]
cor.noweight <- cor(non.finaldata1[[s]][, (n.items+1)], non.finaldata1[[s]][,
(n.items+2)])
non.cor <- cbind(non.cor, cor.noweight) cat(s ,"Ok \n")
}
#non.cor
non.prob1.cor <- rbind(non.prob1, non.cor) non.prob1.cor.matrix <- matrix(non.prob1.cor, nrow=m, ncol=2, byrow=TRUE)
cor=NULL for (s in 1:m){
cor.weight <- cor(finaldata1[[s]][,
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
83 (n.items+1)], finaldata1[[s]][, (n.items+2)]) cor <- cbind(cor, cor.weight)
cat(s ,"Ok \n") } #cor
prob1.cor <- rbind(prob1, cor) prob1.cor.matrix <- matrix(prob1.cor, nrow=m, ncol=2, byrow=TRUE)
#--- prob.compare.pick1
non.prob1.cor.matrix summary(non.prob1[1,]) summary(non.cor[1,]) sd(non.prob1[1,]) sd(non.cor[1,]) prob1.cor.matrix summary(prob1[1,]) summary(cor[1,]) sd(prob1[1,]) sd(cor[1,]) proc.time() - ptm