[LON-CAPA-cvs] cvs: modules /gerd evaluate.pl
www
lon-capa-cvs@mail.lon-capa.org
Thu, 06 Jul 2006 17:39:15 -0000
This is a MIME encoded message
--www1152207555
Content-Type: text/plain
www Thu Jul 6 13:39:15 2006 EDT
Modified files:
/modules/gerd evaluate.pl
Log:
Three cheers to copy and paste.
Anyway, calculating MPEX cluster scores now and correlations therewith.
--www1152207555
Content-Type: text/plain
Content-Disposition: attachment; filename="www-20060706133915.txt"
Index: modules/gerd/evaluate.pl
diff -u modules/gerd/evaluate.pl:1.11 modules/gerd/evaluate.pl:1.12
--- modules/gerd/evaluate.pl:1.11 Thu Jul 6 11:14:12 2006
+++ modules/gerd/evaluate.pl Thu Jul 6 13:39:15 2006
@@ -76,6 +76,8 @@
my %mpexpost=();
my %mpexprescore=();
my %mpexpostscore=();
+my %mpexscore=();
+my %mpexscoregain=();
my %gender=();
my %fcigain=();
my %mpex=();
@@ -87,21 +89,21 @@
my $user=$entries[4];
unless ($user=~/\w/) { next; }
$gender{$user}=$entries[1];
- $grade{$user}=$entries[7]/4;
+ $grade{$user}=$entries[7];
+# Pre-Results
if ($entries[8]=~/\d/) {
- $fcipre{$user}=$entries[8]/30;
+ $fcipre{$user}=$entries[8];
}
foreach my $mp (1..34) {
if ($entries[38+$mp]=~/\d/) {
- $mpexpre{$user.':'.$mp}=($entries[38+$mp]-1)/4;
- $mpexprescore{$mp.'.'.$entries[38+$mp]}++;
+ $mpexpre{$user.':'.$mp}=$entries[38+$mp];
}
}
if ($entries[73]=~/\d/) {
- $fcipost{$user}=$entries[73]/30;
+ $fcipost{$user}=$entries[73];
}
if (($fcipost{$user}) && ($fcipre{$user})) {
- $fcigain{$user}=($fcipost{$user}-$fcipre{$user})/2+0.5;
+ $fcigain{$user}=$fcipost{$user}-$fcipre{$user};
$fci{$user}=($fcipost{$user}+$fcipre{$user})/2;
} elsif ($fcipost{$user}) {
$fci{$user}=$fcipost{$user};
@@ -110,8 +112,7 @@
}
foreach my $mp (1..34) {
if ($entries[103+$mp]=~/\d/) {
- $mpexpost{$user.':'.$mp}=($entries[103+$mp]-1)/4;
- $mpexpostscore{$mp.'.'.$entries[103+$mp]}++;
+ $mpexpost{$user.':'.$mp}=$entries[103+$mp];
}
}
foreach my $mp (1..34) {
@@ -125,125 +126,470 @@
}
}
close(IN);
-#
-# All information read
-# Variables between 0 and 1 for
-# discussion
-# fcipre
-# fcipost
-# mpexpre
-# mpexpost
-# grade
-# fcigain
-# conceptual
-# procedural
-# surface
-# physics
-# math
-# solution
+
+# Define the MPEX Cluster Scores
+
+my @independence=(1,8,13,14,17,27);
+my @coherence=(12,15,16,21,29);
+my @concepts=(4,19,26,27,32);
+my @reality=(10,18,22,25);
+my @math=(2,6,8,16,20);
+my @effort=(3,6,7,24,31);
+
+my @expert=(undef,
+0,0,1,0,1,1,1,
+0,0,0,1,0,0,0,
+0,0,0,1,0,0,0,
+0,0,0,1,1,0,0,
+0,1,1,1,0,1
+ );
+
# Sample is everybody who got a grade in the course
my @userkeys=sort keys %grade;
-# Get MPEX ave and std-deviations
-my @mpexpresum=();
-my @mpexpren=();
-my @mpexpostsum=();
-my @mpexpostn=();
-my @mpexsum=();
-my @mpexn=();
-my @mpexpreave=();
-my @mpexprestd=();
-my @mpexpostave=();
-my @mpexpoststd=();
-my @mpexave=();
-my @mpexstd=();
-my @mpexpresumq=();
-my @mpexpostsumq=();
-my @mpexsumq=();
+# Calculate MPEX total and cluster scores
+
+foreach my $user (@userkeys) {
+ my $totpre=0;
+ my $totpost=0;
+ my $tot=0;
+ my $scpre=0;
+ my $scpost=0;
+ my $sc=0;
+ foreach my $mp (1..34) {
+ if (defined($mpexpre{$user.':'.$mp})) {
+ $totpre++;
+ if (($mpexpre{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpre++;
+ }
+ if (($mpexpre{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpre++;
+ }
+ }
+ if (defined($mpexpost{$user.':'.$mp})) {
+ $totpost++;
+ if (($mpexpost{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpost++;
+ }
+ if (($mpexpost{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpost++;
+ }
+ }
+ if (defined($mpex{$user.':'.$mp})) {
+ $tot++;
+ if (($mpex{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $sc++;
+ }
+ if (($mpex{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $sc++;
+ }
+ }
+ }
+ if ($totpre) {
+ $mpexprescore{$user.':total'}=$scpre/$totpre;
+ }
+ if ($totpost) {
+ $mpexpostscore{$user.':total'}=$scpost/$totpost;
+ }
+ if ($tot) {
+ $mpexscore{$user.':total'}=$sc/$tot;
+ }
+ if ((defined($mpexprescore{$user.':total'})) && (defined($mpexpostscore{$user.':total'}))) {
+ $mpexscoregain{$user.':total'}=$mpexpostscore{$user.':total'}-$mpexprescore{$user.':total'};
+ }
+}
+
+
+foreach my $user (@userkeys) {
+ my $totpre=0;
+ my $totpost=0;
+ my $tot=0;
+ my $scpre=0;
+ my $scpost=0;
+ my $sc=0;
+ foreach my $mp (@independence) {
+ if (defined($mpexpre{$user.':'.$mp})) {
+ $totpre++;
+ if (($mpexpre{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpre++;
+ }
+ if (($mpexpre{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpre++;
+ }
+ }
+ if (defined($mpexpost{$user.':'.$mp})) {
+ $totpost++;
+ if (($mpexpost{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpost++;
+ }
+ if (($mpexpost{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpost++;
+ }
+ }
+ if (defined($mpex{$user.':'.$mp})) {
+ $tot++;
+ if (($mpex{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $sc++;
+ }
+ if (($mpex{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $sc++;
+ }
+ }
+ }
+ if ($totpre) {
+ $mpexprescore{$user.':independence'}=$scpre/$totpre;
+ }
+ if ($totpost) {
+ $mpexpostscore{$user.':independence'}=$scpost/$totpost;
+ }
+ if ($tot) {
+ $mpexscore{$user.':independence'}=$sc/$tot;
+ }
+ if ((defined($mpexprescore{$user.':independence'})) && (defined($mpexpostscore{$user.':independence'}))) {
+ $mpexscoregain{$user.':independence'}=$mpexpostscore{$user.':independence'}-$mpexprescore{$user.':independence'};
+ }
+}
+
+
+foreach my $user (@userkeys) {
+ my $totpre=0;
+ my $totpost=0;
+ my $tot=0;
+ my $scpre=0;
+ my $scpost=0;
+ my $sc=0;
+ foreach my $mp (@coherence) {
+ if (defined($mpexpre{$user.':'.$mp})) {
+ $totpre++;
+ if (($mpexpre{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpre++;
+ }
+ if (($mpexpre{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpre++;
+ }
+ }
+ if (defined($mpexpost{$user.':'.$mp})) {
+ $totpost++;
+ if (($mpexpost{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpost++;
+ }
+ if (($mpexpost{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpost++;
+ }
+ }
+ if (defined($mpex{$user.':'.$mp})) {
+ $tot++;
+ if (($mpex{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $sc++;
+ }
+ if (($mpex{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $sc++;
+ }
+ }
+ }
+ if ($totpre) {
+ $mpexprescore{$user.':coherence'}=$scpre/$totpre;
+ }
+ if ($totpost) {
+ $mpexpostscore{$user.':coherence'}=$scpost/$totpost;
+ }
+ if ($tot) {
+ $mpexscore{$user.':coherence'}=$sc/$tot;
+ }
+ if ((defined($mpexprescore{$user.':coherence'})) && (defined($mpexpostscore{$user.':coherence'}))) {
+ $mpexscoregain{$user.':coherence'}=$mpexpostscore{$user.':coherence'}-$mpexprescore{$user.':coherence'};
+ }
+}
+
+
+foreach my $user (@userkeys) {
+ my $totpre=0;
+ my $totpost=0;
+ my $tot=0;
+ my $scpre=0;
+ my $scpost=0;
+ my $sc=0;
+ foreach my $mp (@concepts) {
+ if (defined($mpexpre{$user.':'.$mp})) {
+ $totpre++;
+ if (($mpexpre{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpre++;
+ }
+ if (($mpexpre{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpre++;
+ }
+ }
+ if (defined($mpexpost{$user.':'.$mp})) {
+ $totpost++;
+ if (($mpexpost{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpost++;
+ }
+ if (($mpexpost{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpost++;
+ }
+ }
+ if (defined($mpex{$user.':'.$mp})) {
+ $tot++;
+ if (($mpex{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $sc++;
+ }
+ if (($mpex{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $sc++;
+ }
+ }
+ }
+ if ($totpre) {
+ $mpexprescore{$user.':concepts'}=$scpre/$totpre;
+ }
+ if ($totpost) {
+ $mpexpostscore{$user.':concepts'}=$scpost/$totpost;
+ }
+ if ($tot) {
+ $mpexscore{$user.':concepts'}=$sc/$tot;
+ }
+ if ((defined($mpexprescore{$user.':concepts'})) && (defined($mpexpostscore{$user.':concepts'}))) {
+ $mpexscoregain{$user.':concepts'}=$mpexpostscore{$user.':concepts'}-$mpexprescore{$user.':concepts'};
+ }
+}
+
+
+foreach my $user (@userkeys) {
+ my $totpre=0;
+ my $totpost=0;
+ my $tot=0;
+ my $scpre=0;
+ my $scpost=0;
+ my $sc=0;
+ foreach my $mp (@reality) {
+ if (defined($mpexpre{$user.':'.$mp})) {
+ $totpre++;
+ if (($mpexpre{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpre++;
+ }
+ if (($mpexpre{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpre++;
+ }
+ }
+ if (defined($mpexpost{$user.':'.$mp})) {
+ $totpost++;
+ if (($mpexpost{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpost++;
+ }
+ if (($mpexpost{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpost++;
+ }
+ }
+ if (defined($mpex{$user.':'.$mp})) {
+ $tot++;
+ if (($mpex{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $sc++;
+ }
+ if (($mpex{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $sc++;
+ }
+ }
+ }
+ if ($totpre) {
+ $mpexprescore{$user.':reality'}=$scpre/$totpre;
+ }
+ if ($totpost) {
+ $mpexpostscore{$user.':reality'}=$scpost/$totpost;
+ }
+ if ($tot) {
+ $mpexscore{$user.':reality'}=$sc/$tot;
+ }
+ if ((defined($mpexprescore{$user.':reality'})) && (defined($mpexpostscore{$user.':reality'}))) {
+ $mpexscoregain{$user.':reality'}=$mpexpostscore{$user.':reality'}-$mpexprescore{$user.':reality'};
+ }
+}
foreach my $user (@userkeys) {
- foreach my $number (1..34) {
- if (defined($mpexpre{$user.':'.$number})) {
- $mpexpresum[$number]+=$mpexpre{$user.':'.$number};
- $mpexpren[$number]++;
- }
- if (defined($mpexpost{$user.':'.$number})) {
- $mpexpostsum[$number]+=$mpexpost{$user.':'.$number};
- $mpexpostn[$number]++;
- }
- if (defined($mpex{$user.':'.$number})) {
- $mpexsum[$number]+=$mpex{$user.':'.$number};
- $mpexn[$number]++;
- }
- }
-}
-
-foreach my $number (1..34) {
- $mpexpreave[$number]=$mpexpresum[$number]/$mpexpren[$number];
- $mpexpostave[$number]=$mpexpostsum[$number]/$mpexpostn[$number];
- $mpexave[$number]=$mpexsum[$number]/$mpexn[$number];
+ my $totpre=0;
+ my $totpost=0;
+ my $tot=0;
+ my $scpre=0;
+ my $scpost=0;
+ my $sc=0;
+ foreach my $mp (@math) {
+ if (defined($mpexpre{$user.':'.$mp})) {
+ $totpre++;
+ if (($mpexpre{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpre++;
+ }
+ if (($mpexpre{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpre++;
+ }
+ }
+ if (defined($mpexpost{$user.':'.$mp})) {
+ $totpost++;
+ if (($mpexpost{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpost++;
+ }
+ if (($mpexpost{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpost++;
+ }
+ }
+ if (defined($mpex{$user.':'.$mp})) {
+ $tot++;
+ if (($mpex{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $sc++;
+ }
+ if (($mpex{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $sc++;
+ }
+ }
+ }
+ if ($totpre) {
+ $mpexprescore{$user.':math'}=$scpre/$totpre;
+ }
+ if ($totpost) {
+ $mpexpostscore{$user.':math'}=$scpost/$totpost;
+ }
+ if ($tot) {
+ $mpexscore{$user.':math'}=$sc/$tot;
+ }
+ if ((defined($mpexprescore{$user.':math'})) && (defined($mpexpostscore{$user.':math'}))) {
+ $mpexscoregain{$user.':math'}=$mpexpostscore{$user.':math'}-$mpexprescore{$user.':math'};
+ }
}
+
foreach my $user (@userkeys) {
- foreach my $number (1..34) {
- if (defined($mpexpre{$user.':'.$number})) {
- $mpexpresumq[$number]+=($mpexpre{$user.':'.$number}-$mpexpreave[$number])**2;
- }
- if (defined($mpexpost{$user.':'.$number})) {
- $mpexpostsumq[$number]+=($mpexpost{$user.':'.$number}-$mpexpostave[$number])**2;
- }
- if (defined($mpex{$user.':'.$number})) {
- $mpexsumq[$number]+=($mpex{$user.':'.$number}-$mpexave[$number])**2;
- }
- }
-}
-
-foreach my $number (1..34) {
- $mpexprestd[$number]=int(100*sqrt($mpexpresumq[$number]/$mpexpren[$number])+0.5)/100;
- $mpexpoststd[$number]=int(100*sqrt($mpexpostsumq[$number]/$mpexpostn[$number])+0.5)/100;
- $mpexstd[$number]=int(100*sqrt($mpexsumq[$number]/$mpexn[$number])+0.5)/100;
- $mpexpreave[$number]=int(100*$mpexpreave[$number]+0.5)/100;
- $mpexpostave[$number]=int(100*$mpexpostave[$number]+0.5)/100;
- $mpexave[$number]=int(100*$mpexave[$number]+0.5)/100;
-}
-
-print "\nGrade/Solution: ".&hashcorrelate(\%grade,'',\%solution,'',\@userkeys,'',0.01,100);
-print "\nGrade/Math: ".&hashcorrelate(\%grade,'',\%math,'',\@userkeys,'',0.01,100);
-print "\nGrade/Physics: ".&hashcorrelate(\%grade,'',\%physics,'',\@userkeys,'',0.01,100);
-print "\nGrade/Surface: ".&hashcorrelate(\%grade,'',\%surface,'',\@userkeys,'',0.01,100);
-print "\nGrade/Procedural: ".&hashcorrelate(\%grade,'',\%procedural,'',\@userkeys,'',0.01,100);
-print "\nGrade/Conceptual: ".&hashcorrelate(\%grade,'',\%conceptual,'',\@userkeys,'',0.01,100);
-
-print "\nFCIFinal/Solution: ".&hashcorrelate(\%fcipost,'',\%solution,'',\@userkeys,'',0.01,100);
-print "\nFCIFinal/Math: ".&hashcorrelate(\%fcipost,'',\%math,'',\@userkeys,'',0.01,100);
-print "\nFCIFinal/Physics: ".&hashcorrelate(\%fcipost,'',\%physics,'',\@userkeys,'',0.01,100);
-print "\nFCIFinal/Surface: ".&hashcorrelate(\%fcipost,'',\%surface,'',\@userkeys,'',0.01,100);
-print "\nFCIFinal/Procedural: ".&hashcorrelate(\%fcipost,'',\%procedural,'',\@userkeys,'',0.01,100);
-print "\nFCIFinal/Conceptual: ".&hashcorrelate(\%fcipost,'',\%conceptual,'',\@userkeys,'',0.01,100);
-
-print "\nFCIg/Solution: ".&hashcorrelate(\%fcigain,'',\%solution,'',\@userkeys,'',0.01,100);
-print "\nFCIg/Math: ".&hashcorrelate(\%fcigain,'',\%math,'',\@userkeys,'',0.01,100);
-print "\nFCIg/Physics: ".&hashcorrelate(\%fcigain,'',\%physics,'',\@userkeys,'',0.01,100);
-print "\nFCIg/Surface: ".&hashcorrelate(\%fcigain,'',\%surface,'',\@userkeys,'',0.01,100);
-print "\nFCIg/Procedural: ".&hashcorrelate(\%fcigain,'',\%procedural,'',\@userkeys,'',0.01,100);
-print "\nFCIg/Conceptual: ".&hashcorrelate(\%fcigain,'',\%conceptual,'',\@userkeys,'',0.01,100);
+ my $totpre=0;
+ my $totpost=0;
+ my $tot=0;
+ my $scpre=0;
+ my $scpost=0;
+ my $sc=0;
+ foreach my $mp (@effort) {
+ if (defined($mpexpre{$user.':'.$mp})) {
+ $totpre++;
+ if (($mpexpre{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpre++;
+ }
+ if (($mpexpre{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpre++;
+ }
+ }
+ if (defined($mpexpost{$user.':'.$mp})) {
+ $totpost++;
+ if (($mpexpost{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $scpost++;
+ }
+ if (($mpexpost{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $scpost++;
+ }
+ }
+ if (defined($mpex{$user.':'.$mp})) {
+ $tot++;
+ if (($mpex{$user.':'.$mp}>3) && ($expert[$mp]==1)) {
+ $sc++;
+ }
+ if (($mpex{$user.':'.$mp}<3) && ($expert[$mp]==0)) {
+ $sc++;
+ }
+ }
+ }
+ if ($totpre) {
+ $mpexprescore{$user.':effort'}=$scpre/$totpre;
+ }
+ if ($totpost) {
+ $mpexpostscore{$user.':effort'}=$scpost/$totpost;
+ }
+ if ($tot) {
+ $mpexscore{$user.':effort'}=$sc/$tot;
+ }
+ if ((defined($mpexprescore{$user.':effort'})) && (defined($mpexpostscore{$user.':effort'}))) {
+ $mpexscoregain{$user.':effort'}=$mpexpostscore{$user.':effort'}-$mpexprescore{$user.':effort'};
+ }
+}
+
+
+
+print "\nGrade/Solution: ".&hashcorrelate(\%grade,'',\%solution,'',\@userkeys,'',0.1,100);
+print "\nGrade/Math: ".&hashcorrelate(\%grade,'',\%math,'',\@userkeys,'',0.1,100);
+print "\nGrade/Physics: ".&hashcorrelate(\%grade,'',\%physics,'',\@userkeys,'',0.1,100);
+print "\nGrade/Surface: ".&hashcorrelate(\%grade,'',\%surface,'',\@userkeys,'',0.1,100);
+print "\nGrade/Procedural: ".&hashcorrelate(\%grade,'',\%procedural,'',\@userkeys,'',0.1,100);
+print "\nGrade/Conceptual: ".&hashcorrelate(\%grade,'',\%conceptual,'',\@userkeys,'',0.1,100);
+
+print "\nFCIFinal/Solution: ".&hashcorrelate(\%fcipost,'',\%solution,'',\@userkeys,'',0.1,100);
+print "\nFCIFinal/Math: ".&hashcorrelate(\%fcipost,'',\%math,'',\@userkeys,'',0.1,100);
+print "\nFCIFinal/Physics: ".&hashcorrelate(\%fcipost,'',\%physics,'',\@userkeys,'',0.1,100);
+print "\nFCIFinal/Surface: ".&hashcorrelate(\%fcipost,'',\%surface,'',\@userkeys,'',0.1,100);
+print "\nFCIFinal/Procedural: ".&hashcorrelate(\%fcipost,'',\%procedural,'',\@userkeys,'',0.1,100);
+print "\nFCIFinal/Conceptual: ".&hashcorrelate(\%fcipost,'',\%conceptual,'',\@userkeys,'',0.1,100);
+
+print "\nFCIg/Solution: ".&hashcorrelate(\%fcigain,'',\%solution,'',\@userkeys,'',0.1,100);
+print "\nFCIg/Math: ".&hashcorrelate(\%fcigain,'',\%math,'',\@userkeys,'',0.1,100);
+print "\nFCIg/Physics: ".&hashcorrelate(\%fcigain,'',\%physics,'',\@userkeys,'',0.1,100);
+print "\nFCIg/Surface: ".&hashcorrelate(\%fcigain,'',\%surface,'',\@userkeys,'',0.1,100);
+print "\nFCIg/Procedural: ".&hashcorrelate(\%fcigain,'',\%procedural,'',\@userkeys,'',0.1,100);
+print "\nFCIg/Conceptual: ".&hashcorrelate(\%fcigain,'',\%conceptual,'',\@userkeys,'',0.1,100);
+
+foreach my $cat ('total','independence','coherence','concepts','reality','math','effort') {
+ print "\n\n-- CAT: $cat\n";
+
+ print "\n$cat Pre/Solution: ".&hashcorrelate(\%mpexprescore,$cat,\%solution,'',\@userkeys,'',0.1,100);
+ print "\n$cat Pre/Math: ".&hashcorrelate(\%mpexprescore,$cat,\%math,'',\@userkeys,'',0.1,100);
+ print "\n$cat Pre/Physics: ".&hashcorrelate(\%mpexprescore,$cat,\%physics,'',\@userkeys,'',0.1,100);
+ print "\n$cat Pre/Surface: ".&hashcorrelate(\%mpexprescore,$cat,\%surface,'',\@userkeys,'',0.1,100);
+ print "\n$cat Pre/Procedural: ".&hashcorrelate(\%mpexprescore,$cat,\%procedural,'',\@userkeys,'',0.1,100);
+ print "\n$cat Pre/Conceptual: ".&hashcorrelate(\%mpexprescore,$cat,\%conceptual,'',\@userkeys,'',0.1,100);
+ print "\n$cat Pre/Grade: ".&hashcorrelate(\%mpexprescore,$cat,\%grade,'',\@userkeys,'',0.1,100);
+ print "\n$cat Pre/FCIPre: ".&hashcorrelate(\%mpexprescore,$cat,\%fcipre,'',\@userkeys,'',0.1,100);
+ print "\n$cat Pre/FCIFinal: ".&hashcorrelate(\%mpexprescore,$cat,\%fcipost,'',\@userkeys,'',0.1,100);
+ print "\n$cat Pre/FCIg: ".&hashcorrelate(\%mpexprescore,$cat,\%fcigain,'',\@userkeys,'',0.1,100);
+
+ print "\n$cat Post/Solution: ".&hashcorrelate(\%mpexpostscore,$cat,\%solution,'',\@userkeys,'',0.1,100);
+ print "\n$cat Post/Math: ".&hashcorrelate(\%mpexpostscore,$cat,\%math,'',\@userkeys,'',0.1,100);
+ print "\n$cat Post/Physics: ".&hashcorrelate(\%mpexpostscore,$cat,\%physics,'',\@userkeys,'',0.1,100);
+ print "\n$cat Post/Surface: ".&hashcorrelate(\%mpexpostscore,$cat,\%surface,'',\@userkeys,'',0.1,100);
+ print "\n$cat Post/Procedural: ".&hashcorrelate(\%mpexpostscore,$cat,\%procedural,'',\@userkeys,'',0.1,100);
+ print "\n$cat Post/Conceptual: ".&hashcorrelate(\%mpexpostscore,$cat,\%conceptual,'',\@userkeys,'',0.1,100);
+ print "\n$cat Post/Grade: ".&hashcorrelate(\%mpexpostscore,$cat,\%grade,'',\@userkeys,'',0.1,100);
+ print "\n$cat Post/FCIPre: ".&hashcorrelate(\%mpexpostscore,$cat,\%fcipre,'',\@userkeys,'',0.1,100);
+ print "\n$cat Post/FCIFinal: ".&hashcorrelate(\%mpexpostscore,$cat,\%fcipost,'',\@userkeys,'',0.1,100);
+ print "\n$cat Post/FCIg: ".&hashcorrelate(\%mpexpostscore,$cat,\%fcigain,'',\@userkeys,'',0.1,100);
+
+ print "\n$cat/Solution: ".&hashcorrelate(\%mpexscore,$cat,\%solution,'',\@userkeys,'',0.1,100);
+ print "\n$cat/Math: ".&hashcorrelate(\%mpexscore,$cat,\%math,'',\@userkeys,'',0.1,100);
+ print "\n$cat/Physics: ".&hashcorrelate(\%mpexscore,$cat,\%physics,'',\@userkeys,'',0.1,100);
+ print "\n$cat/Surface: ".&hashcorrelate(\%mpexscore,$cat,\%surface,'',\@userkeys,'',0.1,100);
+ print "\n$cat/Procedural: ".&hashcorrelate(\%mpexscore,$cat,\%procedural,'',\@userkeys,'',0.1,100);
+ print "\n$cat/Conceptual: ".&hashcorrelate(\%mpexscore,$cat,\%conceptual,'',\@userkeys,'',0.1,100);
+ print "\n$cat/Grade: ".&hashcorrelate(\%mpexscore,$cat,\%grade,'',\@userkeys,'',0.1,100);
+ print "\n$cat/FCIPre: ".&hashcorrelate(\%mpexscore,$cat,\%fcipre,'',\@userkeys,'',0.1,100);
+ print "\n$cat/FCIFinal: ".&hashcorrelate(\%mpexscore,$cat,\%fcipost,'',\@userkeys,'',0.1,100);
+ print "\n$cat/FCIg: ".&hashcorrelate(\%mpexscore,$cat,\%fcigain,'',\@userkeys,'',0.1,100);
+
+ print "\n$cat Gain/Solution: ".&hashcorrelate(\%mpexscoregain,$cat,\%solution,'',\@userkeys,'',0.1,100);
+ print "\n$cat Gain/Math: ".&hashcorrelate(\%mpexscoregain,$cat,\%math,'',\@userkeys,'',0.1,100);
+ print "\n$cat Gain/Physics: ".&hashcorrelate(\%mpexscoregain,$cat,\%physics,'',\@userkeys,'',0.1,100);
+ print "\n$cat Gain/Surface: ".&hashcorrelate(\%mpexscoregain,$cat,\%surface,'',\@userkeys,'',0.1,100);
+ print "\n$cat Gain/Procedural: ".&hashcorrelate(\%mpexscoregain,$cat,\%procedural,'',\@userkeys,'',0.1,100);
+ print "\n$cat Gain/Conceptual: ".&hashcorrelate(\%mpexscoregain,$cat,\%conceptual,'',\@userkeys,'',0.1,100);
+ print "\n$cat Gain/Grade: ".&hashcorrelate(\%mpexscoregain,$cat,\%grade,'',\@userkeys,'',0.1,100);
+ print "\n$cat Gain/FCIPre: ".&hashcorrelate(\%mpexscoregain,$cat,\%fcipre,'',\@userkeys,'',0.1,100);
+ print "\n$cat Gain/FCIFinal: ".&hashcorrelate(\%mpexscoregain,$cat,\%fcipost,'',\@userkeys,'',0.1,100);
+ print "\n$cat Gain/FCIg: ".&hashcorrelate(\%mpexscoregain,$cat,\%fcigain,'',\@userkeys,'',0.1,100);
+}
+
foreach my $number (1..8) {
foreach my $char ('a'..'d') {
print "\n$number$char: ".
- &hashcorrelate(\%grade,'',\%discussion,$number.$char,\@userkeys,'Grade',0.01,100).
- &hashcorrelate(\%fcipost,'',\%discussion,$number.$char,\@userkeys,'FCIFinal',0.01,100).
- &hashcorrelate(\%fcigain,'',\%discussion,$number.$char,\@userkeys,'FCIg',0.01,100);
+ &hashcorrelate(\%grade,'',\%discussion,$number.$char,\@userkeys,'Grade',0.1,100).
+ &hashcorrelate(\%fcipost,'',\%discussion,$number.$char,\@userkeys,'FCIFinal',0.1,100).
+ &hashcorrelate(\%fcigain,'',\%discussion,$number.$char,\@userkeys,'FCIg',0.1,100);
}
}
-foreach my $mpexidx (1..34,'independence',1,8,13,14,17,27,'coherence',12,15,16,21,29,'concepts',4,19,26,27,32,'reality link',10,18,22,25,'math link',2,6,8,16,20,'effort',3,6,7,24,31) {
+foreach my $mpexidx (1..34) {
print "\n$mpexidx - ";
- print ' Pre: '.$mpexpreave[$mpexidx].'+/-'.$mpexprestd[$mpexidx].'('.$mpexpren[$mpexidx].')'.
- ' Post: '.$mpexpostave[$mpexidx].'+/-'.$mpexpoststd[$mpexidx].'('.$mpexpostn[$mpexidx].')'.
- ' Both: '.$mpexave[$mpexidx].'+/-'.$mpexstd[$mpexidx].'('.$mpexn[$mpexidx].')';
+
print &hashcorrelate(\%fci,'',\%mpex,$mpexidx,\@userkeys,'FCI').
&hashcorrelate(\%fcipre,'',\%mpex,$mpexidx,\@userkeys,'FCIInit').
&hashcorrelate(\%fcipost,'',\%mpex,$mpexidx,\@userkeys,'FCIFinal').
@@ -281,22 +627,6 @@
}
print "\n";
-foreach my $mp (1..34) {
- print
- "\nPre $mp: ".$mpexprescore{"$mp.1"}."-".$mpexprescore{"$mp.2"}."-".$mpexprescore{"$mp.3"}."-".$mpexprescore{"$mp.4"}."-".$mpexprescore{"$mp.5"};
- my $sum=$mpexprescore{"$mp.1"}+$mpexprescore{"$mp.2"}+$mpexprescore{"$mp.3"}+$mpexprescore{"$mp.4"}+$mpexprescore{"$mp.5"};
- print " ($sum) ";
- my $disagree=($mpexprescore{"$mp.1"}+$mpexprescore{"$mp.2"})/$sum;
- my $agree=($mpexprescore{"$mp.4"}+$mpexprescore{"$mp.5"})/$sum;
- print "D: $disagree A: $agree\n";
- print "Post $mp: ". $mpexpostscore{"$mp.1"}."-".$mpexpostscore{"$mp.2"}."-".$mpexpostscore{"$mp.3"}."-".$mpexpostscore{"$mp.4"}."-".$mpexpostscore{"$mp.5"};
- my $sum=$mpexpostscore{"$mp.1"}+$mpexpostscore{"$mp.2"}+$mpexpostscore{"$mp.3"}+$mpexpostscore{"$mp.4"}+$mpexpostscore{"$mp.5"};
- print " ($sum) ";
- $disagree=($mpexpostscore{"$mp.1"}+$mpexpostscore{"$mp.2"})/$sum;
- $agree=($mpexpostscore{"$mp.4"}+$mpexpostscore{"$mp.5"})/$sum;
- print "D: $disagree A: $agree\n";
-
-}
exit;
#
@@ -345,7 +675,7 @@
sub correlation {
my ($x,$y)=@_;
my $co= new Statistics::Basic::Correlation($x,$y);
- return ($co->query,$#$x);;
+ return ($co->query,$#$x+1);
}
@@ -372,5 +702,5 @@
my $pop_sd_x = sqrt( $sum_sq_x / $#$x );
my $pop_sd_y = sqrt( $sum_sq_y / $#$x );
my $cov_x_y=$sum_coproduct / $#$x;
- return ($cov_x_y / ($pop_sd_x * $pop_sd_y),$#$x);
+ return ($cov_x_y / ($pop_sd_x * $pop_sd_y),$#$x+1);
}
--www1152207555--