問題轉換SAS代碼類似於一個在下面的帖子:要使用PROC nlmixed至R代碼中使用NLME
「 troubles converting proc nlmixed (SAS) to nlme (R) 」
問題轉換SAS代碼類似於一個在下面的帖子:要使用PROC nlmixed至R代碼中使用NLME
「 troubles converting proc nlmixed (SAS) to nlme (R) 」
這看起來並不像一個混合模型根本 - 什麼是隨機效應?它看起來像一個有點不尋常的廣義線性模型:我認爲這會做到這一點。
glm((1-p)~d1+d2+d3+d4-1,family=binomial(link="log"))
(你必須自己翻轉參數的符號)。
Tiwari et al. 2006適合這種類型的模型。
[R相當於:
dd <- read.table("sas_vals.txt",header=TRUE,na.string=".")
g1 <- glm((1-Y)~d1+d2+d3+d4-1,family=binomial(link="log"),data=dd,
start=rep(-0.1,4))
這是一個有點困難,可能因微小的數據集的一部分(我認爲這纔是真正的數據的一個子集 - 擬合4個參數21點二進制意見將是一個非常糟糕的主意......)
或者:
library("bbmle")
g2 <- mle2(Y~dbinom(prob=1-exp(-p),size=1),
parameters=list(p~d1+d2+d3+d4-1),
start=list(p=0.1),
data=dd)
對數似然表明mle2
配合較好,並重新安裝glm
符合那些起始值更好的作品:
g3 <- update(g1,start=-coef(g2))
g4 <- mle2(Y~dbinom(prob=1-(exp(-p)^exp(b*Treat)),size=1),
parameters=list(p~d1+d2+d3+d4-1),
start=list(p=0.1,b=0),
data=dd)
summary(g4)
## Estimate Std. Error z value Pr(z)
## p.d1 0.106163 0.088805 1.1955 0.2319
## p.d2 0.241029 0.178263 1.3521 0.1763
## p.d3 0.105970 0.113455 0.9340 0.3503
## p.d4 0.179232 0.189951 0.9436 0.3454
## b 0.559624 0.740500 0.7557 0.4498
這似乎與SAS結果相當吻合。
這很難 - 我認爲你不會輕易找到允許廣義非線性混合模型的R包。您可能需要轉到AD Model Builder等系統。你可以問一個單獨的問題,或者詢問'r-sig-mixed-models @ r-project.org' ... – 2014-11-05 12:03:01
您嘗試過哪些R代碼? – Thomas 2014-10-31 08:53:51
有用的編輯方式是在SAS中創建一個樣本數據集,運行分析(不超過20條記錄,說),顯示結果,然後我們就知道我們要拍攝的目標是什麼(特別是如果你給我們也是樣本數據集)。根據我的經驗,與R許可證相比,此處很少有ppl的SAS許可證... – Spacedman 2014-10-31 13:28:04