Giả sử chúng ta có hai chuỗi A1 và A2 khác nhau có kích thước lần lượt là b và a. Chúng ta phải tìm giá trị trung bình và phương sai của chuỗi kết hợp.
Vì vậy, nếu đầu vào là A1 =[24, 46, 35, 79, 13, 77, 35] và A2 =[66, 68, 35, 24, 46], thì đầu ra sẽ là Mean =[44,1429, 47,8 ], sd =[548.694, 294.56], trung bình kết hợp =45.6667, d1_square =2.322, d2_square =4.5511, merge_var =446.056
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
Xác định một hàm mean (). Điều này sẽ mất khoảng thời gian
-
trung bình trả về của các phần tử arr
-
-
Định nghĩa một hàm sd (). Điều này sẽ mất arr, n
-
tổng:=0;
-
đối với tôi trong phạm vi từ 0 đến n, hãy thực hiện
-
sum:=sum + ((arr [i] - mean (arr)) * (arr [i] - mean (arr)))
-
-
sdd:=sum / n
-
trả lại sdd
-
Từ phương thức chính, thực hiện như sau -
-
n:=kích thước của A1, m:=kích thước của A2
-
mean1:=mean (A1), mean2:=mean (A2)
-
hiển thị mean1 và mean2
-
sd1:=sd (A1, n), sd2:=sd (A2, m)
-
hiển thị sd1 và sd2
-
kết hợpMean:=(n * mean1 + m * mean2) / (n + m)
-
hiển thị kết hợpMean
-
d1_square:=(mean1 - kết hợpMean) * (trung bình1 - kết hợpMean)
-
d2_square:=(mean2 - kết hợpMean) * (trung bình2 - kết hợpMean)
-
hiển thị d1_square, d2_square
-
comb_var:=(n * (sd1 + d1_square) + m * (sd2 + d2_square)) / (n + m)
-
hiển thị comb_var
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def mean(arr): return sum(arr)/len(arr) def sd(arr, n): sum = 0; for i in range(n): sum = sum + ((arr[i] - mean(arr)) * (arr[i] - mean(arr))) sdd = sum / n return sdd def combinedVariance(A1, A2): n = len(A1) m = len(A2) mean1 = mean(A1) mean2 = mean(A2) print("mean_1: ", round(mean1, 2), " mean_2: ", round(mean2, 2)) sd1 = sd(A1, n) sd2 = sd(A2, m) print("sd_1: ", round(sd1, 2)," sd_2: ", round(sd2, 2)) combinedMean = (n * mean1 + m * mean2) / (n + m) print("Combined Mean: ", round(combinedMean, 2)) d1_square = ((mean1 - combinedMean) * (mean1 - combinedMean)) d2_square = ((mean2 - combinedMean) * (mean2 - combinedMean)) print("d1_square: ", round(d1_square, 2), " d2_square: ", round(d2_square, 2)) comb_var = (n * (sd1 + d1_square) + m * (sd2 + d2_square)) / (n + m) print("Combined Variance: ", round(comb_var, 2)) A1 = [24, 46, 35, 79, 13, 77, 35 ] A2 = [66, 68, 35, 24, 46 ] n = len(A1) m = len(A2) combinedVariance(A1, A2)
Đầu vào
[24, 46, 35, 79, 13, 77, 35 ],[66, 68, 35, 24, 46 ]
Đầu ra
mean_1: 44.14 mean_2: 47.8 sd_1: 548.69 sd_2: 294.56 Combined Mean: 45.67 d1_square: 2.32 d2_square: 4.55 Combined Variance: 446.06