- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
首先为了查看 rpy2 是否正常工作,我运行了一个简单的模型 (stats.lm):
import pandas as pd
from rpy2 import robjects as ro
from rpy2.robjects import pandas2ri
pandas2ri.activate()
from rpy2.robjects.packages import importr
stats = importr('stats')
R = ro.r
df = pd.DataFrame(data={'subject':['1','2','3','4','5','1','2','3','4','5'],'group':['1','1','1','2','2','1','1','1','2','2'],'session':['1','1','1','1','1','2','2','2','2','2'],'covar':['1', '2', '0', '2', '1', '1', '2', '0', '2', '1'],'result':[-6.77,6.11,5.67,-7.679,-0.0930,0.948,2.99,6.93,6.30,9.98]})
rdf=pandas2ri.py2ri(df)
result=stats.lm('result ~ group * session + covar',data=rdf)
print(R.summary(result).rx2('coefficients'))
工作正常:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.323667 4.458438 1.1940654 0.2984217
group2 -3.729167 5.227982 -0.7133090 0.5150618
session2 1.952667 4.458438 0.4379710 0.6840198
covar1 -5.937500 5.107783 -1.1624418 0.3096835
covar2 -5.023500 5.107783 -0.9834992 0.3810438
group2:session2 10.073333 7.049410 1.4289612 0.2262206
我还检查了我的混合效果模型在 R 中是否正常工作:
df <- read.table(header=T, con <- textConnection('
covar group result session subject
1 1 -6.770 1 1
2 1 6.110 1 2
0 1 5.670 1 3
2 2 -7.679 1 4
1 2 -0.093 1 5
1 1 0.948 2 1
2 1 2.990 2 2
0 1 6.930 2 3
2 2 6.300 2 4
1 2 9.980 2 5'))
close(con)
mixed <- aov(result ~ group*session + covar + Error(as.factor(subject)/session),data=df)
summary(mixed)
这似乎也有效:
Error: as.factor(subject)
Df Sum Sq Mean Sq F value Pr(>F)
group 1 0.65 0.65 0.012 0.924
covar 1 16.68 16.68 0.301 0.638
Residuals 2 110.76 55.38
Error: as.factor(subject):session
Df Sum Sq Mean Sq F value Pr(>F)
session 1 89.46 89.46 8.002 0.0663 .
group:session 1 60.88 60.88 5.446 0.1018
Residuals 3 33.54 11.18
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
问:为什么混合效果模型在这里不起作用?
result2=stats.aov('result ~ group*session + covar + Error(as.factor(subject)/session)',data=rdf)
print(R.summary(result2).rx2('coefficients'))
这是错误消息:
//anaconda/lib/python2.7/site-packages/rpy2/rinterface/__init__.py:185: RRuntimeWarning: Error: $ operator is invalid for atomic vectors
warnings.warn(x, RRuntimeWarning)
---------------------------------------------------------------------------
RRuntimeError Traceback (most recent call last)
<ipython-input-2-aab76c72fbf3> in <module>()
----> 1 result2=stats.aov('result ~ group*session + covar + Error(as.factor(subject)/session)',data=rdf)
2 print(R.summary(result2).rx2('coefficients'))
//anaconda/lib/python2.7/site-packages/rpy2/robjects/functions.pyc in __call__(self, *args, **kwargs)
176 v = kwargs.pop(k)
177 kwargs[r_k] = v
--> 178 return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
179
180 pattern_link = re.compile(r'\\link\{(.+?)\}')
//anaconda/lib/python2.7/site-packages/rpy2/robjects/functions.pyc in __call__(self, *args, **kwargs)
104 for k, v in kwargs.items():
105 new_kwargs[k] = conversion.py2ri(v)
--> 106 res = super(Function, self).__call__(*new_args, **new_kwargs)
107 res = conversion.ri2ro(res)
108 return res
RRuntimeError: Error: $ operator is invalid for atomic vectors
我使用以下帖子作为指导:
rpy2 - Minimal example of rpy2 regression using pandas data frame
最佳答案
[投票只是因为你有一个很好的小而独立的例子。]
R 相当于您对 rpy2 所做的操作如下(并返回相同的错误)
> mixed <- aov("result ~ group*session + covar + Error(as.factor(subject)/session)",data=df)
Error: $ operator is invalid for atomic vectors
公式对象与字符串不同。
> class(y ~ x)
[1] "formula"
> class("y ~ x")
[1] "character"
rpy2 有一个构造函数可以从 Python 字符串构建 R 公式:
from rpy2.robjects import Formula
fml = Formula("y ~ x")
将其传递给 aov()
而不是字符串。
关于python - 使用 rpy2 从 Python 运行 R 的 aov() 混合效果模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38876274/
我想知道 aov() 中的残差是如何计算的。我已经看了几个小时,但无法弄清楚。 我使用方差分析进行重复测量。 Data <- data.frame(subject = factor(rep(1:10,
我做了一个 aov模型,我只想提取每个系数的标准误差。 model <- aov(Molecule ~ Comorbidity + Age + BMI + Sex, data = mydata) 我
我开始使用 Maya 和 Python,这是我遇到的第一个问题: 我无法访问我的着色组 (Arnold) 新创建的 aiCustomAOV。打印给出的着色组 AOV 数量为零(请参见代码的最后一行)。
我在 R/aov()(R = random, X = dependent, W? = within, B? = between): # Pure within: X ~ Error(R/W1*
我已经引用了很多在线文献,但它增加了我的困惑。大部分讨论都过于技术性,涉及术语不平衡设计和 I、II 或 III 因子方差分析以及所有内容。 我只知道aov()用途 lm()在内部,对于带有因子的数据
我正在尝试编写一个函数来自动进行方差分析,其中一部分涉及进行一些进一步的计算。我一直在使用的方法不是很健壮,如果变量名称更改,则它停止工作。 对于这个虚拟数据 > dput(assayvar,"")
据我所知,当应用于具有一个解释变量的数据时,t 检验应该提供与方差分析相同的结果(相同的 p 值)。为了测试这一点,我运行了以下命令来比较结果: df F) x 1 0.3068
我希望提取 R 中方差分析生成的 p 值。 这是我正在运行的内容: test F) asq[, 187] 1 3.02 3.01951 12.333 0.0004599 *** R
我有一个混合模型,数据如下所示: > head(pce.ddply) subject Condition errorType errors 1 j202 G
我有一个混合模型,数据如下所示: > head(pce.ddply) subject Condition errorType errors 1 j202 G
请问$coefficients的区别和 $effects在 aov输出。 这里f1因素与相互作用 f1 * f2意义重大。我想解释该因素对响应的影响,我认为 $effects是我需要的。 让我们考虑以
如何使用预先安装的数据隔离摘要(aov())中的重要性列warpbreaks举个例子... > a a Df Sum Sq Mean Sq F value Pr(>F)
这个问题是关于语法和语义的,因此请在交叉验证上找到一个(尚未回答的)重复:https://stats.stackexchange.com/questions/113324/repeated-measu
我想将 Tukey.HSD 事后测试的结果添加到 ggplot2 箱线图中。 This SO answer包含我想要的手动示例(即,绘图上的字母是手动添加的;共享字母的组是无法区分的,p>无论如何)。
相关赏金:250 reputation points. 我有一个关于 summary.lm() 输出的问题。 首先,这是我的数据集的可重现代码: Cond_Per_Row_statsF) Residu
首先为了查看 rpy2 是否正常工作,我运行了一个简单的模型 (stats.lm): import pandas as pd from rpy2 import robjects as ro from
aov(depvar~timevar+Error(id))有什么区别和 aov(depvar~timevar+Error(id/timevar))配方规范?这两种变体产生的结果略有不同。 曾经在这里问
我是一名优秀的程序员,十分优秀!