diff options
| author | wukong <wukong@longaeva> | 2019-04-13 13:04:26 -0700 |
|---|---|---|
| committer | wukong <wukong@longaeva> | 2019-04-13 13:04:26 -0700 |
| commit | 0e225c6d140a5a4986d0771aefb8a8edbe5d435d (patch) | |
| tree | 78d197f2e6c972e9483c95ee1154bee2b76d15c4 /cov.awk | |
| parent | 187ab8368c39a3fd459d5715c91a71104413299a (diff) | |
optimized covariance script;
added 'nan' output to diff;
added ':' output delimiter to lin_reg and quad_reg;
fixed broken r^2 calc in quad_reg;
Diffstat (limited to '')
| -rw-r--r-- | cov.awk | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -4,6 +4,7 @@ # online covariance algorithm BEGIN { + OFS = FS sign = "[+-]?" decimal = "[0-9]+[.]?[0-9]*" fraction = "[.][0-9]*" @@ -22,16 +23,17 @@ NF > 0 { ### columns for (y=1; y<=nf_max; y++) { - if ($y == header[y]) - continue ### rows for (x=1; x<=nf_max; x++) { + if ($x !~ number || $x == header[x]) + continue count[x,y]++ dx[x,y] = $x - meanx[x,y] + dy[x,y] = $y - meany[x,y] meanx[x,y] += dx[x,y]/count[x,y] - meany[x,y] += ($y - meany[x,y])/count[x,y] - C[x,y] += dx[x,y]*($y - meany[x,y]) - cov_pop[x,y] = C[x,y]/count[x,y] + meany[x,y] += dy[x,y]/count[x,y] + C[x,y] += dx[x,y]*dy[x,y] + # cov_pop[x,y] = C[x,y]/count[x,y] (count[x,y] > 1) ? cov_samp[x,y] = C[x,y]/(count[x,y] - 1) : cov_samp[x,y] = "" } } |
