# 定义 survival_signature 向量
survival_signature <- c(0, 0, 0, 0, 0, 0, 1/9, 3/9, 0, 0, 4/9, 6/9, 1, 1, 1, 1)
# 定义计算上限概率的函数
probability_upper <- function(n, m, s, l) {
combination <- 1 / choose(n + m, n)
combination1 <- choose(s + l, s)
combination2 <- choose(n - s + m - l - 1, n - s - 1)
probability_upper <- combination * combination1 * combination2
return(probability_upper)
}
# 计算 D_upper
result2 <- numeric(0)
vector2 <- numeric(0)
for (s in 0:2) { # 修正循环顺序
if (s == 2) {
vector2 <- c(0, 0, 0, 1)
} else {
for (l in 0:3) {
result2 <- c(result2, probability_upper(2, 3, s, l))
}
}
}
D_upper <- c(result2, vector2)
# 定义计算下限概率的函数
probability_lower <- function(n, m, s, l) {
combination <- 1 / choose(n + m, n)
combination1 <- choose(s - 1 + l, s - 1)
combination2 <- choose(n - s + m - l, n - s)
probability_lower <- combination * combination1 * combination2
return(probability_lower)
}
# 计算 D_lower
result1 <- numeric(0)
vector1 <- numeric(0)
for (s in 0:2) { # 修正循环顺序
if (s == 0) {
vector1 <- c(1, 0, 0, 0)
} else {
for (l in 0:3) {
result1 <- c(result1, probability_lower(2, 3, s, l))
}
}
}
D_lower <- c( vector1,result1)
# 打印 D_lower 和 D_upper
print(D_lower)
print(D_upper)
# 将 D_lower 和 D_upper 分组
Dlower0 <- D_lower[1:4]
Dlower1 <- D_lower[5:8]
Dlower2 <- D_lower[9:12]
Dupper0 <- D_upper[1:4]
Dupper1 <- D_upper[5:8]
Dupper2 <- D_upper[9:12]
# 定义 s_lower 函数
# 定义 s_lower 函数
s_lower <- function(Dlowerc , Dlowerd) {
result3 <- numeric(0) # 初始化result3
result4 <- numeric(0) # 初始化result4
for (a in 1:4) {
for (b in 1:4) {
result3 <- c(result3, Dlowerc[a] * Dlowerd[b])
}
}
for (k in 1:length(result3)) {
result4 <- c(result4, result3[k] * survival_signature[k])
}
return(sum(result4)) # 返回计算结果
}
# 定义 s_upper 函数
s_upper <- function(Duppere, Dupperf) {
result5 <- numeric(0) # 初始化result5
result6 <- numeric(0) # 初始化result6
for (c in 1:4) {
for (d in 1:4) {
result5 <- c(result5, Duppere[c] * Dupperf[d])
}
}
for (k in 1:length(result5)) {
result6 <- c(result6, result5[k] * survival_signature[k])
}
return(sum(result6)) # 返回计算结果
}
# 计算并打印结果
upper_results1 <- c(
s_upper(Dupper2, Dupper2),
s_upper(Dupper2, Dupper1),
s_upper(Dupper1, Dupper1),
s_upper(Dupper1, Dupper0),
s_upper(Dupper0, Dupper0)
)
lower_results1 <- c(
s_lower(Dlower2, Dlower2),
s_lower(Dlower2, Dlower1),
s_lower(Dlower1, Dlower1),
s_lower(Dlower1, Dlower0),
s_lower(Dlower0, Dlower0)
)
upper_results2 <- c(
s_upper(Dupper2, Dupper2),
s_upper(Dupper1, Dupper2),
s_upper(Dupper1, Dupper1),
s_upper(Dupper0, Dupper1),
s_upper(Dupper0, Dupper0)
)
lower_results2 <- c(
s_lower(Dlower2, Dlower2),
s_lower(Dlower1, Dlower2),
s_lower(Dlower1, Dlower1),
s_lower(Dlower0, Dlower1),
s_lower(Dlower0, Dlower0)
)
data2 <- data.frame(
Interval = c("(0,t21)", "(t21,t11)", "(t11,t12)", "(t22, t12)", "(t12,∞)"),
lower_results2,
upper_results2
)
data1 <- data.frame(
Interval = c("(0,t11)", "(t11,t21)", "(t21,t12)", "(t12, t22)", "(t22,∞)"),
lower_results1,
upper_results1
)
print(data1)
print(data2)
老师要让我循环输出所有的s_lower和s_upper。该怎么改呀。
survival_signature <- c(0, 0, 0, 0, 0, 0, 1/9, 3/9, 0, 0, 4/9, 6/9, 1, 1, 1, 1)
# 定义计算上限概率的函数
probability_upper <- function(n, m, s, l) {
combination <- 1 / choose(n + m, n)
combination1 <- choose(s + l, s)
combination2 <- choose(n - s + m - l - 1, n - s - 1)
probability_upper <- combination * combination1 * combination2
return(probability_upper)
}
# 计算 D_upper
result2 <- numeric(0)
vector2 <- numeric(0)
for (s in 0:2) { # 修正循环顺序
if (s == 2) {
vector2 <- c(0, 0, 0, 1)
} else {
for (l in 0:3) {
result2 <- c(result2, probability_upper(2, 3, s, l))
}
}
}
D_upper <- c(result2, vector2)
# 定义计算下限概率的函数
probability_lower <- function(n, m, s, l) {
combination <- 1 / choose(n + m, n)
combination1 <- choose(s - 1 + l, s - 1)
combination2 <- choose(n - s + m - l, n - s)
probability_lower <- combination * combination1 * combination2
return(probability_lower)
}
# 计算 D_lower
result1 <- numeric(0)
vector1 <- numeric(0)
for (s in 0:2) { # 修正循环顺序
if (s == 0) {
vector1 <- c(1, 0, 0, 0)
} else {
for (l in 0:3) {
result1 <- c(result1, probability_lower(2, 3, s, l))
}
}
}
D_lower <- c( vector1,result1)
# 打印 D_lower 和 D_upper
print(D_lower)
print(D_upper)
# 将 D_lower 和 D_upper 分组
Dlower0 <- D_lower[1:4]
Dlower1 <- D_lower[5:8]
Dlower2 <- D_lower[9:12]
Dupper0 <- D_upper[1:4]
Dupper1 <- D_upper[5:8]
Dupper2 <- D_upper[9:12]
# 定义 s_lower 函数
# 定义 s_lower 函数
s_lower <- function(Dlowerc , Dlowerd) {
result3 <- numeric(0) # 初始化result3
result4 <- numeric(0) # 初始化result4
for (a in 1:4) {
for (b in 1:4) {
result3 <- c(result3, Dlowerc[a] * Dlowerd[b])
}
}
for (k in 1:length(result3)) {
result4 <- c(result4, result3[k] * survival_signature[k])
}
return(sum(result4)) # 返回计算结果
}
# 定义 s_upper 函数
s_upper <- function(Duppere, Dupperf) {
result5 <- numeric(0) # 初始化result5
result6 <- numeric(0) # 初始化result6
for (c in 1:4) {
for (d in 1:4) {
result5 <- c(result5, Duppere[c] * Dupperf[d])
}
}
for (k in 1:length(result5)) {
result6 <- c(result6, result5[k] * survival_signature[k])
}
return(sum(result6)) # 返回计算结果
}
# 计算并打印结果
upper_results1 <- c(
s_upper(Dupper2, Dupper2),
s_upper(Dupper2, Dupper1),
s_upper(Dupper1, Dupper1),
s_upper(Dupper1, Dupper0),
s_upper(Dupper0, Dupper0)
)
lower_results1 <- c(
s_lower(Dlower2, Dlower2),
s_lower(Dlower2, Dlower1),
s_lower(Dlower1, Dlower1),
s_lower(Dlower1, Dlower0),
s_lower(Dlower0, Dlower0)
)
upper_results2 <- c(
s_upper(Dupper2, Dupper2),
s_upper(Dupper1, Dupper2),
s_upper(Dupper1, Dupper1),
s_upper(Dupper0, Dupper1),
s_upper(Dupper0, Dupper0)
)
lower_results2 <- c(
s_lower(Dlower2, Dlower2),
s_lower(Dlower1, Dlower2),
s_lower(Dlower1, Dlower1),
s_lower(Dlower0, Dlower1),
s_lower(Dlower0, Dlower0)
)
data2 <- data.frame(
Interval = c("(0,t21)", "(t21,t11)", "(t11,t12)", "(t22, t12)", "(t12,∞)"),
lower_results2,
upper_results2
)
data1 <- data.frame(
Interval = c("(0,t11)", "(t11,t21)", "(t21,t12)", "(t12, t22)", "(t22,∞)"),
lower_results1,
upper_results1
)
print(data1)
print(data2)
老师要让我循环输出所有的s_lower和s_upper。该怎么改呀。