不定期戯言

戻る

2011.12.19 (Mon)

授業アンケートと期末テストの関係

・二学期の授業はPenでのプログラミングが中心だったが,途中からPenFlowchartも導入し,使い方は両方とも説明しておいて,生徒にはどちらでもいいからやりやすい方で作業するように指示してきた。最後の授業のときにどちら派であったかのアンケートをとってみた。「a:Pen,b:PenFlowchart,c:状況に応じて」ということで,結果は次の通り。

> table(enq$Q1)
        a   b   c 
   16 146  65  37 

Pen派が過半数。PenFlowchartを導入したのが授業の数回めからだったから,最初に覚えたPenでのやり方を変えたくなかったという子もいるし,最初はPenFlowchartを使っていて構造とかをわかってきたらPenに戻ったという子もいる。とりあえず派別に点数を見てみるか。

> boxplot(enq$期末2 ~ enq$Q1)

大差はなさげだな。ついでに平均点。

> mean(enq$期末2)
[1] 57.24242

> by(enq$期末2,enq$Q1,mean)
enq$Q1: 
[1] 56.6875
------------------------------------------------------------ 
enq$Q1: a
[1] 55.43151
------------------------------------------------------------ 
enq$Q1: b
[1] 58.52308
------------------------------------------------------------ 
enq$Q1: c
[1] 62.37838

ちょっと差があるように見えるかな。試しにt検定でもしてみるか。Pen派とPenFlowchart派で平均点に差があるか(分散が等しいかどうかわからないときは,それを調べることなく黙ってWelchの方法でやれと奥村先生のサイトに書いてあったのでそうしてみた):

> t.test(enq$期末2[enq$Q1=="a"],enq$期末2[enq$Q1=="b"])

        Welch Two Sample t-test

data:  enq$期末2[enq$Q1 == "a"] and enq$期末2[enq$Q1 == "b"] 
t = -1.0752, df = 132.399, p-value = 0.2842
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval:
 -8.778911  2.595771 
sample estimates:
mean of x mean of y 
 55.43151  58.52308

有意差があるとはいえないな。aとcでもp値は0.0579だ。平均点だけ見てたら「c(状況に応じて選ぶ)と答えた子はそれだけ意識が高いから,きっと点数も高いだろう」と思っていたのだけど,フィーリングで言いきってはいかんのね。プログラム→フローチャート,フローチャート→プログラムの書き換えの問題だけとってみて(小問別に点数のデータはとってある)t検定すればp値が0.04くらいにはなるんだけど,ここまでくると多重比較のやりすぎ(data dredgingっていうの?)な気がする。

・それよりも気になるのがクラスによるPen派とPenFlowchart派の割合の違い。

> 組 <- c("A","B","C","D","E","F","G")
> t <- matrix(nrow=7,ncol=4)
> for(i in 1:7) t[i,] <- table(enq$Q1[enq$組==組[i]])
> row.names(t) <- 組
> barplot(t(t),horiz=T,legend.text=c("","Pen","PenFlowchart","状況に応じて"))

凡例が変なところに表示されちゃってるけど直し方がわからないのでまあいいや。A,F,G組はPenFlowchart派がいない。共通点はというと,AとGはともに木曜日だということがある。PenFlowchartのバージョンアップはなぜか水曜日の夜に行われることが多くて,それがこなれてない状態で授業をしちゃってたのかもしれない(Fは金曜日の午前なのでその次ではあるが,金曜の午後にはBがある)。そういうバラツキがあったのでは,統計処理しても意味なかったのかもしれないなあ。

コメント(8)

myopomme wrote at 2011-12-20 09:04:

日記にまだまとめてませんが、legendを枠外に出すときは
par(xpd=FALSE)
plot(1:10)
par(xpd=TRUE)
legend(x=par()$usr[2],y=par()$usr[4],legend=1)
で外に出ますよ。

わたやん wrote at 2011-12-20 18:49:

myopommeさん,ありがとうございます。legendでhelpをひくといろいろでてくるんですね。その通りでやると凡例が外にはみ出してしまうのだけど,それは全体を調整すればいい感じでしょうか。
ブログの方,拝見しました。boxplotやbarplotの値を読んでいろいろやってるのとか,いいですね。こういうの見るともっとどんどんいじりたくなってしまいます。

myopomme wrote at 2011-12-21 08:44:

ご返事、ありがとうございます。
近く、legend関数の話はupさせていただきます。
もう少し時間を下さい。

わたやん wrote at 2011-12-21 08:56:

それはうれしい(^^)。楽しみにしています。

myopomme wrote at 2011-12-26 20:38:

遅くなりました。legend関数について少し書いてみました。

わたやん wrote at 2012-01-04 01:00:

ありがとうございます。向こうにコメントしましたが,あんなにすっきりやれるものなんですね。

myopomme wrote at 2012-01-05 20:13:

少しでもお役に立てばうれしいです。
良く分かってないのですが、ブログのコメントの返事って、自分のブログにしても意味ないんですよね?

わたやん wrote at 2012-01-06 08:59:

激しく役にたってます。
見に行くためにはてブしたんだから,向こうでお返事いただいても大丈夫ですよ。

コメントの受付は終了しました。