数式エディタでの線形回帰こんにちは、
私は線形回帰を使用して、臨床研究で時間の経過とともに生物学的変数の勾配を研究しています。
数式エディタを使用して新しい列の傾きを計算することは可能ですか。あるいは、そのような列を生成するための別の方法はありますか?
JMP 12を使用しています。
ご協力ありがとうございました、
フロラン
式エディタでの線形回帰これは、長さ - 重み回帰の傾きを計算するための列式の2つの例です。「Big Class」の例の表が使用されています。
1つ目は、すべての観測値に基づいて勾配を計算し、列全体に同じ数を繰り返す代わりに1行目にのみ勾配を表示します。
2番目は勾配を増分的に計算し(これはあなたが求めているものかもしれません)、より多くのデータが含まれるにつれて勾配がどのように変化/安定化し、最終的に全標本勾配に収束するかを見ることができます
これを自分のデータに適用するには、式全体を丸括弧内にコピーしてください。 F = Expr() それを数式エディタとサブスティテューションに貼り付けます。重量そして高さあなたの変数のために。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Slope",
Formula(
If(Row() == 1,
Col Sum((:height - Col Mean(:height)) * (:weight - Col Mean(:weight))) /
Col Sum((:height - Col Mean(:height)) ^ 2),
.
)
)
);
F = Expr(
Eval(
Eval Expr(
Col Sum(
(:height - Col Mean(:height, Row() <= Expr(Row()))) * (:weight
-Col Mean(:weight, Row() <= Expr(Row()))),
Row() <= Expr(Row())
) / Col Sum(
(:height - Col Mean(:height, Row() <= Expr(Row()))) ^ 2,
Row() <= Expr(Row())
)
)
)
);
dt << New Column("Incremental Slope", Formula(Name Expr(F)));
式エディタでの線形回帰勾配値をデータと同じテーブルの列に入れるのは間違っていると感じます。
しかし、それが実際にあなたが意図したものであり、JMPプラットフォームの使用を避けたいのであれば、JMP 12でそれを行う1つの方法があります。
NamesDefaultToHere(1);
myLinearRegression =
Function({x, y}, {Default Local},
// Add the unit vector to the design matrix
x = J(NRow(x), 1, 1)||x;
// Get the parameters
betas = Transpose(Inv(x`*x)*x`*y);
);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Wait(3);
xVals = Column(dt, "height") << getValues;
yVals = Column(dt, "weight") << getValues;
betas = myLinearRegression(xVals, yVals);
slope = betas[2];
dt << NewColumn("Slope of weight vs. height", Numeric, Continuous, Values(Repeat(slope, NRow(dt))));
[File]> [New]> [New Script]を実行し、上のJSLをカットアンドペーストしてから[Edit]> [Run Script]をクリックします。
もちろん、計算した勾配を信頼する前にデータをプロットすることをお勧めします。これが 'Analyze> Fit Y By X'の目的です。