請這可怎麼R中什麼是SAS-parameterestimates在R上的等價
proc glm data=DataTX;
class DAG;
by HID;
model Bwt = DAG/ss3 solution;
ods output parameterestimates =TX_BW_corrFact;
運行寫的;
請這可怎麼R中什麼是SAS-parameterestimates在R上的等價
proc glm data=DataTX;
class DAG;
by HID;
model Bwt = DAG/ss3 solution;
ods output parameterestimates =TX_BW_corrFact;
運行寫的;
對於R中的大多數用途,相當於proc glm
是lm
,它符合線性模型。看起來您需要模型的估計係數,可通過coef(mod)
獲得,其中mod
是lm
返回的對象。
最複雜的位是複製by
語句,該語句適用於by
變量(本例中爲HID
)的每個級別的單獨模型。嘗試這樣的事情。我假設你已經有了你的數據集導入R.
grps <- split(DataTX, DataTX$HID)
mods <- lapply(grps, function(x) lm(Bwt ~ DAG, data=x))
sapply(mods, coef)
這種分裂DataTX
到基於HID
單獨組。對於每個組,然後適合型號lm(Bwt ~ DAG)
。最後一行然後提取每個模型的擬合係數。
這可以連接成一行,但將其作爲3個單獨的語句可能會使得更容易遵循。
請注意,由於兩個系統如何參數化模型的差異,係數將不會與SAS中的係數相同。特別是,SAS默認將類/因子變量的最後一級作爲參考,而R使用第一級。
嗨Hong Ooi,你的腳本只給我一個DAG的估計,但DAG有不同的級別,我怎麼能得到DAG每個級別的單獨估計。謝謝 – nolyugo
讓我猜測,DAG是數字?然後,lm將它視爲一個連續變量。用'DataTX $ DAG < - 因子(DataTX $ DAG)'將它變成一個因子(相當於SAS類var)並重新運行。 –
看一看lmList()從lme4或NLME包
library(lme4)
lmList(Reaction ~ Days | Subject, sleepstudy)
這比香港的解決方案短。
grps <- split(sleepstudy, sleepstudy$Subject)
mods <- lapply(grps, function(x) lm(Reaction ~ Days, data=x))
sapply(mods, coef)
它是做什麼用的?而且你應該在stats.stackexchange.com上提問這種問題。 – Spacedman
如果你告訴我們你的代碼做了什麼,並且還提供了示例數據和預期結果,那麼你將會有更多的運氣來獲得這個答案。 – Andrie