客博的ارمىتاشقۇل

写在前面的话

这是一个讲话的提纲,因此是不太完整的。对于这次讲话,我秉持的原则是:

打主意,对的多,错的少一点,就行了。不要总是以为自己对,好像真理都在自己手里。——毛泽东

因此我希望大家可以多多讨论,让我们一起来完善这个东西。

本提纲内的数据全由附录中的程序生成,可能不太科学,还请大家谅解。

我们更要广开言路,打开窗户,不要怕打开窗户可能吹进沙子来。进来一点尘土,坏处有一点,但并不大,而开窗户透空气的利益却很大,我们要从这种利害关系上,看这个问题。——毛泽东

版权说明

本提纲的全部内容在 CC BY-SA 4.0-署名-相同方式共享 4.0协议之条款下提供,附加条款亦可能应用。

班级心情值统计方法

心情状态的规定

为了使得统计顺利进行,我们规定下面三种心情状态:

  • 开心(符号 \checkmark
  • 一般(符号\bigcirc
  • 不好(符号×\times

统计方法

建议使用普查的统计方法。心理委员应当向班级管理机构索要班级同学的名单(成绩单),然后一一进行统计。

统计时,应当对样本进行询问:

你今天开心吗?

得到回答后,迅速辨别回答属于哪一个心情状态。如果样本的回答十分含糊,应当告知心情状态的分类,使其自己选择。

当样本在接受调查时出现异常表现时,应当注意。

关于抽样调查

抽样调查不被推荐。但是我们需要了解一下如何科学地使用抽样调查来获取班级同学的心情状态。

首先,先选定样本数量。假设下面是某班的人数:

{男生=19女生=25总人数=44\left\{ \begin{aligned} \text{男生} & = & 19 \\ \text{女生} & = & 25 \\ \text{总人数} & = & 44 \end{aligned} \right.

那么我们可以选择统计1212个男生,1515个女生。在空间上,还应该注意样本的分布应当满足尽可能的离散性

关于心情状态统计结果的整理

假如我们统计到了下面的数据:

组别/状态 开心 一般 不好
男生 1616 99 1313
女生 33 11 22
1919 1010 1515

我们需要计算的数据有:

  • 比值

应当分别为每一组计算每一项所占的比值(保留两位小数):

组别/状态 开心-比 一般-比 不好-比
男生 1642.11%16-42.11\% 923.68%9-23.68\% 1334.21%13-34.21\%
女生 350.00%3-50.00\% 116.67%1-16.67\% 233.33%2-33.33\%
1943.18%19-43.18\% 1022.73%10-22.73\% 1534.09%15-34.09\%

如果条件允许,还可以画一个蛋糕来直观地体现班级心情状态的分布情况:

class.png

同理,也可以绘制男生女生的心情状态分布情况的蛋糕:

boy.png

girl.png

心情值的计算方法

为了计算心情值,我们赋予三种心情状态以不同的权值

  • 开心(符号 \checkmark):22
  • 一般(符号\bigcirc):11
  • 不好(符号×\times): 00

我们赋予心情值以一定的数学意义。从某种程度上来说,所谓心情值就是数学期望

依然以上面的那个统计结果为例:

组别/状态 开心 一般 不好
男生 1616 99 1313
女生 33 11 22
1919 1010 1515

那么,我们可以根据心情值的计算公式:

E=i=0aaidiaE=\frac{\sum^{|a|}_{i=0}a_id_i}{|a|}

计算得:

{E男生=16×2+9×1+13×0381.08E女生=3×2+1×1+2×061.17E=19×2+10×1+15×0441.09\left\{ \begin{aligned} E_\text{男生} & = & \frac{16\times2+9\times1+13\times0}{38}\approx1.08 \\ E_\text{女生} & = & \frac{3\times2+1\times1+2\times0}{6}\approx1.17 \\ E_\text{总} & = & \frac{19\times2+10\times1+15\times0}{44}\approx1.09 \end{aligned} \right.

追踪性质的数据观察

依然使用心情值的概念来考察样本的心情状态。假设某同学的历次统计情况是这样的:

,,,×,\checkmark,\checkmark,\checkmark,\times,\checkmark

那么计算他的心情值为:E=4×2+1×05=1.6E=\frac{4\times2+1\times0}5=1.6

再使用方差来考察样本的心情状态的稳定程度:

S2=15[(21.6)2+(21.6)2+(21.6)2+(01.6)2+(21.6)2]=3.2S^2=\frac15[(2-1.6)^2+(2-1.6)^2+(2-1.6)^2+(0-1.6)^2+(2-1.6)^2]=3.2

大数据的宏观标准

办公室应当在一定的时间内计算出全校的心情值状况。这个心情值将被作为标准进行使用。

例如,有三个班级的心情值结果是这样的:

班级 E男生E_\text{男生} E女生E_\text{女生} EE_\text{总}
11 1.081.08 1.171.17 1.091.09
22 0.400.40 1.561.56 0.950.95
33 0.620.62 0.990.99 0.970.97

那么,我们可以计算Eˉ\bar E_\text{总}:

Eˉ=1.09+0.95+0.9731.00\bar E_\text{总}=\frac{1.09+0.95+0.97}3\approx1.00

因为E1>EˉE_1>\bar E,所以一班的心情水平超过平均水平——意味着一班同学的总体心情状态良好。

反之,E2,E3<EˉE_2,E_3<\bar E,因此这两个班级的心情水平较差。

同理,我们也可以计算$$\bar E_\text{男生}$$和Eˉ女生\bar E_\text{女生}

长期的数据整理

办公室应当做好数据的整理工作。建议以一星期为一个基本测评周期,即每周计算一次Eˉ\bar E(三组)。

为了使数据更加可信,建议使用下面的整理方法:

首先,记录下该组新数据的第kk组数据。

那么:

Eˉnew=Eˉ×(k1)+Ek\bar E_{new}=\frac{\bar E \times (k-1)+E}k

办公室应当使用数据库技术对我校学生心情值数据进行长期的维护。

下面是统计图的示范:

1.png

3.png

统计分为下面几种统计:

  • 周阶段统计
  • 月阶段统计
  • 年阶段统计

附录

心情值样例数据生成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
void fixed(double&,double&,double&);
int main(void)
{
system("title Random v1.0.0(dev.milarodvia.macrohard[github[x]])");
srand(time(NULL));
int n;
printf("Please enter a statistical sample size:");
scanf("%d",&n);
int gn=rand()%(n/2)+1,bn=n-gn;
int b[bn],g[gn],c[3]={0},bc[3]={0},gc[3]={0};
memset(b,0,bn);
memset(g,0,gn);
//!Warning!:If the array `int c[]`,'int bc[]` and 'int gc[]` is not set to 0, then an irreversible data error will occur!
//c[0] stands for "statistics with a weight of 0", and the rest is the same.
puts("Prepare for data generation(for boy group)... ...");
_sleep(100);//sleep for a while.
for(int i=0;i<bn;++i)//range(i,gn)
{
printf("Generating Group %d data... ...\n",i+1);
++c[b[i]=rand()%3];
++bc[b[i]];
printf("[%d|boy|(c[b[i]]=%d)]:%d.\n",i+1,c[b[i]],b[i]);
}
puts("Prepare for data generation(for boy group)... ...");
_sleep(100);//sleep for a while.
for(int i=0;i<gn;++i)//range(i,gn)
{
printf("Generating Group %d data... ...\n",i+1);
++c[g[i]=rand()%3];
++gc[g[i]];
printf("[%d|girl|(c[g[i]]=%d)]:%d.\n",i+1,c[g[i]],g[i]);
}
puts("done.");
puts("Prepare to calculate parameters... ...");
_sleep(100);//sleep for a while.
double d0,d1,d2;
d0=c[0]*1.0/n*1.0;
d1=c[1]*1.0/n*1.0;
d2=c[2]*1.0/n*1.0;
fixed(d0,d1,d2);
puts("The overall mood state distribution of whole class:");
printf("%d|d0=%.4lf\t%d|d1=%.4lf\t%d|d2=%.4lf\n",c[0],d0,c[1],d1,c[2],d2);
//printf("The mood value of whole class:%.4lf\n",(c[2]*2+c[1])/n*1.0);
d0=bc[0]*1.0/bn;
d1=bc[1]*1.0/bn;
d2=bc[2]*1.0/bn;
fixed(d0,d1,d2);
printf("The overall mood state distribution of %d boys:\n",bn);
printf("%d|d0=%.4lf\t%d|d1=%.4lf\t%d|d2=%.4lf\n",bc[0],d0,b[1],d1,bc[2],d2);
//printf("The mood value of boys:%.4lf\n",(bc[2]*2+bc[1])/bn*1.0);
d0=gc[0]*1.0/gn;
d1=gc[1]*1.0/gn;
d2=gc[2]*1.0/gn;
fixed(d0,d1,d2);
printf("The overall mood state distribution of %d girls:\n",gn);
printf("%d|d0=%.4lf\t%d|d1=%.4lf\t%d|d2=%.4lf\n",gc[0],d0,gc[1],d1,gc[2],d2);
//printf("The mood value of girls:%.4lf\n",(gc[2]*2+gc[1])/gn*1.0);
return 0;
}
void fixed(double& d0,double& d1,double& d2)
{
const double s=1.0; //the standard.
char buf[32]; //the buffer
sprintf(buf,"%.4lf %.4lf %.4lf",d0,d1,d2);
sscanf(buf,"%lf%lf%lf",&d0,&d1,&d2);
double t=d0+d1+d2;
if(t==s)return;
if(t<s)d1+=(s-t); //try to fix the bad data
else d1-=(t-s); //another way to fix the bad data
return;
}

数据样例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Please enter a statistical sample size:44
Prepare for data generation(for boy group)... ...
Generating Group 1 data... ...
[1|boy|(c[b[i]]=1)]:0.
Generating Group 2 data... ...
[2|boy|(c[b[i]]=1)]:2.
Generating Group 3 data... ...
[3|boy|(c[b[i]]=1)]:1.
Generating Group 4 data... ...
[4|boy|(c[b[i]]=2)]:0.
Generating Group 5 data... ...
[5|boy|(c[b[i]]=2)]:2.
Generating Group 6 data... ...
[6|boy|(c[b[i]]=3)]:0.
Generating Group 7 data... ...
[7|boy|(c[b[i]]=3)]:2.
Generating Group 8 data... ...
[8|boy|(c[b[i]]=2)]:1.
Generating Group 9 data... ...
[9|boy|(c[b[i]]=4)]:0.
Generating Group 10 data... ...
[10|boy|(c[b[i]]=3)]:1.
Generating Group 11 data... ...
[11|boy|(c[b[i]]=4)]:1.
Generating Group 12 data... ...
[12|boy|(c[b[i]]=4)]:2.
Generating Group 13 data... ...
[13|boy|(c[b[i]]=5)]:2.
Generating Group 14 data... ...
[14|boy|(c[b[i]]=6)]:2.
Generating Group 15 data... ...
[15|boy|(c[b[i]]=7)]:2.
Generating Group 16 data... ...
[16|boy|(c[b[i]]=5)]:0.
Generating Group 17 data... ...
[17|boy|(c[b[i]]=5)]:1.
Generating Group 18 data... ...
[18|boy|(c[b[i]]=6)]:0.
Generating Group 19 data... ...
[19|boy|(c[b[i]]=7)]:0.
Generating Group 20 data... ...
[20|boy|(c[b[i]]=6)]:1.
Generating Group 21 data... ...
[21|boy|(c[b[i]]=8)]:0.
Generating Group 22 data... ...
[22|boy|(c[b[i]]=9)]:0.
Generating Group 23 data... ...
[23|boy|(c[b[i]]=8)]:2.
Generating Group 24 data... ...
[24|boy|(c[b[i]]=7)]:1.
Generating Group 25 data... ...
[25|boy|(c[b[i]]=9)]:2.
Generating Group 26 data... ...
[26|boy|(c[b[i]]=10)]:2.
Generating Group 27 data... ...
[27|boy|(c[b[i]]=11)]:2.
Generating Group 28 data... ...
[28|boy|(c[b[i]]=10)]:0.
Generating Group 29 data... ...
[29|boy|(c[b[i]]=11)]:0.
Generating Group 30 data... ...
[30|boy|(c[b[i]]=12)]:0.
Generating Group 31 data... ...
[31|boy|(c[b[i]]=13)]:0.
Generating Group 32 data... ...
[32|boy|(c[b[i]]=14)]:0.
Generating Group 33 data... ...
[33|boy|(c[b[i]]=8)]:1.
Generating Group 34 data... ...
[34|boy|(c[b[i]]=12)]:2.
Generating Group 35 data... ...
[35|boy|(c[b[i]]=13)]:2.
Generating Group 36 data... ...
[36|boy|(c[b[i]]=9)]:1.
Generating Group 37 data... ...
[37|boy|(c[b[i]]=15)]:0.
Generating Group 38 data... ...
[38|boy|(c[b[i]]=16)]:0.
Prepare for data generation(for boy group)... ...
Generating Group 1 data... ...
[1|girl|(c[g[i]]=10)]:1.
Generating Group 2 data... ...
[2|girl|(c[g[i]]=14)]:2.
Generating Group 3 data... ...
[3|girl|(c[g[i]]=17)]:0.
Generating Group 4 data... ...
[4|girl|(c[g[i]]=15)]:2.
Generating Group 5 data... ...
[5|girl|(c[g[i]]=18)]:0.
Generating Group 6 data... ...
[6|girl|(c[g[i]]=19)]:0.
done.
Prepare to calculate parameters... ...
The overall mood state distribution of whole class:
19|d0=0.4318 10|d1=0.2273 15|d2=0.3409
The overall mood state distribution of 38 boys:
16|d0=0.4211 2|d1=0.2368 13|d2=0.3421
The overall mood state distribution of 6 girls:
3|d0=0.5000 1|d1=0.1667 2|d2=0.3333

建议使用新的表格

组别/项目 开心人数-比 一般人数-比 不开心人数-比 心情值
男生 %d-%.2lf\% %d-%.2lf\% %d-%.2lf\% %.2lf
女生 %d-%.2lf\% %d-%.2lf\% %d-%.2lf\% %.2lf
%d-%.2lf\% %d-%.2lf\% %d-%.2lf\% %.2lf

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 载入天数...载入时分秒... , 总访问量为 次 。