: Maxima数学I自習教材開発
教材の概要
データの分析
 1.データの整理
 2.データの代表値
 3.データの散らばりと四分位数
 4.分散と標準偏差
 5.データの相関
 6.表計算ソフトによるデータの分析(略)
 章末問題
Maxima数学I自習教材試行報告用紙(Word)
Maxima数学I自習教材試行報告用紙(PDF)
Maxima数学I自習教材試行報告用紙(html)

: 教材の概要

活動時間 
 自宅での予習か授業初めの5分程度
活動概要
 1 タブレット等を用いてトライ
  1) 教科書の該当ページを開く
  2) このWebページを開く
  3) Maxima on lineのWebページを開く
  4) 該当コマンドをMaximaOnLineにコピペして、実行
 2 自分なりの感触、着想
  1) 自分なりに、実行結果を見て、気づいたり感じたりすることがないか、考えてみる。
  2) ワークシートに、考えてみたこと(意見・質問・感じたこと)を書く
  3) ワークシートを、事前に提出する場合は、課題提出フォームを使うこと。
 3 問題の雰囲気を2で感じてから、授業へ
  1) 班活動などで自分の考えを仲間に伝える
  2) 仲間の考えを受け止める
  3) 筋が通って、見通しのよい解法、数学的な論点をうまく処理した解法をまとめる


参照テキスト
 数研出版新編数学I

: 第4章データの分析
  1.データの整理

   A 度数分布表
▼コマンド番号101
●練習1
度数分布表●●●●●●●●●●●●●●●●
kill(all) /* "101 度数分布表(Maxima on lineでは削除)" */$
MONDAI:"101 次のデータについて、"$
DL:[172.3, 163.7, 166.6, 174.0, 169.5, 168.8, 171.6, 176.2,
178.4, 171.5, 171.8, 173.2, 161.8, 170.4, 172.0, 160.6,
172.0, 165.6, 170.4, 174.3, 177.6, 167.4, 168.2, 169.3,
165.4, 171.3, 175.5, 175.1, 167.8, 164.5, 172.5, 170.2,
173.6, 170.8, 171.5, 167.9, 175.8, 168.0, 173.1, 167.1];
MONDAI:"階級の区切りはじめ158、幅4の度数分布表は、度数が10の階級値は" /* "(◆修正部分)" */$
sR:158 /* "区切りはじめを設定し(◆修正時訂正)" */;
nH:4 /* "幅を設定し(◆修正時訂正)" */;
qD:10 /* "求める階級値の度数を設定し(◆修正時訂正)" */;
MD:DL[1] /* "最大値をDL[1}で初期化し" */$
for i:1 thru length(DL) do(
/**/MD:max(MD,DL[i])) /* "最大値を求め" */$
MR:fix((MD-sR)/nH)+1 /* "最大階級を求め" */$
for i:1 thru MR do(
/**/rk[i]:0
) /* "度数集計用配列を0で初期化し" */$
for i:1 thru length(DL) do(
/**/nr:fix((DL[i]-sR)/nH)+1,
/**/rk[nr]:rk[nr]+1 /* "各度数を求め" */)$
print("..階級..","..度数")$
for i:1 thru MR do(
/**/print(sR+(i-1)*nH,"<= x <",sR+i*nH,"..",rk[i])) /* "各度数を表示し" */$
print("..合計..",length(DL)) /* "合計を表示" */$
for i:1 thru MR do(
/**/if rk[i]=qD then KOTAE:[[i,((sR+(i-1)*nH)+sR+i*nH)/2],"求める階級、階級値"])$
print(MONDAI) /* "問題の表示" */$
print(KOTAE) /* "答えの表示" */$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"階級の区切りはじめ158、幅3の度数分布表は、度数が9の階級値は" /* "(◆修正部分)" */$


   B ヒストグラム
