2017-10-15 149 views
-7

我一直在寻找的步骤来计算R A人口的标准偏差,我发现这一点:R:如何计算poblational标准偏差和平均

sqrt((n-1)/n) * sd(x) # pop 
    ## [1] 0.8936971 

    sd(x) # sample 
    ## [1] 0.8981994 

的问题是,I'm完全丧失不知道如何推算公式我的数据:

YEAR 
2003 
2004 
2005 
2006 
2007 
2008 
2009 
2010 
2011 
2012 
2013 



GDP 
7696034.9 
8690254.3 
9424601.9 
10520792.8 
11399472.2 
12256863.6 
12072541.6 
13266857.9 
14527336.9 
15599270.7 
16078959.8 

你能帮我吗?

+0

为什么你认为你有你的数据有问题? –

+2

我不明白你的问题是什么意思?你已经添加了公式,并且你不能将它用于你的数据! – Alice

+0

我非常怀疑标准差的概念适用于你的情况,似乎你需要一个线性模型,比如'fit < - lm(GDP〜YEAR);情节(年份,GDP); abline(fit,col =“red”)'。 –

回答

2

这是你想要的吗?

y <- c(2003, 2004, 2005, 2006, 2007,2008,2009,2010, 2011,2012,2013) 

> n <- length(y) 
> sqrt((n-1)/n)*sd(y) 
[1] 3.162278 

> GDP <- c(7696034.9, 8690254.3, 9424601.9, 10520792.8, 11399472.2,12256863.6,12072541.6,13266857.9,14527336.9,15599270.7,16078959.8) 
> m <- length(GDP) 
> sqrt((m-1)/m)*sd(GDP) 
[1] 2633634 
3

您可以将数据存储在数据帧df

然后使用

sd(df$GDP) 
1

试试这个:

My_list <- list(YEAR, GDP) 
my_sd <- sapply(My_list, function (x) sd(x)) 
my_sd 
[1] 3.316625e+00 2.762179e+06 

,你也可以使用这个:

> My_sd_pop <- sapply(My_list, function (x) {sqrt((length(x)-1) /length(x)) * sd(x)}) 
> My_sd_pop 
[1] 3.162278e+00 2.633634e+06