公式編輯器中的線性回歸你好,
我正在使用線性回歸研究臨床研究中隨時間變化的生物變量的斜率。
是否可以使用公式編輯器計算新列中的斜率?或者另一種生成這樣一列的方法?
我正在使用JMP 12。
謝謝您的幫助,
弗洛朗
Re:公式編輯器中的線性回歸這是用於計算長度 - 權重回歸斜率的列公式的兩個示例。使用“大類”示例表。
第一個基於所有觀察計算斜率並僅在第一行顯示它,而不是在整個列中重複相同的數字。
第二個遞增地計算斜率(這可能是你要求的),並且它允許看到斜率如何變化/穩定,因為包含更多數據並最終收斂整個樣本斜率(即第一個例子)。
要將此應用於您自己的數據,請在括號內復制整個公式 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)));
Re:公式編輯器中的線性回歸將斜率值放入與數據相同的表中的列中感覺是錯誤的。
但是,如果這確實是你的意思,並且你想避免使用JMP平台,那麼這是在JMP 12中實現它的一種方法:
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))));
執行“文件>新建>新腳本”,將上面的JSL剪切並粘貼到該窗口,然後“編輯>運行腳本”。
當然,在信任您計算的任何斜率之前繪製數據總是一個好主意,這就是'Analyze> Fit Y By X'的設計目標。