瓢箪鯰的な男がR初級者から中級者になるのを記すブログ

掴みどころのないオッサンのR勉強録。目標は中級者。 その他雑記なども

PISA2006の分析 -親の属性と子の学力④-

前回からかなり時間が経ってしまったのだが、なんてことはない
あまり筆が乗らなかっただけの話である。

前回までの復習。

PISA2006のデータをダウンロードして、日本のデータまで切り出すところまで。

##########PISA2006の読み込み#############
setwd("C:/INT_Stu06_Dec07")	#データのあるディレクトリに移動(Cの直下にあると仮定)
moto<-readLines("INT_Stu06_Dec07.txt")	#データを読み込む
##########ここまで読み込み##########

jpn2006<-subset(moto,substr(moto,16,18)=="JPN") #日本だけ切り出す
kuni<-as.factor(substr(jpn2006,16,18))	#16列目から18列目までを切り出して、factor型でkuniへ代入
summary(kuni)	#日本だけ切り出せているか確認

さて、親の学歴のデータを切り出そう。
コードブックを見ると、379列目が母親の学力レベル、380列目が父親の学力レベルを表しているのが分かる。
381列目が「両親の学力レベル」とあるので、定義を確認する必要がある。
定義が分からないデータは、必ず定義を確認することが肝心だ。

さて、学力レベルがISCEDのレベルであらわされているので
適当なラベルを振ってやることにする。
ソースはウィキだが、レベル2が中卒、レベル3が高卒、レベル4とレベル5Bが難しいが、高専と短大が近い。レベル6は概ね大卒と見てよさそうだ。
レベル4は便宜的に高専、レベル5Bも便宜的に短大としておいて
あとから両方をくっつけても良い。

ちょっと両親の学力の定義を調べてみよう。
多分両親のうち、学力が高い方を選んでいると思われるのだが。。。
高専と短大は短大の方が処理の都合上、レベルが高い【ことにしている】だけである)

mg<-(substr(jpn2006,379,379))	#母親の最終学歴を切り出す
mg<-factor(mg, levels=c(2:6,9), labels=c("中卒", "高卒", "高専", "短大", "大卒", "不詳"))	#ラベル付け
fg<-substr(jpn2006, 380, 380)	#父親の最終学歴を切り出す
fg<-factor(fg, levels=c(2:6,9), labels=c("中卒", "高卒", "高専", "短大", "大卒", "不詳"))	#ラベル付け
rg<-substr(jpn2006, 381, 381)	#両親の最終学歴を切り出す
rg<-factor(rg, levels=c(2:6,9), labels=c("中卒", "高卒", "高専", "短大", "大卒", "不詳"))	#ラベル付け
gakureki<-data.frame(mg, fg, rg)	#学歴をデータフレーム化
head(gakureki, 10)	#gakurekiの頭10行を抜いてくる
   mg   fg   rg
1  高専 不詳 高専
2  大卒 大卒 大卒
3  大卒 大卒 大卒
4  大卒 大卒 大卒
5  大卒 大卒 大卒
6  短大 大卒 大卒
7  大卒 不詳 大卒
8  大卒 大卒 大卒
9  短大 大卒 大卒
10 大卒 大卒 大卒
11 大卒 大卒 大卒
12 短大 大卒 大卒
13 高専 大卒 大卒
14 高専 大卒 大卒
15 大卒 大卒 大卒
16 短大 高専 短大
17 短大 短大 短大
18 短大 大卒 大卒
19 短大 高専 短大
20 短大 大卒 大卒

やはりどちらか学力が高い方を取っているようである。

簡単に集計してみるとこんな感じ

summary(gakureki)
    mg          fg          rg      
 中卒: 247   中卒: 370   中卒: 142  
 高卒: 711   高卒: 782   高卒: 414  
 高専:2010   高専:1498   高専:1680  
 短大:1410   短大: 399   短大: 836  
 大卒:1309   大卒:2416   大卒:2702  
 不詳: 265   不詳: 487   不詳: 178  

親の学力のデータが抜けたので、次は点数のデータを抜いてみよう。