70 lines
2.1 KiB
C
70 lines
2.1 KiB
C
/* sample program for the gas data using loess */
|
|
|
|
#include <stdio.h>
|
|
#include "loess.h"
|
|
|
|
struct loess_struct gas, gas_null;
|
|
struct pred_struct gas_pred;
|
|
struct ci_struct gas_ci;
|
|
struct anova_struct gas_anova;
|
|
double NOx[] = {4.818, 2.849, 3.275, 4.691, 4.255, 5.064, 2.118, 4.602,
|
|
2.286, 0.97, 3.965, 5.344, 3.834, 1.99, 5.199, 5.283,
|
|
3.752, 0.537, 1.64, 5.055, 4.937, 1.561};
|
|
double E[] = {0.831, 1.045, 1.021, 0.97, 0.825, 0.891, 0.71, 0.801,
|
|
1.074, 1.148, 1, 0.928, 0.767, 0.701, 0.807, 0.902,
|
|
0.997, 1.224, 1.089, 0.973, 0.98, 0.665};
|
|
double gas_fit_E[] = {0.665, 0.949, 1.224};
|
|
double newdata[] = {0.6650000, 0.7581667, 0.8513333, 0.9445000,
|
|
1.0376667, 1.1308333, 1.2240000};
|
|
double coverage = .99;
|
|
int i, n = 22, p = 1, m = 3, se_fit = FALSE;
|
|
|
|
main() {
|
|
printf("\nloess(&gas):\n");
|
|
loess_setup(E, NOx, n, p, &gas);
|
|
gas.model.span = 2.0 / 3.0;
|
|
loess(&gas);
|
|
loess_summary(&gas);
|
|
|
|
printf("\nloess(&gas_null):\n");
|
|
loess_setup(E, NOx, n, p, &gas_null);
|
|
gas_null.model.span = 1.0;
|
|
loess(&gas_null);
|
|
loess_summary(&gas_null);
|
|
|
|
printf("\npredict(gas_fit_E, m, &gas, &gas_pred, %d):\n", se_fit);
|
|
predict(gas_fit_E, m, &gas, &gas_pred, se_fit);
|
|
for(i = 0; i < m; i++)
|
|
printf("%g ", gas_pred.fit[i]);
|
|
printf("\n");
|
|
|
|
m = 7;
|
|
se_fit = TRUE;
|
|
predict(newdata, m, &gas, &gas_pred, se_fit);
|
|
printf("\npointwise(&gas_pred, m, coverage, &gas_ci):\n");
|
|
pointwise(&gas_pred, m, coverage, &gas_ci);
|
|
for(i = 0; i < m; i++)
|
|
printf("%g ", gas_ci.upper[i]);
|
|
printf("\n");
|
|
for(i = 0; i < m; i++)
|
|
printf("%g ", gas_ci.fit[i]);
|
|
printf("\n");
|
|
for(i = 0; i < m; i++)
|
|
printf("%g ", gas_ci.lower[i]);
|
|
printf("\n");
|
|
|
|
printf("\nanova(&gas_null, &gas, &gas_anova):\n");
|
|
anova(&gas_null, &gas, &gas_anova);
|
|
printf("%g %g %g %g\n", gas_anova.dfn, gas_anova.dfd,
|
|
gas_anova.F_value, gas_anova.Pr_F);
|
|
|
|
loess_free_mem(&gas);
|
|
loess_free_mem(&gas_null);
|
|
pred_free_mem(&gas_pred);
|
|
pw_free_mem(&gas_ci);
|
|
}
|
|
|
|
|
|
|
|
|