我的问题是我的基本统计理解和在R中处理它的组合。
情况: 我在一般环境中看到了191种不同的类型(列“一般”)。只有一个子集能够进入特殊环境(“特殊”列)。 我怀疑两者之间存在线性关系 - 事物越频繁,它就会越频繁地进入特殊环境。
我的问题是:是否有些情况下他们比正常情况更频繁地前进? 我认为通过拟合模型可以找到“正常”。从这个意义上讲,我相信通过从模型中找出异常值来回答我的问题。这是对的吗?
数据和代码:
library(ggplot2)
library(sfsmisc)
n <- c(1:191)
general <- c(1, 7, 4, 11, 6, 11, 102, 19, 18, 1, 17, 4, 4, 2, 1, 1, 1, 1, 1, 3, 2, 20,
5, 3, 10, 4, 8, 15, 35, 3, 12, 4, 9, 1, 18, 3, 7, 53, 5, 1, 33, 6, 10, 39, 6, 16, 10,
1, 27, 3, 61, 100, 2, 5, 16, 30, 2, 3, 3, 2, 2, 3, 3, 60, 12, 2, 2, 13, 20, 14, 17,
16, 2, 1, 7, 3, 1, 10, 8, 4, 1, 5, 9, 8, 2, 1, 25, 2, 61, 22, 45, 4, 31, 4, 3, 47,
4, 1, 5, 2, 2, 30, 84, 136, 14, 1, 1, 15, 1, 1, 1, 124, 1, 3, 2, 1, 2, 40, 192, 3,
1, 22, 3, 1, 26, 1, 36, 132, 6, 4, 9, 201, 4, 43, 180, 98, 3, 1, 3, 11, 82, 83, 5,
10, 3, 2, 10, 23, 2, 25, 50, 4, 35, 2, 2, 3, 10, 18, 3, 2, 2, 13, 8, 5, 11, 28, 11,
3, 4, 11, 3, 74, 56, 5, 13, 5, 3, 3, 4, 4, 5, 6, 9, 12, 4, 47, 13, 131, 1, 3, 1)
special <- c(0, 1, 0, 2, 0, 2, 30, 2, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 2,
0, 1, 4, 0, 1, 1, 0, 7, 16, 1, 1, 0, 0, 0, 4, 0, 1, 18, 1, 0,
8, 3, 2, 10, 2, 3, 0, 0, 3, 1, 13, 23, 0, 0, 2, 9, 0, 0, 1, 0,
0, 0, 0, 15, 2, 1, 0, 4, 10, 7, 4, 0, 0, 1, 1, 1, 0, 3, 2, 1,
0, 1, 0, 1, 0, 0, 12, 0, 14, 4, 17, 0, 8, 0, 0, 8, 0, 0, 0, 0,
0, 14, 37, 52, 2, 1, 0, 3, 1, 0, 0, 43, 0, 0, 0, 0, 0, 15, 47,
1, 0, 4, 0, 0, 10, 0, 6, 27, 2, 0, 2, 57, 1, 8, 67, 36, 1, 0,
0, 2, 23, 18, 1, 0, 0, 1, 0, 6, 0, 4, 8, 0, 7, 0, 2, 0, 6, 0,
0, 0, 0, 4, 2, 0, 1, 4, 0, 0, 0, 2, 2, 30, 12, 2, 2, 2, 0, 0,
1, 1, 1, 1, 1, 0, 1, 16, 0, 49, 0, 0, 0)
我将它们组合成一个数据帧,绘制它们并添加线性模型。它看起来非常合适:scatterplot
d.combined <- data.frame(n=n, general=general, special=special)
ggplot(d.combined , aes(x=general, y=special)) +
geom_point() +
geom_smooth(method = "lm", se = F)
线性模型看起来很好,R平方很高,p值很低:
lm_comb <- lm(special~general, d.combined)
summary.lm(lm_comb)
#Residual standard error: 3.023 on 189 degrees of freedom
#Multiple R-squared: 0.9232, Adjusted R-squared: 0.9228
#F-statistic: 2273 on 1 and 189 DF, p-value: < 2.2e-16
与库克的距离一起,我可以看到有7个明确的异常值,这是完美的,甚至适合我以前的数据。
cooksdc <- cooks.distance(lm_comb)
plot(cooksdc, cex=0.5)
abline(h = 4*mean(cooksdc, na.rm=T), col="red")
text(x=1:length(cooksdc)+1, y=cooksdc,
labels=ifelse(cooksdc>4*mean(cooksdc, na.rm=T), names(cooksdc), ""), col="red")
我还使用了异常值包,并且(mis)使用了score()函数和t,z和chi平方测试。他们发现最后11个异常值,前两个测试12个异常值,概率均为95%。它们都有意义。
但是Tukey-Anscombe图显示了一个向右的锥形,这意味着它不是线性的。正确?
TA.plot(lm_comb) #requires sfsmisc package
问题: