[英]Is there an algorithm to average using different constraints on data?
月 | 產品 | 產品 | 產品 | 當前的 |
---|---|---|---|---|
1 | 是 | 一種 | 17 | |
2 | 是 | 一種 | 22 | |
3 | 是 | 一種 | 21 | |
4 | 是 | 秒 | 問 | 44 |
5 | 是 | 秒 | 問 | 32 |
6 | 是 | 秒 | 問 | 23 |
7 | 是 | 秒 | 乙 | 56 |
8 | 是 | 秒 | 乙 | 73 |
9 | 是 | 秒 | 乙 | 12 |
10 | 是 | C | 26 | |
11 | 是 | C | 45 | |
12 | 是 | C | 37 |
如上表所示,我有一些數據,其中的元素構成了不同產品的一部分。 例如,上表中的第 4 個元素(突出顯示的行)即44
是乘積Q
、 S
和Y
。 每個產品的平均值如下:
average of Product A=(17+22+21)/3=20
average of Product Q=(44+32+23)/3=33
average of Product S=(44+32+23+56+73+12)/6=40
average of Product Y=(17+22+21+44+32+23+56+73+12+26+45+37)/12=34
現在我想操縱數據,使新的平均值是:
Average of product A= 25
Average of product Q = 35
Average of Product S= 32
Average of product Y= 39
應保持產品內的月份形狀。
所以結果應該是(示例計算):
new Month 1= (new average - current average) +current month 1 value
new Month 1= (25 - 20) + 17 = 22
new Month 2= (new average - current average) +current month 2 value
new month 2 = (25 - 20 ) + 22 = 27
new Month 3= (new average - current average) +current month 3 value
new months 3 =(25-20)+ 21= 26
月形差示例
月 | 第 1 個月 | 第 2 個月 | 第 3 個月 |
---|---|---|---|
當前的 | 17 | 22 | 21 |
當前月差 | 22-17= 5 | 21-22= -1 | |
新的 | 22 | 27 | 26 |
新月差 | 27-22= 5 | 26-27= -1 |
可以看到當前數據和新數據的第month 2 - month1
是5
而當前數據和新數據的5
month 3- month 2
是-1
。 因此,產品A
月度形狀保持不變。
月 | 產品 | 產品 | 產品 | 新的 |
---|---|---|---|---|
1 | 是 | 一種 | 22 | |
2 | 是 | 一種 | 27 | |
3 | 是 | 一種 | 26 | |
4 | 是 | 秒 | 問 | 46 |
5 | 是 | 秒 | 問 | 34 |
6 | 是 | 秒 | 問 | 25 |
7 | 是 | 秒 | 乙 | 38 |
8 | 是 | 秒 | 乙 | 55 |
9 | 是 | 秒 | 乙 | -6 |
10 | 是 | C | 57 | |
11 | 是 | C | 76 | |
12 | 是 | C | 68 |
目前我有一個 VBA 代碼,它在每個元素上循環多次以計算當前平均值和新平均值之間的差異並將這種差異應用於元素。 我可以使用任何矩陣算法來進行相同的計算而不是使用迭代循環嗎? 算法代碼將在 Matlab、C++ 或 Python 或 VBA 中實現。 目前我一直在探索 MATLAB 函數lsqlin
但無法讓它做我想做的事。
能否請你幫忙?
步驟 1:第 1-4 行 | 步驟 2:第 5-8 行
定義:
價值與關系 | “當前”案例 | “新”案 |
---|---|---|
a = sum(mth1,mth2,mth3) | 60 | ? |
b = sum(mth4,mth5,mth6) | 99 | ? |
c = sum(mth7,mth8,mth9) | 141 | ? |
d = sum(mth10,mth11,mth12) | 108 | ? |
avg_A = a/3 | 20 | 25 |
avg_Q = b/3 | 33 | 35 |
avg_S = (b+c)/6 | 40 | 32 |
avg_Y = (a+b+c+d)/12 | 34 | 39 |
在“當前”情況下:上面的所有變量都有定義的值。
在“新”情況下(步驟 3):
avg_A = a/3 = 25 >> a = 25*3 = 75
avg_Q = b/3 = 35 >> b = 35*3 = 105
avg_S = (b+c)/6 = ((105)+c)/6 = 32 >> c = 32*6-105 = 87
avg_Y = (a+b+c+d)/12 = ((75)+(105)+(87)+d)/12 = 39 >> d = 201
將 mth1-12 填入任何可以產生上述 a,b,c,d 值的值。
完畢。
p/s:由於 OP 僅共享 1 個新“案例”,因此步驟 2 的詳細信息可能會有所不同。 然而,至少對於這個“形狀”,這是有效的。
我之前的評論實際上指向一個陳述“因為(觀察到的關系不是真正的線性,矩陣不能建立在原始表上”。然而,如果你能弄清楚如何解決/將 Step2 關系放在矩陣形式中, step3 應該更容易/自動化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.