Tuesday, June 28, 2011

獨立樣本雙因子變異數分析(One-way ANOVA)

本例子是以林清山教授的書為例(心理學教育統計學,P.371,Ex16-1),資料檔在此

  • 先讀入資料檔。
ex<-read.table("ex16_1.csv",header=T,sep=",")
  • 進行獨立樣本二因子變異數分析。
aovex<-aov(score~type*class,data=ex)
  • 列出分析結果。
summary(aovex)

  • 由ANOVA表可得知有交互作用(interaction)存在,因此必須再去探討單純主要效果(simple main effects)。
  • 先將各資料分組(先以b因子分組;亦即是探討同在同樣的a因子之下會對不同的b因子造成什麼顯響。)
ex.b1<-subset(ex,class=="b1")
ex.b2<-subset(ex,class=="b2")
ex.b3<-subset(ex,class=="b3") 
  • 之後分別進行單因子變異數分析。
summary(aov(score~type,data=ex.b1))
summary(aov(score~type,data=ex.b2))
summary(aov(score~type,data=ex.b3))

Monday, June 27, 2011

問卷調查分析實務(二)-->雙因子變異數分析之資料轉換與組合

該位朋友所探討之研究問題,其中一項是要探討性別在依變數(分成三向度)的差異情形,從其研究問題可以得知性別是一個因子;而向度又是另一個因子,因此必須以雙因子變異數分析來進行統計檢定,同時因為受試者(填問卷者)又同時要填寫三向度的題項,所以是愛試者間等組實驗設計(within subject balanced design)。

在進行two way anova之前,必須把資料進行處理(one row per subject轉成one row per observation),也就是說每一行(row)的資料僅包含三個欄位(性別,向度,分數),以下將逐一介紹處理過程。
  • 首先計算各向度的總分,向度一(X101-X110);向度二(X201-X220);向度三(X301-X317)。
先將原始資料question依性別及向度處理成三個變數(data frame),分別是d1,d2,d3,每個變數中包含性別以及該向度的所有題項。
 d1<-question[,c(1:2,9:18)
d2<-question[,c(1:2,19:38)]
d3<-question[,c(1:2,39:55)]
接下來將各向度的各題項加總並放入變數q1,q2,q3之中,各變數只包含三個欄位:性別,向度以及總分。
q1<-data.frame(subject=d1$subject,sex=d1$sex,dimension=1,score=rowSums(d1[,-1]))
q2<-data.frame(subject=d2$subject,sex=d2$sex,dimension=2,score=rowSums(d2[,-1]))
q3<-data.frame(subject=d3$subject,sex=d3$sex,dimension=3,score=rowSums(d3[,-1]))
  •  最後將這三個變數結合成一個適合進行ANOVA的data frame。
sex<-rbind(q1,q2,q3)

問卷調查分析實務(一)-->資料操作

日前朋友來問問卷調查之統計分析方式,因此筆者以Project R實際進行一次分析,並分享於此網誌(其實是怕忘記 = =")。原始資料已經用試算表軟體處理過,並另存成csv檔,檔名是question.csv。
PS.此系列文章僅示範資料處理及操作,不涉及結果解檡。
  •  資料檔下載
  • 開啟Project R並且設定好工作路徑至question.csv之資料夾。
  • 載入資料檔至變數question之中(因為資料檔中的第一列為各變項的名稱,因此設定header=T)。
 question<-read.table("question.csv",sep=",",header=T)
  •  因為資料檔包含了7個自變項以及47個依變項(問卷總題數,分成三個向度,分別是10,20,17題),所以若要計算各個依變項的平均值以及標準差,必須將自變項去除掉。
dep<-qestion[,-(1:8)]
  •  描述統計值
summary(dep)
write.table(summary(dep),"summary.csv",sep=",",col.names=NA)
  •  計算標準差,並寫入檔案sd.csv
sd(dep)
write.table(sd(dep),"sd.csv",sep=",",col.names=NA)

下篇文章將會進行雙因子變數數分析之實作。