一系列数据,其中有几个异常数据干扰,影响平均数大小,怎么剔除该数据?
下列数据中需要 剔除 3.42 3.82 4.6
1.4
3.42
1.46
1.46
1.48
1.45
1.45
3.82
1.48
1.46
4.6
1.45
1.49
1.49
1.5
下列数据中需要 剔除 3.42 3.82 4.6
1.4
3.42
1.46
1.46
1.48
1.45
1.45
3.82
1.48
1.46
4.6
1.45
1.49
1.49
1.5
A)假定数据有效范围 [0.0, 3.0],直接排除 >3.0 的数。
B)假定异常数据不会连续出现,如果 A(i) > A(i-1)*2 则排除 n(i)。
C)将数组排序,取中间一个数 M=A(n\2),排除 > M*2 的数。
> M*2 无法排除,
> M+0.5 可以排除,这个就是你必须预先确立的规则。
Option Explicit
Dim dblP(0 To 14) As Double
Dim dblA As Double '偏差判断值
Private Sub Command1_Click()
Dim intP As Integer
Dim dblSum As Double
For intP = 0 To 14
dblSum = dblSum + dblP(intP)
Next intP
dblSum = dblSum / 15
For intP = 0 To 14
If Abs(dblP(intP) - dblSum) > dblA Then
Print "dblP(" & CStr(intP) & ")=" & dblP(intP) & " 是异常数据!"
End If
Next intP
End SubPrivate Sub Form_Load()
dblP(0) = 1.4
dblP(1) = 3.42
dblP(2) = 1.46
dblP(3) = 1.46
dblP(4) = 1.48
dblP(5) = 1.45
dblP(6) = 1.45
dblP(7) = 3.82
dblP(8) = 1.48
dblP(9) = 1.46
dblP(10) = 4.6
dblP(11) = 1.45
dblP(12) = 1.49
dblP(13) = 1.49
dblP(14) = 1.5
dblA = 1#
End Sub
Dim dblP(0 To 14) As Double
Dim dblA As Double '偏差判断值
'平均值法
Private Sub Command1_Click()
Dim intP As Integer
Dim dblSum As Double
dblA = 1#
For intP = 0 To 14
dblSum = dblSum + dblP(intP)
Next intP
dblSum = dblSum / 15
For intP = 0 To 14
If Abs(dblP(intP) - dblSum) > dblA Then
Print "dblP(" & CStr(intP) & ")=" & dblP(intP) & " 是异常数据!"
End If
Next intP
End Sub
'排序法
Private Sub Command2_Click()
Dim intP As Integer
Dim intT As Integer
Dim dblT As Double
dblA = 2#
'执行排序
For intP = 0 To 13
For intT = intP + 1 To 14
If dblP(intP) < dblP(intT) Then
dblT = dblP(intT)
dblP(intT) = dblP(intP)
dblP(intP) = dblT
End If
Next intT
Next intP
For intP = 0 To 14
If dblP(intP) > dblA Then
Print "dblP(" & CStr(intP) & ")=" & dblP(intP) & " 是异常数据!"
End If
Next intP
End SubPrivate Sub Form_Load()
dblP(0) = 1.4
dblP(1) = 3.42
dblP(2) = 1.46
dblP(3) = 1.46
dblP(4) = 1.48
dblP(5) = 1.45
dblP(6) = 1.45
dblP(7) = 3.82
dblP(8) = 1.48
dblP(9) = 1.46
dblP(10) = 4.6
dblP(11) = 1.45
dblP(12) = 1.49
dblP(13) = 1.49
dblP(14) = 1.5
End Sub
数值 平均值 真误差 真误差的平方 中误差 ABS(真误差/中误差)
3.04 3.2591 -0.2191 0.04800481 0.47776 0.458598459
2.98 -0.2791 0.07789681 0.47776 0.584184528
3.07 -0.1891 0.03575881 0.47776 0.395805425
3.22 -0.0391 0.00152881 0.47776 0.081840255
3.44 0.1809 0.03272481 0.47776 0.378641996
3.14 -0.1191 0.01418481 0.47776 0.249288346
3.06 -0.1991 0.03964081 0.47776 0.416736437
4.03 0.7709 0.59428681 0.47776 1.613571668
3.06 -0.1991 0.03964081 0.47776 0.416736437
3.14 -0.1191 0.01418481 0.47776 0.249288346
2.96 -0.2991 0.08946081 0.47776 0.626046551
4.03 0.7709 0.59428681 0.47776 1.613571668
3.09 -0.1691 0.02859481 0.47776 0.353943403
3.06 -0.1991 0.03964081 0.47776 0.416736437
2.98 -0.2791 0.07789681 0.47776 0.584184528
3.05 -0.2091 0.04372281 0.47776 0.437667448
3.04 -0.2191 0.04800481 0.47776 0.458598459
3.03 -0.2291 0.05248681 0.47776 0.479529471
4.94 1.6809 2.82542481 0.47776 3.518293704
3.04 -0.2191 0.04800481 0.47776 0.458598459
3.04 -0.2191 0.04800481 0.47776 0.458598459
3.04 3.2591 -0.2191 0.04800481 0.47776 0.458598459
2.98 -0.2791 0.07789681 0.47776 0.584184528
3.07 -0.1891 0.03575881 0.47776 0.395805425
3.22 -0.0391 0.00152881 0.47776 0.081840255
3.44 0.1809 0.03272481 0.47776 0.378641996
3.14 -0.1191 0.01418481 0.47776 0.249288346
3.06 -0.1991 0.03964081 0.47776 0.416736437
4.03 0.7709 0.59428681 0.47776 1.613571668
3.06 -0.1991 0.03964081 0.47776 0.416736437
3.14 -0.1191 0.01418481 0.47776 0.249288346
2.96 -0.2991 0.08946081 0.47776 0.626046551
4.03 0.7709 0.59428681 0.47776 1.613571668
3.09 -0.1691 0.02859481 0.47776 0.353943403
3.06 -0.1991 0.03964081 0.47776 0.416736437
2.98 -0.2791 0.07789681 0.47776 0.584184528
3.05 -0.2091 0.04372281 0.47776 0.437667448
3.04 -0.2191 0.04800481 0.47776 0.458598459
3.03 -0.2291 0.05248681 0.47776 0.479529471
4.94 1.6809 2.82542481 0.47776 3.518293704
3.04 -0.2191 0.04800481 0.47776 0.458598459
3.04 -0.2191 0.04800481 0.47776 0.458598459