summaryrefslogtreecommitdiff
path: root/quad_reg.awk
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--quad_reg.awk19
1 files changed, 10 insertions, 9 deletions
diff --git a/quad_reg.awk b/quad_reg.awk
index 4267412..ede06a4 100644
--- a/quad_reg.awk
+++ b/quad_reg.awk
@@ -32,18 +32,16 @@ NF > 0 {
sum2[y] += $y*$y
sum3[y] += $y*$y*$y
sum4[y] += $y*$y*$y*$y
- mean[y] = sum[y]/count[y]
- mean2[y] = sum2[y]/count[y]
-
- ### delta, difference from the mean
- delta[y] = $y - mean[y]
- delta2[y] = $y*$y - mean2[y]
+ delta0[y] = $y - mean[y]
+ mean[y] += delta0[y]/count[y]
+ delta1[y] = $y - mean[y]
+ delta[y] = delta1[y]
+ delta2[y] = delta0[y]*delta[1]
sum_delta[y] += delta[y]
- sum2_delta[y] += delta[y]*delta[y]
sum_delta2[y] += delta2[y]
### sample variance
- (count[y] > 1) ? var[y] = sum_delta2[y]/(count[y] - 1) : var[y] = ""
+ #(count[y] > 1) ? var[y] = sum_delta2[y]/(count[y] - 1) : var[y] = ""
# x = row, y = col, trendline: y = A + Bx + Cx^2
for (x=1; x<=nf_max; x++) {
@@ -122,7 +120,10 @@ END {
printf(OFMT OFS "(%s)" OFS " = (" OFMT ")(%s)^2" OFS " + (" OFMT ")(%s)" OFS " + (" OFMT ")",
10.0*log(r[x,y]*r[x,y])/log(10), header[y], c[x,y], header[x], b[x,y], header[x], a[x,y])
printf(" [" OFMT "," OFMT "][" OFMT "," OFMT "][" OFMT "," OFMT "]" OFS" [" OFMT "," OFMT "]",
- rx0[x,y], 0, rx1[x,y], 0, 0, a[x,y], xv[x,y], yv[x,y])
+ rx0[x,y], (a[x,y] + b[x,y]*rx0[x,y] + c[x,y]*rx0[x,y]*rx0[x,y]),
+ rx1[x,y], (a[x,y] + b[x,y]*rx1[x,y] + c[x,y]*rx1[x,y]*rx1[x,y]),
+ 0, a[x,y],
+ xv[x,y], yv[x,y])
printf(" [" OFMT "," OFMT "]", xf[x,y], yf[x,y])
printf(" [" OFMT "]" ORS, sqrt((yf[x,y] - yv[x,y])*(yf[x,y] - yv[x,y])))
}