程式訓練班學員成效分析

場景

程式語言訓練班,有 4 位學員,進行結訓前測驗,分別在 4 種不同作業系統上,使用 4 種程式語言,撰寫程式並得到分述如下表:

問題

    • 是否學員成績與在不同作業系統開發有關?

    • 是否學員成績與所使用之程式語言有關?

    • 是否學員成績與 (作業系統所及程式語言) 有交互作用?

分析

# 指定精準度 options(digits=4) # 清除殘餘變數 rm(list=ls()) # 資料整理 Score.OS <- c('AIX', 'Linux', 'Windows', 'Solaris') Score <- data.frame(Language=c(rep('Java', length(Score.OS)), rep('C++', length(Score.OS)), rep('VB.NET', length(Score.OS)), rep('Python', length(Score.OS))), OS=c(Score.OS, Score.OS, Score.OS, Score.OS), Score=c(c(64,86,88,84), c(74,83,90,92), c(68,85,84,69), c(69,84,87,89))) colnames(Score) <- c('Language', 'OS', 'Score') # 是否分數與使用程式語言有關 Score.ANOVA = aov(Score~Language, data=Score) summary(Score.ANOVA) # 是否分數與使用作業系統有關 Score.ANOVA = aov(Score~OS, data=Score) summary(Score.ANOVA) # 是否分數與(程式語言,作業系統) 有交互作用 Score.ANOVA = aov(Score~Language*OS, data=Score) summary(Score.ANOVA)

# 是否分數與使用程式語言有關 -> 無關 Df Sum Sq Mean Sq F value Pr(>F) Language 3 145 48.2 0.54 0.66 Residuals 12 1074 89.5 # 是否分數與使用作業系統有關 -> 有關< Df Sum Sq Mean Sq F value Pr(>F) OS 3 831 276.8 8.57 0.0026 ** Residuals 12 388 32.3 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 # 是否分數與(程式語言,作業系統) 有交互作用 -> 無關 Df Sum Sq Mean Sq Language 3 145 48.2 OS 3 831 276.8 Language:OS 9 243 27.0

# 資料集 Language OS Score 1 Java AIX 64 2 Java Linux 86 3 Java Windows 88 4 Java Solaris 84 5 C++ AIX 74 6 C++ Linux 83 7 C++ Windows 90 8 C++ Solaris 92 9 VB.NET AIX 68 10 VB.NET Linux 85 11 VB.NET Windows 84 12 VB.NET Solaris 69 13 Python AIX 69 14 Python Linux 84 15 Python Windows 87 16 Python Solaris 89