小编Sol*_*Sol的帖子

如何引导尊重主题内信息?

这是我第一次发帖到这个论坛,我想从一开始就说我不是一个熟练的程序员.如果问题或代码不清楚,请告诉我!

我试图通过引导来获得交互的95%置信区间(CI)(这是我的测试统计).我正在使用"boot"包.我的问题是,对于每个重新采样,我希望在受试者内进行随机化,以便来自不同受试者的观察结果不会混合.这是生成类似于我的数据帧的代码.如您所见,我有两个主体内因素("Num"和"Gram",我对两者之间的相互作用感兴趣):

Subject = rep(c("S1","S2","S3","S4"),4)
Num     = rep(c("singular","plural"),8) 
Gram    = rep(c("gram","gram","ungram","ungram"),4)
RT      = c(657,775,678,895,887,235,645,916,930,768,890,1016,590,978,450,920)
data    = data.frame(Subject,Num,Gram,RT) 
Run Code Online (Sandbox Code Playgroud)

这是我用来获得经验交互值的代码:

summary(lm(RT ~ Num*Gram, data=data))
Run Code Online (Sandbox Code Playgroud)

如您所见,我的两个因素之间的相互作用是-348.我想得到这个统计信息的bootstrap置信区间,我可以使用"boot"包生成:

# You need the following packages
install.packages("car") 
install.packages("MASS")
install.packages("boot")
library("car")
library("MASS")
library("boot")

#Function to create the statistic to be boostrapped
boot.huber <- function(data, indices) {
data <- data[indices, ] #select obs. in bootstrap sample
mod <- lm(RT ~ Num*Gram, data=data)
coefficients(mod)       #return coefficient vector
}

#Generate bootstrap estimate
data.boot <- boot(data, boot.huber, 1999)

#Get confidence interval
boot.ci(data.boot, …
Run Code Online (Sandbox Code Playgroud)

r resampling statistics-bootstrap

15
推荐指数
1
解决办法
1126
查看次数

增加lmer新版本的迭代次数?

我刚刚将lme4更新为版本1.0-4,当我运行lmer()时,我的混合效果模型(之前收敛)现在打印出此警告:

Warning message:
In (function (fn, par, lower = rep.int(-Inf, n), upper = rep.int(Inf,  :
  failure to converge in 10000 evaluations
Run Code Online (Sandbox Code Playgroud)

所以,我想尝试增加迭代次数,看看能不能解决这个问题.(我必须说我不知道​​导致警告的是什么,因为消息的第一部分听起来有些不透明).无论如何,我在文档中读到现在我应该使用lmerControl(),但我无法实现它.有人能给我一个具体的例子说明你是如何做到具体的吗?(帮助文件没有帮助).这是我的模型:

m <- lmer(RT ~ Factor1*Factor2 + (0+Factor1+Factor2|Subject) + (1|Subject)  + (1|Item) + (0+Factor1+Factor2|Item), data= data)
Run Code Online (Sandbox Code Playgroud)

非常感谢!

iteration r lme4 lmer

12
推荐指数
1
解决办法
2万
查看次数

如何在R中使用查找表而不创建重复项?

我想知道是否有人有一个很好的方法来实现这一目标.我有一个数据框,其中属于特定组(=条件)的每个观察(=项目)具有给定值:

# Create sample data.
item       = rep(1:3,2)                               #6 items
condition  = c(rep("control",3), rep("related",3))    #2 conditions
value      = c(10,11,12,20,21,22)                     #6 values          
df         = data.frame(item, condition, value)

  item condition value
1    1   control    10
2    2   control    11
3    3   control    12
4    1   related    20
5    2   related    21
6    3   related    22
Run Code Online (Sandbox Code Playgroud)

我还有一个查找表,其中包含每组的平均值:

# Create lookup table.
condition  = c("control", "related")
mean       = c(11,21)
table      = data.frame(condition, mean)

  condition mean
1   control   11
2   related   21
Run Code Online (Sandbox Code Playgroud)

我想修改我的原始数据帧,使得它包含一个新列label …

lookup r

6
推荐指数
1
解决办法
152
查看次数

如何使用ddply为特定列的数据进行子集化?

我想知道是否有一种简单的方法来实现我在下面描述的内容ddply.我的数据框描述了一个有两个条件的实验.参与者必须在选项AB之间进行选择,我们记录他们决定了多长时间,以及他们的回答是否准确.

ddply用来创造条件的平均值.该列nAccurate总结了每种情况下准确响应的数量.我也想知道他们花了多少时间来决定并在专栏中表达RT.但是,我想仅在参与者得到正确答案时才计算平均响应时间(即Accuracy==1).目前,以下代码只能计算所有回复的平均反应时间(准确且不准确).是否有一种简单的方法来修改它以获得仅在准确试验中计算的平均响应时间?

请参阅下面的示例代码,谢谢!

library(plyr)

# Create sample data frame. 
Condition = c(rep(1,6), rep(2,6))                               #two conditions
Response  = c("A","A","A","A","B","A","B","B","B","B","A","A")  #whether option "A" or "B" was selected
Accuracy  = rep(c(1,1,0),4)                                     #whether the response was accurate or not
RT        = c(110,133,121,122,145,166,178,433,300,340,250,674)  #response times
df        = data.frame(Condition,Response, Accuracy,RT)

head(df)

  Condition Response Accuracy  RT
1         1        A        1 110
2         1        A        1 133
3         1        A …
Run Code Online (Sandbox Code Playgroud)

r subset plyr

3
推荐指数
1
解决办法
1835
查看次数

标签 统计

r ×4

iteration ×1

lme4 ×1

lmer ×1

lookup ×1

plyr ×1

resampling ×1

statistics-bootstrap ×1

subset ×1