¿Cómo utilizar el script para calcular el valor más adecuado?¡Hola, todos!
Como se muestra en la figura: Hay varios conjuntos de datos y sus datos son relativamente cercanos.
Cada grupo de datos tiene dos valores: grande y pequeño.
Cómo encontrar el valor óptimo de la línea horizontal roja en la figura a través del script:
Se requiere que esta línea horizontal esté cerca de uno de los puntos finales que pueden tener la mayor cantidad de datos en este grupo, y se requiere que esta línea sea horizontal.

Traté de usar el método de mínimos cuadrados para hacer una regresión, pero todavía no es lo ideal.
¡Gracias expertos!
ScriptingVentanas回复 : 如何 用 脚本 计算 出 最 符合 的 值?dt = Current Data Table();
m = Mean( dt[0, 2 :: 3] );
Column( "S" ) << Formula( If( Abs( H - m ) > Abs( L - m ), L, H ) );
dt << run formulas;
Column( "S" ) << deleteFormula;
ar = dt << GetAsMatrix( {4, 1} );
{Beta, VarBeta} = Least Squares Solve( ar[0, 1], ar[0, 2] );
x = round(Beta[1],0);¡Gracias Expertos!
回复 : 如何 用 脚本 计算 出 最 符合 的 值?Hola lala
我 的 理解 是 你 需要 一个 值 , 这个 值得 取值 范围 为 所有 数据 的 最小值 到 最大值 这个 范围。 这个 值 需要 和 11 个 组 的 两个 端点 进行 条件 判断。
我 的 思路 是 既然 是 一根 水平线 , 因此 f (x) = b。 换个 方法 就是 取 一个 值 b , 让 b 距离 11 个 组 最近 的 那个 点 的 值 的 求和 最小。
即 , 假设 结果 为 b。 那么 整体 的 函数 就是 求 , Y = min (abs (y1max-b), (y1min-b)) + min (abs (y2max-b), (y2min-b)) + .. .min (abs (y11max-b), (y11min-b))。 对 Y 求 最小。
你 可以 尝试 整理 这个 函数 然后 求 Y 最小值 时 b 的 值 , 然后 带入 函数 f (x) = b。 应该 就 可以 了。
Re: ¿Cómo utilizar el script para calcular el valor más adecuado?¡Muchas gracias!
Si hay más de cien grupos de tales datos, ¿debería editar la fórmula de esta manera?
Todavía no he pensado en una buena forma.
¡Gracias de nuevo!
回复 : 如何 用 脚本 计算 出 最 符合 的 值?x = Round( Beta[1] + 5 * Beta[2], 0 );