我想测试两种给予动物的药物之间的协同作用,我测量了每组 15 只动物在不同时间点的肿瘤生长。
我使用 Bliss 独立协同的统计检验,它是从线性模型的原理和 t 分布的性质导出的修改后的 t 统计量。该统计数据本质上衡量的是综合效应与个体效应总和之间的差异,正如“其他地方很好地描述的”。 R 中的代码使用了带有对比矩阵的简单方法:
model.fit <- lm(lnTV ~ lnTV.baseline + Group, data = TV.data.day)
fit.combo <- gmodels::fit.contrast(model.fit, "Group", c(1, -1, -1, 1), conf.int = 0.9, df = TRUE)
有没有办法利用Python中的对比矩阵,例如使用带有
statsmodels.stats.contrast
的任何东西的
patsy.constrasts
?我无法翻译文档对比度概述或对比度编码系统中描述的方法。
创建一个将调用
fit.contrast
的 R 函数
# code.R
library("gmodels")
myfunction= function(dataset){
dataset$Group <- as.factor(dataset$Group)
model.fit <- lm(lnTV ~ baseline + Group, data = dataset)
fit.combo <- gmodels::fit.contrast(model.fit, "Group", c(1, -1, -1, 1), conf.int = 0.9, df = TRUE)
fit.combo
}
然后从python调用它:
# script.py
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
import pandas as pd
import numpy as np
r = robjects.r
r['source']('code.R') # preload code from the R file
# sample dataset, replace with any other data
data = pd.DataFrame({"lnTV": np.random.random(size=20),
"baseline": np.random.random(size=20),
"Group":np.random.randint(1,5, size=20)
})
with (robjects.default_converter + pandas2ri.converter).context():
# Loading the function we have defined in R.
myfunction_r = robjects.globalenv['myfunction']
dd = myfunction_r(data) # this will call your R funciton
# output derived from the R function
print(dd)