สมมติว่าเรามีชุด A1 และ A2 ที่แตกต่างกันสองชุดที่มีขนาด b และ a ตามลำดับ เราต้องหาค่าเฉลี่ยและความแปรปรวนของอนุกรมวิธานที่รวมกัน
ดังนั้น หากอินพุตเป็น A1 =[24, 46, 35, 79, 13, 77, 35] และ A2 =[66, 68, 35, 24, 46] ผลลัพธ์จะเป็น Mean =[44.1429, 47.8 ], sd =[548.694, 294.56], ค่าเฉลี่ยรวม =45.6667, d1_square =2.322, d2_square =4.5511, รวม_var =446.056
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
กำหนดฟังก์ชัน mean() นี่จะใช้เวลา arr
-
ส่งกลับค่าเฉลี่ยขององค์ประกอบ arr
-
-
กำหนดฟังก์ชัน sd() นี่จะใช้เวลา arr, n
-
ผลรวม :=0;
-
สำหรับผมอยู่ในช่วง 0 ถึง n ทำ
-
ผลรวม :=ผลรวม +((arr[i] - ค่าเฉลี่ย (arr)) * (arr[i] - ค่าเฉลี่ย (arr)))
-
-
sdd :=ผลรวม / n
-
ส่งคืน sdd
-
จากวิธีหลัก ให้ทำดังนี้ −
-
n :=ขนาด A1, m :=ขนาด A2
-
หมายถึง1 :=ค่าเฉลี่ย(A1), ค่าเฉลี่ย2 :=ค่าเฉลี่ย(A2)
-
แสดงค่าเฉลี่ย1และค่าเฉลี่ย2
-
sd1 :=sd(A1, n), sd2 :=sd(A2, ม.)
-
แสดง sd1 และ sd2
-
รวมMean :=(n * mean1 + m * mean2) /(n + m)
-
แสดงรวมค่าเฉลี่ย
-
d1_square :=(mean1 - รวมค่าเฉลี่ย) *(mean1 - รวมค่าเฉลี่ย)
-
d2_square :=(mean2 - รวมค่าเฉลี่ย) *(mean2 - รวมค่าเฉลี่ย)
-
แสดง d1_square, d2_square
-
comb_var :=(n *(sd1 + d1_square) + m *(sd2 + d2_square)) /(n + m)
-
แสดง comb_var
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
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) อินพุต
[24, 46, 35, 79, 13, 77, 35 ],[66, 68, 35, 24, 46 ]
ผลลัพธ์
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