我如何分析 y 是否随着 x 的增加而显着减少或保持不变?
How do I analyse if y is significantly decreasing or remain constant with increasing x?
有人可以建议如何使用 R 分析 y 是否随着 x 的增加而显着减少吗?
y=c(111.8784966,91.79114434,90.02533714,86.30424896,82.35746173,84.31890131)
SEy=c(27.43598893,13.38661564,15.35877537,12.9718339,9.933174075,7.232236469)
x=c(0.04,0.08,0.1,0.12,0.15,0.2)
df=data.frame(y,SEy,x)
SEy 是 y 的标准误差
我做的回归是
lm1 <- lm(y~log(x))
剧情如下图。条形表示 y 的标准误差。
我可以尝试找出每个 y 的 95% 置信区间 (CI) 并检查 y 的第一个 CI 是否与 y 的第二个 CI 重叠吗?如果重叠,则表示 P>0.05?
原始数据如下:
y1=c(139.3144855,105.17776,105.3841125,99.27608286,92.29063581,91.55113778)
y2=c(84.4425076,78.4045287,74.6665618,73.3324151,72.4242877,77.0866648)
y1 和 y2 分别是样本 1 和样本 2 的测量值。
按照下面@user2974951 给出的解决方案,我编辑了(2022 年 2 月 13 日)post 以包含情节:
library(ggeffects)
mixed.lme <- lme(y~log(x),random=~1|b,data=df)
pred.mm <- ggpredict(mixed.lme, terms = c("x"))
(ggplot(pred.mm) +
geom_line(aes(x = x, y = predicted)) + # slope
geom_ribbon(aes(x = x, ymin = predicted - std.error, ymax = predicted + std.error),
fill = "lightgrey", alpha = 0.5) + # error band
geom_point(data = df, # adding the raw data (scaled values)
aes(x = x, y = y, shape = b)) +
labs(x = "x", y = "y",
title = "") +
theme_minimal()
)
鉴于您的新数据,我认为最好的做法是考虑这两个测量值 y1 和 y2 是分批进行的,因此应该这样处理,即来自同一批次,可能有一些内部变异。要对这种内部变化建模,您可以使用混合模型,将批次变量作为随机效应而不是固定效应。
df=data.frame(
"y"=c(y1,y2),
"x"=rep(x,2),
"b"=rep(c("A","B"),each=length(x))
)
library(nlme)
summary(lme(y~log(x),random=~1|b,data=df))
这导致
Linear mixed-effects model fit by REML
Data: df
AIC BIC logLik
85.95703 87.16737 -38.97851
Random effects:
Formula: ~1 | b
(Intercept) Residual
StdDev: 20.05997 8.319754
Fixed effects: y ~ log(x)
Value Std.Error DF t-value p-value
(Intercept) 49.85733 17.941340 9 2.778908 0.0214
log(x) -18.10234 4.703894 9 -3.848373 0.0039
(truncated)
斜率仍在 log(x) 中,告诉您它是负的并且大约等于 -18,p 值 <0.05。此外,如果您对此感兴趣,您可以检查批次(在整体中)有多少变化,在您的情况下,大约是 20.1+8.32 中的 20.1,所以大约是 71%。
有人可以建议如何使用 R 分析 y 是否随着 x 的增加而显着减少吗?
y=c(111.8784966,91.79114434,90.02533714,86.30424896,82.35746173,84.31890131)
SEy=c(27.43598893,13.38661564,15.35877537,12.9718339,9.933174075,7.232236469)
x=c(0.04,0.08,0.1,0.12,0.15,0.2)
df=data.frame(y,SEy,x)
SEy 是 y 的标准误差
我做的回归是
lm1 <- lm(y~log(x))
剧情如下图。条形表示 y 的标准误差。
我可以尝试找出每个 y 的 95% 置信区间 (CI) 并检查 y 的第一个 CI 是否与 y 的第二个 CI 重叠吗?如果重叠,则表示 P>0.05?
原始数据如下:
y1=c(139.3144855,105.17776,105.3841125,99.27608286,92.29063581,91.55113778)
y2=c(84.4425076,78.4045287,74.6665618,73.3324151,72.4242877,77.0866648)
y1 和 y2 分别是样本 1 和样本 2 的测量值。
按照下面@user2974951 给出的解决方案,我编辑了(2022 年 2 月 13 日)post 以包含情节:
library(ggeffects)
mixed.lme <- lme(y~log(x),random=~1|b,data=df)
pred.mm <- ggpredict(mixed.lme, terms = c("x"))
(ggplot(pred.mm) +
geom_line(aes(x = x, y = predicted)) + # slope
geom_ribbon(aes(x = x, ymin = predicted - std.error, ymax = predicted + std.error),
fill = "lightgrey", alpha = 0.5) + # error band
geom_point(data = df, # adding the raw data (scaled values)
aes(x = x, y = y, shape = b)) +
labs(x = "x", y = "y",
title = "") +
theme_minimal()
)
鉴于您的新数据,我认为最好的做法是考虑这两个测量值 y1 和 y2 是分批进行的,因此应该这样处理,即来自同一批次,可能有一些内部变异。要对这种内部变化建模,您可以使用混合模型,将批次变量作为随机效应而不是固定效应。
df=data.frame(
"y"=c(y1,y2),
"x"=rep(x,2),
"b"=rep(c("A","B"),each=length(x))
)
library(nlme)
summary(lme(y~log(x),random=~1|b,data=df))
这导致
Linear mixed-effects model fit by REML
Data: df
AIC BIC logLik
85.95703 87.16737 -38.97851
Random effects:
Formula: ~1 | b
(Intercept) Residual
StdDev: 20.05997 8.319754
Fixed effects: y ~ log(x)
Value Std.Error DF t-value p-value
(Intercept) 49.85733 17.941340 9 2.778908 0.0214
log(x) -18.10234 4.703894 9 -3.848373 0.0039
(truncated)
斜率仍在 log(x) 中,告诉您它是负的并且大约等于 -18,p 值 <0.05。此外,如果您对此感兴趣,您可以检查批次(在整体中)有多少变化,在您的情况下,大约是 20.1+8.32 中的 20.1,所以大约是 71%。