▼コマンド番号102
●練習2
ヒストグラム●●●●●●●●●●●●●●●●
kill(all) /* "ヒストグラム(Maxima on lineでは削除)" */$
MONDAI:"102 次のデータについて、"$
DL:[16.3, 13.2, 17.7, 14.3, 16.4, 19.8, 13.5, 14.5, 11.7, 14.1,
14.8, 17.2, 13.8, 15.4, 16.3, 15.7, 18.5, 16.8, 17.9, 15.9,
17.6, 15.4, 16.8, 21.4, 16.5, 18.1, 16.0, 20.3, 16.6, 19.5];
MONDAI:"階級の区切りはじめ11、幅2の度数分布表は、ヒストグラムは" /* "(◆修正部分)" */$
sR:11 /* "区切りはじめを設定し(◆修正時訂正)" */;
nH:2 /* "幅を設定し(◆修正時訂正)" */;
MD:DL[1] /* "最大値をDL[1}で初期化し" */$
for i:1 thru length(DL) do(
/**/MD:max(MD,DL[i])) /* "最大値を求め" */$
MR:fix((MD-sR)/nH)+1 /* "最大階級を求め" */$
for i:1 thru MR do(
/**/rk[i]:0
/**/) /* "度数集計用配列を0で初期化し" */$
for i:1 thru length(DL) do(
/**/nr:fix((DL[i]-sR)/nH)+1,
/**/rk[nr]:rk[nr]+1 /* "各度数を求め" */)$
print("..階級..","..度数")$
for i:1 thru MR do(
/**/print(sR+(i-1)*nH,"<= x <",sR+i*nH,"..",rk[i])) /* "各度数を表示し" */$
print("..合計..",length(DL)) /* "合計を表示" */$
pL:[] /* "点表示リストを初期化し" */$
My:0 /* "最大度数値を初期化し" */$
for i:1 thru MR do(
/**/pL:append([[i,0],[i,rk[i]],[i+1,rk[i]],[i+1,0]],pL),
/**/My:max(My,rk[i])) /* "点表示リスト、最大度数値を求め" */$
pL;My;
T:"From 11, Width 2" /* "区切り始め、幅(◆修正時訂正)" */ /* "表示タイトルを設定し" */$
gr(T,c,l,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/color=red,point_type =7,
/*....*/points_joined =true,point_size =0,points(pK) /* "点pK(一般的位置)を赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =0,points(pP) /* "点pP(b直径の位置)を青で打って、青線で結んで" */,
/*....*/color=black,line_width =1,
/*....*/implicit(y=0,x,xm,xM,y,ym,yM) /* "x軸と" */,
/*....*/implicit(x=0,x,xm,xM,y,ym,yM)) /* "y軸を引く" */)$
gr(T,x=0,y=0,pL,[[0,0]],0,MR+2,-1,My+2) /* "ヒストグラムを表示" */$
KOTAE:"上のヒストグラム"$
print(MONDAI) /* "問題の表示" */$
print(KOTAE) /* "答えの表示" */$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
DL:[172.3, 163.7, 166.6, 174.0, 169.5, 168.8, 171.6, 176.2,
178.4, 171.5, 171.8, 173.2, 161.8, 170.4, 172.0, 160.6,
172.0, 165.6, 170.4, 174.3, 177.6, 167.4, 168.2, 169.3,
165.4, 171.3, 175.5, 175.1, 167.8, 164.5, 172.5, 170.2,
173.6, 170.8, 171.5, 167.9, 175.8, 168.0, 173.1, 167.1];
MONDAI:"階級の区切りはじめ158、幅3のヒストグラムは" /* "(◆修正部分)" */$


:   2.データの代表値
   A 平均値
