public double DoDoTuongTu(EPAA _data, int epaa) { int n = soCot; int w = epaa; double nw = n * 1.0 / w; EPAA data1 = _data.ChuanHoa(); EPAA data2 = ChuanHoa(); double ret = 0; double s_alpha = 0; double dpaa = 0, drpaa = 0; for (int i = 0; i < n; i++) { double r; r = data2.Data[i].Avg.Giatri - data1.Data[i].Avg.Giatri; r = r * r; dpaa += r; } drpaa = nw * dpaa; for (int i = 0; i < w; i++) { s_alpha += 0 * 0; } ret = Math.Sqrt(drpaa + ((nw - 1) * (nw + 1) * (nw + 1)) * s_alpha / 18); return(ret); }
public EPAA ChuanHoa() { EPAA newData = new EPAA(); double meanQ = GiaTriTrungBinhTrongDoan(0, soCot).Giatri; double varQ = 0; double varQTu = 0; for (int i = 0; i < soCot; i++) { varQTu += Math.Pow((data[i].Avg.Giatri - meanQ), 2); } varQ = Math.Sqrt(varQTu / soCot); for (int i = 0; i < soCot; i++) { Diem giatri = new Diem((data[i].Avg.Giatri - meanQ) / varQ, data[i].Avg.Vitri); newData.Data.Add(giatri); } newData.soCot = newData.data.Count; return(newData); }
public EPAA copy(int viTriDau, int doDai) { EPAA ret = new EPAA(); int i = viTriDau; for (i = viTriDau; i < viTriDau + doDai; i++) { ret.data.Add(data[i]); } ret.SoCot = ret.data.Count; return(ret); }
public EPAA ThayDoiSoLuongDuLieuEPAA(int doDaiCotMoi) { DuLieuDaGopTungDoan = true; int soCotMoi = soCot / doDaiCotMoi; EPAA newData = new EPAA(); if (soCot == doDaiCotMoi) { return(this); } if (doDaiCotMoi <= 0 && doDaiCotMoi > SoCot) { return(null); } int len = soCot / doDaiCotMoi; for (int i = 0; i < doDaiCotMoi; i++) { //Diem d = new Diem(); //d.Max = GiaTriLonNhatTrongDoan(i * len, (i + 1) * len); //d.Min = GiaTriNhoNhatTrongDoan(i * len, (i + 1) * len); //d.Avg = GiaTriTrungBinhTrongDoan(i * len, (i + 1) * len); //newData.Add(d); Diem d = new Diem(); d.Max = GiaTriLonNhatTrongDoan(i * len, (i + 1) * len); d.Min = GiaTriNhoNhatTrongDoan(i * len, (i + 1) * len); d.Avg = GiaTriTrungBinhTrongDoan(i * len, (i + 1) * len); if ((d.Max.Vitri < d.Avg.Vitri) && (d.Avg.Vitri < d.Min.Vitri)) { int index; for (index = 0; index < soCotMoi / 3; index++) { newData.Add(new Diem(d.Max.Giatri, 0)); } for (; index < soCotMoi * 2 / 3; index++) { newData.Add(new Diem(d.Avg.Giatri, 0)); } for (; index < soCotMoi; index++) { newData.Add(new Diem(d.Min.Giatri, 0)); } } else if ((d.Min.Vitri < d.Avg.Vitri) && (d.Avg.Vitri < d.Max.Vitri)) { int index; for (index = 0; index < soCotMoi / 3; index++) { newData.Add(new Diem(d.Min.Giatri, 0)); } for (; index < soCotMoi * 2 / 3; index++) { newData.Add(new Diem(d.Avg.Giatri, 0)); } for (; index < soCotMoi; index++) { newData.Add(new Diem(d.Max.Giatri, 0)); } } else if ((d.Min.Vitri < d.Max.Vitri) && (d.Max.Vitri < d.Avg.Vitri)) { int index; for (index = 0; index < soCotMoi / 3; index++) { newData.Add(new Diem(d.Min.Giatri, 0)); } for (; index < soCotMoi * 2 / 3; index++) { newData.Add(new Diem(d.Max.Giatri, 0)); } for (; index < soCotMoi; index++) { newData.Add(new Diem(d.Avg.Giatri, 0)); } } else if ((d.Max.Vitri < d.Min.Vitri) && (d.Min.Vitri < d.Avg.Vitri)) { int index; for (index = 0; index < soCotMoi / 3; index++) { newData.Add(new Diem(d.Max.Giatri, 0)); } for (; index < soCotMoi * 2 / 3; index++) { newData.Add(new Diem(d.Min.Giatri, 0)); } for (; index < soCotMoi; index++) { newData.Add(new Diem(d.Avg.Giatri, 0)); } } else if ((d.Avg.Vitri < d.Max.Vitri) && (d.Max.Vitri < d.Min.Vitri)) { int index; for (index = 0; index < soCotMoi / 3; index++) { newData.Add(new Diem(d.Avg.Giatri, 0)); } for (; index < soCotMoi * 2 / 3; index++) { newData.Add(new Diem(d.Max.Giatri, 0)); } for (; index < soCotMoi; index++) { newData.Add(new Diem(d.Min.Giatri, 0)); } } else { int index; for (index = 0; index < soCotMoi / 3; index++) { newData.Add(new Diem(d.Avg.Giatri, 0)); } for (; index < soCotMoi * 2 / 3; index++) { newData.Add(new Diem(d.Min.Giatri, 0)); } for (; index < soCotMoi; index++) { newData.Add(new Diem(d.Max.Giatri, 0)); } } } //soCot = doDaiCotMoi; return(newData); }