diff options
Diffstat (limited to 'lin_reg.awk')
| -rw-r--r-- | lin_reg.awk | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/lin_reg.awk b/lin_reg.awk index e0d67ca..205c43f 100644 --- a/lin_reg.awk +++ b/lin_reg.awk @@ -37,7 +37,7 @@ NF > 0 { sum_delta2[y] += delta0[y]*delta1[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 for (x=1; x<=nf_max; x++) { @@ -46,7 +46,12 @@ NF > 0 { sum_delta_xy[x,y] += delta0[x]*delta1[y] # covariance - (count[x,y] > 1) ? cov[x,y] = sum_delta_xy[x,y]/(count[x,y] - 1) : cov[x,y] = "" + #(count[x,y] > 1) ? cov[x,y] = sum_delta_xy[x,y]/(count[x,y] - 1) : cov[x,y] = "" + + + # correlation + r_den[x,y] = sqrt(sum_delta2[x]*sum_delta2[y]) + (r_den[x,y]) ? r[x,y] = sum_delta_xy[x,y]/r_den[x,y] : r[x,y] = 1 ab_den[x,y] = (count[x,y]*sum2[x] - sum[x]*sum[x]) if (ab_den[x,y]) { @@ -70,11 +75,6 @@ NF > 0 { a_err_den[x,y] = count[x,y]*b_err_den[x,y] if (a_err_den[x,y]) a_err[x,y] = sqrt(sum2[x]/count[x,y])*b_err[x,y] - - # correlation - r_den[x,y] = sqrt(sum_delta2[x]*sum_delta2[y]) - (r_den[x,y]) ? r[x,y] = sum_delta_xy[x,y]/r_den[x,y] : r[x,y] = 1 - } } else @@ -86,9 +86,10 @@ END { for (y=1; y<=nf_max; y++) { for (x=1; x<=nf_max; x++) { if (x != y && r[x,y]) { - printf(OFMT OFS "(%s)" OFS " = (" OFMT " +/- " OFMT ")(%s)" OFS " + (" OFMT " +/- "OFMT ")%s", - 10.0*log(r[x,y]*r[x,y])/log(10.0), header[y], b[x,y], - b_err[x,y], header[x], a[x,y], a_err[x,y], ORS) + printf(OFMT OFS "(%s)" OFS " = (" OFMT " +/- " OFMT ")(%s)" OFS " + (" OFMT " +/- " OFMT ")" ORS, + 10.0*log(r[x,y]*r[x,y])/log(10.0), + header[y], b[x,y], b_err[x,y], + header[x], a[x,y], a_err[x,y]) } } } |
