問題タブ [quadratic-programming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 係数に制約がある線形回帰
次のようなモデルに対して、線形回帰を実行しようとしています。
そう、Y ~ X1 + X2
次の応答ベクトルがあるとします。
そして、次の予測子の行列:
係数に次の制約を使用したい:
したがって、b に対する制約はありません。
glmc パッケージを使用して制約を適用できることは知っていますが、制約に適用する方法を特定できませんでした。また、たとえば、すべての係数の合計が 0 になるように contr.sum を使用できることも知っていますが、それは私がやりたいことではありません。solve.QP() はmeq=0
、すべての係数が >=0 になるように設定を使用できる別の可能性のようです (ここでも、私の目標ではありません)。
注: 解は、応答ベクトル Y の NA 値を処理できる必要があります。たとえば、次のようになります。
c# - 2次元配列の金額の分布を最適化
2次元配列の各行と列の合計が与えられ、配列の各セルに金額を分配する必要があるという問題があります。ロックされて配布に使用できないセルがいくつかあります。また、行/列の合計量は小数値にすることができます。
たとえば、4*3 の 2 次元配列があります。
ここで、各行の合計は 10、20、30、35 で、各列の合計は 35、30、30 です。
E、I、および K がロックされているため、方程式は次のようになります。
Python scipy と IBM CPLEX(C#) を使用して、線形 f(x) = Min(x) および二次ソルバー f(x) = Min(x^2) を試しました。
線形ソルバーは分布を最適化しません。
二次ソルバーはそのアプローチに役立ちますが、サイズが 10*10 を超える配列では機能しません。ソルバーは実行不可能な状態で失敗しました。
合計には小数値があり、行列のサイズは最大 100*10000 になる可能性があるため、この問題を解決するにはどのようなアプローチ/ライブラリを使用する必要がありますか?