假设我有一个非正态分布的响应变量和一个解释变量。让我们首先创建这两个变量(用 R 编码):
set.seed(12)
resp = (rnorm(120)+20)^3.79
expl = rep(c(1,2,3,4),30)
我运行了一个线性模型,我意识到残差不是正态分布的。(我知道运行夏皮罗可能不足以证明残差不是正态分布的,但这不是我问题的重点)
m1=lm(resp~expl)
shapiro.test(residuals(m1))
0.01794
因此,我想转换我的解释变量(例如使用 Box-Cox 进行转换)。
m2=lm(resp^(1/3.79)~expl)
shapiro.test(residuals(m2))
0.4945
好的,现在我的残差是正态分布的,很好!我现在想对我的数据和模型进行图形表示。但是我不想以转换后的形式绘制我的解释变量,因为我会失去很多直观的含义。因此我这样做:
plot(x=expl,y=resp)
如果我现在想添加模型怎么办?我可以这样做
abline(m2) # m2 is the model with transformed variable
但当然这条线不适合所代表的数据。我可以这样做:
abline(m1) # m1 is the model with the original variable.
但这不是我为统计而运行的模型!如何重新转换预测的线以m2
使其适合数据?