如何直观地传达二项式数据并使用 r 进行编码

问题描述 投票:0回答:1

在开始之前先声明一点;统计数据不是我的强项,所以其中一些可能看起来有点明显。

下表显示了我的数据示例。我正在研究状态(3 组)和治疗(3 组)如何影响命中可能性,并进行了统计测试,但我有点不确定如何在报告中直观地传达这些数据。我决定需要计算我观察到的每个状态和治疗组合的命中的重复比例,但是应该将其显示在分组条形图中还是可以绘制箱形图?我也努力让 r 代码正确才能做到这一点?

击中 状态 治疗
1 a
0 f b
1 j c
0 f b
0 f a
1 c

我也有点困惑用这个数字来报告什么;可以将平均值和标准误差用于此类数据,如果可以,如何使用 r 来计算它?

我使用 Excel 计算了观察到命中的重复比例,并据此创建了条形图,但是此方法不允许我创建箱形图或计算标准误差。

r boxplot standard-error
1个回答
0
投票

您是否想过使用图像地图来显示每个类别中的点击率。比如:

## Make up some data
df = data.frame(hit = ifelse(rnorm(100)>0,1,0), status = sample(x = c("m","f","j"), size = 100, replace = T), treatment = sample(x = c("a","b","c"), size = 100, replace = T))

## Calculate the hits and % hits
hits = aggregate(df$hit~df$status+df$treatment, FUN=function(x) c(Sum = sum(x), Length = length(x), PC = 100*sum(x)/length(x)))

hits = cbind(hits[,c(1,2)], hits$`df$hit`)
names(hits) = c("status","treatment","Sum","Length","PC")
hits

## Put into a matrix
status_levels <- unique(df$status)
treatment_levels <- unique(df$treatment)
hits_matrix <- matrix(0, nrow = length(status_levels), ncol = length(treatment_levels))
rownames(hits_matrix) = status_levels
colnames(hits_matrix) = treatment_levels
# Loop through the data frame and aggregate values into the matrix
for (i in 1:length(status_levels)) {
  for (j in 1:length(treatment_levels)) {
    hits_matrix[i, j] <- hits[hits$status == status_levels[i] & hits$treatment == treatment_levels[j], 5]
  }
}

## Visualize
image(hits_matrix, axes=FALSE)
axis(3, at=seq(0,1, length=length(status_levels)), labels=rownames(hits_matrix), lwd=0, pos=1.25)
axis(2, at=seq(0,1, length=length(treatment_levels)), labels=colnames(hits_matrix), lwd=0, pos=-0.25)
© www.soinside.com 2019 - 2024. All rights reserved.