▼コマンド番号103
●例1・練習3
データの平均値●●●●●●●●●●●●●●●●
kill(all) /* "103 データの平均値(Maxima on lineでは削除)" */$
MONDAI:"103 次のデータについて、" $
DL:[72, 65, 88, 45, 76] /* "データ(◆修正部分)" */$
MONDAI:"平均値は" /* "(◆修正部分)" */$
n:length(DL) /* "データの大きさを設定し" */$
nsum:0 /* "合計の初期値を設定し" */$
for i:1 thru n do(
/**/ nsum:nsum+DL[i] /* "合計を計算し" */)$
hx:nsum/n /* "平均を計算し" */;
hx:hx,numer /* "小数表示し" */;
KOTAE:[hx, " 平均値"]$
print(MONDAI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
DL:[400, 410, 420, 390, 430, 450, 440 ] /* "データ(◆修正部分)" */$
MONDAI:"平均値は" /* "(◆修正部分)" */$


   B 最頻値
▼コマンド番号104
●例2・練習4
データの最頻値●●●●●●●●●●●●●●●●
kill(all) /* "104 データの最頻値(Maxima on lineでは削除)" */$
MONDAI:"104 次のデータについて、" $
DsL:[24.0, 24.5, 25.0, 25.5, 26.0, 26.5, 27.0] /* "データ(◆修正部分)" */$
DnL:[ 3, 11, 23, 32, 18, 10, 3] /* "データ(◆修正部分)" */$
MONDAI:"最頻値は" /* "(◆修正部分)" */$
sy:0;si:0 /*" 最高度数、最頻値階級を初期化して" */;
for i:1 thru length(DnL) do(
/**/if DnL[i] >sy then(
/*....*/sy:DnL[i],
/*....*/si:i /*" 最高度数、最頻値階級を求めて" */))$
KOTAE:[DsL[si],sy,"最頻値、最高度数"]$
print(MONDAI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
DsL:[160, 164, 168, 172, 176, 180] /* "データ(◆修正部分)" */$
DnL:[ 2, 4, 10, 16, 7, 1] /* "データ(◆修正部分)" */$
MONDAI:"最頻値は" /* "(◆修正部分)" */$


   C 中央値
▼コマンド番号105
●例3・練習5
データの中央値●●●●●●●●●●●●●●●●
kill(all) /* "105 データの中央値(Maxima on lineでは削除)" */$
MONDAI:"104 次のデータについて、" $
DsL:[260, 100, 280, 300, 270] /* "データ(◆修正部分)" */$
MONDAI:"中央値は" /* "(◆修正部分)" */$
nD:length(DsL) /*" データ数を設定し" */;
for i:1 thru nD do(
/**/DL[i]:DsL[i] /*" データを配列に写し" */)$
for i:1 thru nD-1 do(
/**/for k:i+1 thru nD do(
/*....*/if DL[i]>DL[k] then(
/*........*/wD:DL[i],DL[i]:DL[k],DL[k]:wD /*" データを昇順にし" */)))$
for i:1 thru nD do print(DL[i]);
if mod(nD,2)=1 then cD:DL[(nD+1)/2]
/**/else cD:(DL[nD/2]+DL[nD/2+1])/2 /*" 中央値を求め" */;
KOTAE:[cD,"中央値"]$
print(MONDAI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
DsL:[230, 248, 225, 250, 280, 198, 220, 240, 268, 300] /* "データ(◆修正部分)" */$
MONDAI:"中央値は" /* "(◆修正部分)" */$


:   3.データの散らばりと四分位数
   A 範囲
▼コマンド番号106
●例4・練習6
データの範囲●●●●●●●●●●●●●●●●
kill(all) /* "106 データの範囲(Maxima on lineでは削除)" */$
MONDAI:"106 次のデータについて、" $
DsL:[7, 4, 9, 7, 10, 13, 14, 7, 4, 12, 13, 5] /* "データ(◆修正部分)" */$
MONDAI:"データの範囲は" /* "(◆修正部分)" */$
nD:length(DsL) /*" データ数を設定し" */;
for i:1 thru nD do(
/**/DL[i]:DsL[i] /*" データを配列に写し" */)$
for i:1 thru nD-1 do(
/**/for k:i+1 thru nD do(
/*....*/if DL[i]>DL[k] then(
/*............*/wD:DL[i],DL[i]:DL[k],DL[k]:wD /*" データを昇順にし" */)))$
for i:1 thru nD do print(DL[i]);
hax:DL[nD]-DL[1] /*" 範囲をも求め" */;
KOTAE:[hax, " 範囲"]$
print(MONDAI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
DsL:[19, 16, 12, 11, 6, 8, 21, 13, 10, 14, 18, 22] /* "データ(◆修正部分)" */$
MONDAI:"データの範囲は" /* "(◆修正部分)" */$


   B 四分位数
▼コマンド番号107
●例5・例6・練習7
データの四分位数、四分位範囲、四分位偏差●●●●●●●●●●●●●●●●
kill(all) /* "107 データの四分位数、四分位範囲、四分位偏差(Maxima on lineでは削除)" */$
MONDAI:"107 次のデータについて、" $
DsL:[21, 30, 36, 38, 41, 45, 52, 58, 60, 72] /* "データ(◆修正部分)" */$
MONDAI:"データの四分位数、四分位範囲、四分位偏差は" /* "(◆修正部分)" */$
jsL(nD):=(
/**/if mod(nD,4)=3 then [[(nD-3)/4+1,(nD-3)/4+1],[(nD-3)/2+2,(nD-3)/2+2],[(nD-3)/4*3+3,(nD-3)/4*3+3]]
/*....*/elseif mod(nD,4)=2 then [[(nD-2)/4+1,(nD-2)/4+1],[(nD-2)/2+1,(nD-2)/2+2],[(nD-2)/4*3+2,(nD-2)/4*3+2]]
/*....*/elseif mod(nD,4)=1 then [[(nD-1)/4,(nD-1)/4+1],[(nD-1)/2+1,(nD-1)/2+1],[(nD-1)/4*3+1,(nD-1)/4*3+2]]
/*....*/else [[nD/4,nD/4+1],[nD/2,nD/2+1],[nD/4*3,nD/4*3+1]] /* "四分位数の順位を求める" */)$
nD:length(DsL);
for i:1 thru nD do(
/**/DL[i]:DsL[i] /* "リストを配列に並べ" */)$
for i:1 thru nD-1 do(
/**/for k:i+1 thru nD do(
/*....*/if DL[i]>DL[k] then(
/*............*/wD:DL[i],DL[i]:DL[k],DL[k]:wD /* "配列に昇順に並べ" */)));
for i:1 thru nD do print(DL[i]) /* "昇順に出力して" */$
jsDL:jsL(nD);
js1D:(DL[jsDL[1][1]]+DL[jsDL[1][2]])/2$
js2D:(DL[jsDL[2][1]]+DL[jsDL[2][2]])/2$
js3D:(DL[jsDL[3][1]]+DL[jsDL[3][2]])/2$
KOTAE:[[js1D,js2D,js3D,js3D-js1D,(js3D-js1D)/2],"[第1、第2、第3、四分位範囲、四分位偏差]"]$
print(MONDAI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
DsL:[21,29,32,36,38,40,49,53,55,68,80] /* "データ(◆修正部分)" */$
MONDAI:"データの四分位数、四分位範囲、四分位偏差は" /* "(◆修正部分)" */$


   C 箱ひげ図
▼コマンド番号108
●例7・練習8
箱ひげ図によるデータ分析●●●●●●●●●●●●●●●●
kill(all) /* "108 箱ひげ図によるデータ分析(Maxima on lineでは削除)" */$
MONDAI:"108 次のデータについて、" $
DsL:[68,35,86,63,30,91,50,63,46,58] /* "データ(◆修正部分)" */$
MONDAI:"箱ひげ図は" /* "(◆修正部分)" */$
gr(T,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/color=white,line_width =1,
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),
/*....*/color=red,point_type =7,
/*....*/points_joined =true,point_size =0,points(pK) /* "点pK(一般的位置)を赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =0,points(pP) /* "点pP(b直径の位置)を青で打って、青線で結んで" */))$
jsL(nD):=(
/**/if mod(nD,4)=3 then [[(nD-3)/4+1,(nD-3)/4+1],[(nD-3)/2+2,(nD-3)/2+2],[(nD-3)/4*3+3,(nD-3)/4*3+3]]
/*....*/elseif mod(nD,4)=2 then [[(nD-2)/4+1,(nD-2)/4+1],[(nD-2)/2+1,(nD-2)/2+2],[(nD-2)/4*3+2,(nD-2)/4*3+2]]
/*....*/elseif mod(nD,4)=1 then [[(nD-1)/4,(nD-1)/4+1],[(nD-1)/2+1,(nD-1)/2+1],[(nD-1)/4*3+1,(nD-1)/4*3+2]]
/*....*/else [[nD/4,nD/4+1],[nD/2,nD/2+1],[nD/4*3,nD/4*3+1]] /* "四分位数の順位を求める" */)$
nD:length(DsL);
for i:1 thru nD do(
/**/DL[i]:DsL[i] /* "リストを配列に並べ" */)$
for i:1 thru nD-1 do(
/**/for k:i+1 thru nD do(
/*....*/if DL[i]>DL[k] then(
/*............*/wD:DL[i],DL[i]:DL[k],DL[k]:wD /* "配列に昇順に並べ" */)));
for i:1 thru nD do print(DL[i]);
jsDL:jsL(nD);
js1D:(DL[jsDL[1][1]]+DL[jsDL[1][2]])/2$
js2D:(DL[jsDL[2][1]]+DL[jsDL[2][2]])/2$
js3D:(DL[jsDL[3][1]]+DL[jsDL[3][2]])/2$
KOTAE:[[DL[1],js1D,js2D,js3D,DL[nD],js3D-js1D,(js3D-js1D)/2],"[最小値、第1、第2、第3、最大値、四分位範囲、四分位偏差]"]$
pMN1:[KOTAE[1][1],0.5];
pMN0:[KOTAE[1][1],0];
pMN:[KOTAE[1][1],-0.5] /* "最小値" */;
ps1D1:[KOTAE[1][2],2];
ps1D:[KOTAE[1][2],-2] /* "第1四分位" */;
ps2D1:[KOTAE[1][3],2];
ps2D:[KOTAE[1][3],-2] /* "第2四分位" */;
ps3D1:[KOTAE[1][4],2];
ps3D:[KOTAE[1][4],-2] /* "第3四分位" */;
pMX1:[KOTAE[1][5],0.5];
pMX0:[KOTAE[1][5],0];
pMX:[KOTAE[1][5],-0.5] /* "最大値" */;
pP:[pMN1,pMN,pMN0,pMX0,pMX1,pMX];
pK:[ps2D1,ps3D1,ps3D,ps1D,ps1D1,ps2D1,ps2D];
xm:DL[1]-1-KOTAE[1][7]/5;xM:DL[nD]+KOTAE[1][7]/5;ym:-5;yM:5 /* "グラフの出力範囲を指定して" */;
T:"HAKOHIGE-ZU"$
gr(T,pP,pK,xm,xM,ym,yM)$
print(MONDAI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
DsL:[63,60,73,75,58,79,68,70,66,80] /* "データ(◆修正部分)" */$
MONDAI:"箱ひげ図は" /* "(◆修正部分)" */$


:   4.分散と標準偏差
   A 分散と標準偏差
▼コマンド番号109
●例8
偏差の2乗の平均値●●●●●●●●●●●●●●●●
kill(all) /* "109 偏差の2乗の平均値(Maxima on lineでは削除)" */$
MONDAI:"109 次のデータについて、" $
DsL:[57,46,37,38,54,48,35] /* "データ(◆修正部分)" */$
MONDAI:"データの偏差の2乗の平均値は" /* "(◆修正部分)" */$
nD:length(DsL);
Sx:0 /* 和を0として */;
for i:1 thru nD do(
/**/Sx:Sx+DsL[i] /* 和を求めて */);
mx:Sx/nD,numer /* 平均を求めて */;
Sx2:0 /* 偏差の2乗和を0として */;
for i:1 thru nD do(
/**/Sx2:Sx2+(DsL[i]-mx)^2 /* 偏差の2乗和を求めて */);
sx2:Sx2/nD,numer /* 偏差の2乗の平均を求めて */;
KOTAE:[[mx,sx2],"平均値、偏差の2乗の平均値"];
print(MONDAI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
DsL:[63,60,73,75,58,79,68,70,66,80] /* "データ(◆修正部分)" */$
MONDAI:"データの偏差の2乗の平均値は" /* "(◆修正部分)" */$


▼コマンド番号110
●例9・練習9
データの分散、標準偏差●●●●●●●●●●●●●●●●
kill(all) /* "110 データの分散、標準偏差(Maxima on lineでは削除)" */$
MONDAI:"110 次のデータについて、" $
DsL:[6,7,4,8,9,4,3,8,6,5] /* "データ(◆修正部分)" */$
MONDAI:"データの分散、標準偏差は" /* "(◆修正部分)" */$
nD:length(DsL);
Sx:0 /* 和を0として */;
for i:1 thru nD do(
/**/Sx:Sx+DsL[i] /* 和を求めて */);
mx:Sx/nD,numer /* 平均を求めて */;
Sx2:0 /* 偏差の2乗和を0として */;
for i:1 thru nD do(
/**/Sx2:Sx2+(DsL[i]-mx)^2 /* 偏差の2乗和を求めて */);
sx2:Sx2/nD,numer /* 偏差の2乗の平均を求めて */;
sx:sqrt(sx2) /* 標準偏差を求めて */;
KOTAE:[[mx,sx2,sx],"平均値、分散、標準偏差"];
print(MONDAI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
DsL:[10,2,8,4,3,9,6,10,6,2] /* "データ(◆修正部分)" */$
MONDAI:"データの分散、標準偏差は" /* "(◆修正部分)" */$


   B 分散と平均値の関係式
▼コマンド番号111
●例10・練習10
分散と平均値の関係式●●●●●●●●●●●●●●●●
kill(all) /* "111 データの分散、標準偏差(Maxima on lineでは削除)" */$
MONDAI:"111 次のデータについて、" $
DsL:[6,7,4,8,9,4,3,8,6,5] /* "データ(◆修正部分)" */$
MONDAI:"データの分散、標準偏差は" /* "(◆修正部分)" */$
nD:length(DsL);
Sx:0;Sx2:0 /* 和と2乗和を0として */;
for i:1 thru nD do(
/**/Sx:Sx+DsL[i],
/**/Sx2:Sx2+DsL[i]^2 /* 和と2乗和を求めて */);
mx:Sx/nD,numer /* 平均を求めて */;
mx2:Sx2/nD,numer /* 2乗の平均を求めて */;
sx2:mx2-mx^2 /* 2乗平均から平均の2乗を引いて分散を求めて */;
sx:sqrt(sx2) /* 標準偏差を求めて */;
KOTAE:[[mx,sx2,sx],"平均値、分散、標準偏差"];
print(MONDAI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
DsL:[5,3,6,8,5,8,5,4,6,5] /* "データ(◆修正部分)" */$
MONDAI:"データの分散、標準偏差は" /* "(◆修正部分)" */$


:   5.データの相関
   A 散布図
▼コマンド番号112

散布図●●●●●●●●●●●●●●●●
kill(all) /* "112 散布図(Maxima on lineでは削除)" */$
MONDAI:"112 次の2変量のデータについて";
DxL:[168.4,164.5,171.2,172.0,162.3,170.8,172.5,164.2,169.0,167.6] /* "データ(◆修正部分)" */$
DyL:[59.0,58.4,60.5,65.6,54.2,61.4,62.2,56.1,63.7,57.3] /* "データ(◆修正部分)" */$
MONDAI:"データの散布図は" /* "(◆修正部分)" */$
gr(T,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/color=white,line_width =1,
/*....*/implicit(y=ym,x,xm,xM,y,ym,yM),
/*....*/color=red,point_type =7,
/*....*/points_joined =false,point_size =1,points(pK) /* "点pK(一般的位置)を赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =7,
/*....*/points_joined =false,point_size =1,points(pP) /* "点pP(b直径の位置)を青で打って、青線で結んで" */,
/*....*/color=green /* "散布図を書く関数" */))$
mD(DL):=block([nD,mD],
/**/nD:length(DL),mD:DL[1],
/**/for i:2 thru nD do(
/*....*/if mD>DL[i] then mD:DL[i]),
/*....*/mD /* "最小値を求める関数" */);
MD(DL):=block([nD,MD],
/**/ nD:length(DL),MD:DL[1],
/**/ for i:2 thru nD do(
/*....*/ if DL[i]>MD then MD:DL[i]),
/*....*/ MD /* "最大値を求める関数" */);
nD:length(DxL);
pP:[];mx:0;my:0 /* "点のリスト、xの和、yの和を0にして" */;
for i:1 thru nD do(
/**/ mx:mx+DxL[i],my:my+DyL[i],
/**/ pP:append(pP,[[DxL[i],DyL[i]]]) /* "xの和、yの和、点のリストを求めて" */)$
T:"SANPUZU";
mx:mx/nD,numer;my:my/nD,numer /* "x、yの平均を求めて" */;
pK:[[mx,my]] /* "平均の点を指定して" */;
xm:mD(DxL)-5;xM:MD(DxL)+5;
ym:mD(DyL)-5;yM:MD(DyL)+5 /* "グラフのx、yの範囲を指定して" */;
KOTAE:[pK[1],"平均"]$
pP;pK /* "pP,pKを表示して" */;
gr(T,pP,pK,xm,xM,ym,yM) /* "散布図をかく" */;
print(MONDAI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
DxL:[173.6,166.0,173.7,176.4,178.5,167.5,177.8,174.6,172.3,173.5] /* "データ(◆修正部分)" */$
DyL:[64.1,56.5,68.3,68.2,69.6,61.2,66.4,66.7,60.9,70.8] /* "データ(◆修正部分)" */$
MONDAI:"データの散布図は" /* "(◆修正部分)" */$


   B 正の相関、負の相関
▼コマンド番号113
●練習11
散布図と正の相関、負の相関●●●●●●●●●●●●●●●●
kill(all) /* "113 散布図と正の相関、負の相関(Maxima on lineでは削除)" */$
MONDAI:"113 次の2辺量のデータについて";
DxL:[3.5,2.6,5.2,2.5,3.9,6.5,3.3,6.0,4.4] /* "データ(◆修正部分)" */$
DyL:[129,128,152,120,143,168,131,177,130] /* "データ(◆修正部分)" */$
MONDAI:"データの散布図から、相関は" /* "(◆修正部分)" */$
gr(T,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/color=white,line_width =1,
/*....*/implicit(y=ym,x,xm,xM,y,ym,yM),
/*....*/color=red,point_type =7,
/*....*/points_joined =false,point_size =1,points(pK) /* "点pK(一般的位置)を赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =7,
/*....*/points_joined =false,point_size =1,points(pP) /* "点pP(b直径の位置)を青で打って、青線で結んで" */,
/*....*/color=green /* "散布図を書く関数" */))$
mD(DL):=block([nD,mD],
/**/ nD:length(DL),mD:DL[1],
/**/ for i:2 thru nD do(
/*....*/ if mD>DL[i] then mD:DL[i]),
/**/ mD /* "最小値を求める関数" */);
MD(DL):=block([nD,MD],
/**/ nD:length(DL),MD:DL[1],
/**/ for i:2 thru nD do(
/*....*/ if DL[i]>MD then MD:DL[i]),
/**/ MD /* "最大値を求める関数" */);
nD:length(DxL);
pP:[];mx:0;my:0 /* "点のリスト、xの和、yの和を0にして" */;
for i:1 thru nD do(
/**/ mx:mx+DxL[i],my:my+DyL[i],
/**/ pP:append(pP,[[DxL[i],DyL[i]]]) /* "xの和、yの和、点のリストを求めて" */)$
T:"SANPUZU";
mx:mx/nD,numer;my:my/nD,numer /* "x、yの平均を求めて" */;
pK:[[mx,my]] /* "平均の点を指定して" */;
xm:mD(DxL)-5;xM:MD(DxL)+5;
ym:mD(DyL)-5;yM:MD(DyL)+5 /* "グラフのx、yの範囲を指定して" */;
pP;pK /* "pP,pKを表示して" */;
gr(T,pP,pK,xm,xM,ym,yM) /* "散布図をかく" */;
KOTAE:["正の強い相関",pK[1],"平均"]$
print(MONDAI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
DxL:[15,33,18,25,45,33,38,40,32] /* "データ(◆修正部分)" */$
DyL:[180,143,172,160,142,146,155,128,175] /* "データ(◆修正部分)" */$
MONDAI:"データの散布図から、相関は" /* "(◆修正部分)" */$


   C 相関係数
▼コマンド番号114
●例11・練習12
相関係数●●●●●●●●●●●●●●●●
kill(all) /* "114 相関係数(Maxima on lineでは削除)" */$
MONDAI:"114 次の2辺量のデータについて";
DxL:[21,27,29,23,30] /* "データ(◆修正部分)" */$
DyL:[15,17,19,17,22] /* "データ(◆修正部分)" */$
MONDAI:"データの相関係数は" /* "(◆修正部分)" */$
gr(T,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/color=white,line_width =1,
/*....*/implicit(y=ym,x,xm,xM,y,ym,yM),
/*....*/color=red,point_type =7,
/*....*/points_joined =false,point_size =1,points(pK) /* "点pK(一般的位置)を赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =7,
/*....*/points_joined =false,point_size =1,points(pP) /* "点pP(b直径の位置)を青で打って、青線で結んで" */,
/*....*/color=green /* "散布図を書く関数" */))$
mD(DL):=block([nD,mD],
/**/ nD:length(DL),mD:DL[1],
/**/ for i:2 thru nD do(
/*....*/ if mD>DL[i] then mD:DL[i]),
/**/ mD /* "最小値を求める関数" */);
MD(DL):=block([nD,MD],
/**/ nD:length(DL),MD:DL[1],
/**/ for i:2 thru nD do(
/*....*/ if DL[i]>MD then MD:DL[i]),
/**/ MD /* "最大値を求める関数" */);
nD:length(DxL);
pP:[];mx:0;my:0 /* "点のリスト、xの和、yの和を0にして" */;
for i:1 thru nD do(
/**/ mx:mx+DxL[i],my:my+DyL[i],
/**/ pP:append(pP,[[DxL[i],DyL[i]]]) /* "xの和、yの和、点のリストを求めて" */)$
T:"SANPUZU";
mx:mx/nD,numer;my:my/nD,numer /* "x、yの平均を求めて" */;
pK:[[mx,my]] /* "平均の点を指定して" */;
sx2:0;sxy:0;sy2:0 /* "(x-mx)^2の和、(x-mx)*(y-my)の和、(y-my)^2の和を0にして" */;
for i:1 thru nD do(
/**/ sx2:sx2+(DxL[i]-mx)^2,
/**/ sxy:sxy+(DxL[i]-mx)*(DyL[i]-my),
/**/ sy2:sy2+(DyL[i]-my)^2 /* "(x-mx)^2の和、(x-mx)*(y-my)の和、(y-my)^2の和を求めて" */);
print(sxy,sx2,sy2);
r:sxy/sqrt(sx2*sy2),numer /* "相関係数を求めて" */;
xm:mD(DxL)-5;xM:MD(DxL)+5;
ym:mD(DyL)-5;yM:MD(DyL)+5 /* "散布図の範囲を指定して" */;
KOTAE:[r,pK[1],"相関係数、平均"]$
pP;pK;
gr(T,pP,pK,xm,xM,ym,yM) /* "散布図を書いて確認" */;
print(MONDAI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
DxL:[8,9,6,3,10,7,8,4,5,9] /* "データ(◆修正部分)" */$
DyL:[5,7,7,8,6,4,3,9,10,6] /* "データ(◆修正部分)" */$
MONDAI:"データの相関係数は" /* "(◆修正部分)" */$


▼コマンド番号115
●研究
相関係数●●●●●●●●●●●●●●●●
kill(all) /* "115 相関係数(Maxima on lineでは削除)" */$
MONDAI:"115 次の2辺量のデータについて";
DxL:[21,27,29,23,30] /* "データ(◆修正部分)" */$
DyL:[15,17,19,17,22] /* "データ(◆修正部分)" */$
MONDAI:"データの相関係数は" /* "(◆修正部分)" */$
gr(T,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/color=white,line_width =1,
/*....*/implicit(y=ym,x,xm,xM,y,ym,yM),
/*....*/color=red,point_type =7,
/*....*/points_joined =false,point_size =1,points(pK) /* "点pK(一般的位置)を赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =7,
/*....*/points_joined =false,point_size =1,points(pP) /* "点pP(b直径の位置)を青で打って、青線で結んで" */,
/*....*/color=green /* "散布図を書く関数" */))$
mD(DL):=block([nD,mD],
/**/ nD:length(DL),mD:DL[1],
/**/ for i:2 thru nD do(
/*....*/ if mD>DL[i] then mD:DL[i]),
/**/ mD /* "最小値を求める関数" */);
MD(DL):=block([nD,MD],
/**/ nD:length(DL),MD:DL[1],
/**/ for i:2 thru nD do(
/*....*/ if DL[i]>MD then MD:DL[i]),
/**/ MD /* "最大値を求める関数" */);
nD:length(DxL);
pP:[];mx:0;my:0 /* "点のリスト、xの和、yの和を0にして" */;
Sx2:0;Sxy:0;Sy2:0 /* "x^2の和、x*yの和、y^2の和を0にして" */;
for i:1 thru nD do(
/**/ mx:mx+DxL[i],my:my+DyL[i],
/**/ Sx2:Sx2+(DxL[i])^2,
/**/ Sxy:Sxy+(DxL[i])*(DyL[i]),
/**/ Sy2:Sy2+(DyL[i])^2,
/**/ pP:append(pP,[[DxL[i],DyL[i]]])/* "点のリスト、xの和、yの和、x^2の和、x*yの和、y^2の和を求めて" */)$
T:"SANPUZU";
mx:mx/nD,numer;my:my/nD,numer /* "平均を求めて" */;
pK:[[mx,my]] /* "平均の点を指定して" */;
print(Sxy,Sx2,Sy2);
sxy:Sxy/nD-mx*my;
sx2:Sx2/nD-mx^2;
sy2:Sy2/nD-my^2;
r:sxy/sqrt(sx2*sy2),numer /* "共分散、xの分散、yの分散を求めて" */;
xm:mD(DxL)-5;xM:MD(DxL)+5;
ym:mD(DyL)-5;yM:MD(DyL)+5 /* "散布図の範囲を指定して" */;
KOTAE:[r,pK[1],"相関係数、平均"]$
pP;pK;
gr(T,pP,pK,xm,xM,ym,yM) /* "散布図を書いて確認" */;
print(MONDAI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、計算過程をコマンド番号113と比較して考察せよ。


:    章末問題
▼コマンド番号40101
●章末問題2
相関係数●●●●●●●●●●●●●●●●
kill(all) /* "40101 散布図(Maxima on lineでは削除)" */$
MONDAI:"40101 次の2辺量のデータについて";
DxL:[51,64,62,53,47,43,44,42,46,43,50,35,40,40,32,41,26,32] /* "データ(◆修正部分)" */$
DyL:[418,509,485,425,452,425,393,350,375,428,415,363,372,377,271,395,306,357] /* "データ(◆修正部分)" */$
MONDAI:"データの相関係数は" /* "(◆修正部分)" */$
gr(T,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/color=white,line_width =1,
/*....*/implicit(y=ym,x,xm,xM,y,ym,yM),
/*....*/color=red,point_type =7,
/*....*/points_joined =false,point_size =1,points(pK) /* "点pK(一般的位置)を赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =7,
/*....*/points_joined =false,point_size =1,points(pP) /* "点pP(b直径の位置)を青で打って、青線で結んで" */,
/*....*/color=green /* "散布図を書く関数" */))$
mD(DL):=block([nD,mD],
/**/ nD:length(DL),mD:DL[1],
/**/ for i:2 thru nD do(
/*....*/ if mD>DL[i] then mD:DL[i]),
/**/ mD /* "最小値を求める関数" */);
MD(DL):=block([nD,MD],
/**/ nD:length(DL),MD:DL[1],
/**/ for i:2 thru nD do(
/*....*/ if DL[i]>MD then MD:DL[i]),
/**/ MD /* "最大値を求める関数" */);
nD:length(DxL);
pP:[];mx:0;my:0 /* "点のリスト、xの和、yの和を0にして" */;
Sx2:0;Sxy:0;Sy2:0 /* "x^2の和、x*yの和、y^2の和を0にして" */;
for i:1 thru nD do(
/**/ mx:mx+DxL[i],my:my+DyL[i],
/**/ Sx2:Sx2+(DxL[i])^2,
/**/ Sxy:Sxy+(DxL[i])*(DyL[i]),
/**/ Sy2:Sy2+(DyL[i])^2,
/**/ pP:append(pP,[[DxL[i],DyL[i]]])/* "点のリスト、xの和、yの和、x^2の和、x*yの和、y^2の和を求めて" */)$
T:"SANPUZU";
mx:mx/nD,numer;my:my/nD,numer /* "平均を求めて" */;
pK:[[mx,my]] /* "平均の点を指定して" */;
print(Sxy,Sx2,Sy2);
sxy:Sxy/nD-mx*my;
sx2:Sx2/nD-mx^2;
sy2:Sy2/nD-my^2;
r:sxy/sqrt(sx2*sy2),numer /* "共分散、xの分散、yの分散を求めて" */;
xm:mD(DxL)-5;xM:MD(DxL)+5;
ym:mD(DyL)-5;yM:MD(DyL)+5 /* "散布図の範囲を指定して" */;
KOTAE:[r,pK[1],"相関係数、平均"]$
pP;pK;
gr(T,pP,pK,xm,xM,ym,yM) /* "散布図を書いて確認" */;
print(MONDAI)$
print(KOTAE)$


▼コマンド番号40102
●章末問題3
全体の平均値、標準偏差●●●●●●●●●●●●●●●●
kill(all) /* "40102 全体の平均値、標準偏差(Maxima on lineでは削除)" */$
MONDAI:"40102 次の3つの部分の、人数、平均値、標準偏差について";
D1L:[62,63.0,8.1] /* "データ(◆修正部分)" */$
D2L:[70,68.2,9.1] /* "データ(◆修正部分)" */$
D3L:[68,63.5,8.6] /* "データ(◆修正部分)" */$
MONDAI:"全体の平均値、標準偏差は";
S1:D1L[1]*D1L[2] /*D1Lのxの和*/;
S2:D2L[1]*D2L[2] /*D2Lのxの和*/;
S3:D3L[1]*D3L[2] /*D3Lのxの和*/;
S:S1+S2+S3 /*全体のxの和*/;
m:S/(D1L[1]+D2L[1]+D3L[1]) /*全体でのxの平均*/;
V1:D1L[1]*D1L[3]^2 /*D1Lのx^2の和*/;
V2:D2L[1]*D2L[3]^2 /*D2Lのx^2の和*/;
V3:D3L[1]*D3L[3]^2 /*D3Lのx^2の和*/;
V:V1+V2+V3 /*全体でのx^2の和*/;
s:sqrt(V/(D1L[1]+D2L[1]+D3L[1])) /*全体でのx^2の平均の平方根(標準偏差)*/;
KOTAE:[m,s,"全体の平均、標準偏差"];