R的标准偏差似乎正在回答错误的答案 - 我做错了吗?

时间:2011-06-23 16:52:50

标签: r statistics standard-deviation

计算标准开发的简单示例:

d <- c(2,4,4,4,5,5,7,9)
sd(d)

产量

[1] 2.13809

但是当done by hand时,答案是2.我在这里缺少什么?

4 个答案:

答案 0 :(得分:35)

试试这个

R> sd(c(2,4,4,4,5,5,7,9)) * sqrt(7/8)
[1] 2
R> 

并查看Wikipedia article的其余部分,以了解有关标准偏差估算的讨论。使用“手动”使用的公式导致偏差估计,因此校正sqrt((N-1)/ N)。这是一个关键的引用:

  

术语标准偏差   样品用于未校正的   术语中使用估计量(使用N)   样本标准差用于   校正后的估算器(使用N - 1)。   分母N - 1是数字   向量中的自由度   残差,。

答案 1 :(得分:9)

看起来R假设分母中的(n-1),而不是n。

答案 2 :(得分:4)

当我想要种群方差或标准差(n为分母)时,我定义了这两个向量化函数。

  pop.var <- function(x) var(x) * (length(x)-1) / length(x)

  pop.sd <- function(x) sqrt(pop.var(x))

BTW,可汗学院对人口样本标准差here进行了很好的讨论。

答案 3 :(得分:-1)

请注意运行命令

    <form>

  <p> Scores: </p>

    <select name ="scores:">
      <option value= " 9 " name= " 9 "> 9 </option>
      <option value= " 8 " name= " 8 "> 8 </option>
      <option value= " 7 " name= " 7 "> 7 </option>
      <option value= " 6 " name= " 6 "> 6 </option>
      <option value= " 5 " name= " 5 "> 5 </option>
      <option value= " 4 " name= " 4 "> 4 </option>
      <option value= " 3 " name= " 3 "> 3 </option>
      <option value= " 2 " name= " 2 "> 2 </option>
      <option value= " 1 " name= " 1 "> 1 </option>

    </select>

<p> Years: </p>


  <select id ="year">
  </select>

  <p> Languages: </p>

  <select name="language">
    <option value ="Aborginial", name = "Aborginial"> Aborginial </option>
    <option value="Arabic"> Arabic </option>
    <option value="Aramaic">Aramaic</option>
    <option value="Bosnian">Bosnian</option>
    <option value="Cantonese">Cantonese</option>
    <option value="Chinese">Chinese</option>
    <option value="Czech">Czech</option>
      </select>

  <button type="button">Submit data</button>
  </form>
R Studio中的

显示该功能的帮助页面。在详细信息部分中说明了

  

与var类似,它使用分母n - 1。