создание z-показателей - PullRequest
14 голосов
/ 27 мая 2011

У меня есть файл данных, состоящий из 57 переменных.Я хочу преобразовать около 12 из них в z-показатели из-за их неравномерного уровня измерения.Я посмотрел интернет-ресурсы и файлы помощи.Один интернет-ресурс сообщил, что мне нужен пакет Rbasic (не существует).Я использовал scale (), который, казалось, только центрировал переменные.Я попробовал V5-mean / st.dev.что принесло мне очень странные оценки.Может кто-нибудь, пожалуйста, дайте мне практическое занятие?

Ответы [ 3 ]

34 голосов
/ 27 мая 2011

scale() является правильным выбором здесь:

> x <- 1:10
> scale(x)
            [,1]
 [1,] -1.4863011
 [2,] -1.1560120
 [3,] -0.8257228
 [4,] -0.4954337
 [5,] -0.1651446
 [6,]  0.1651446
 [7,]  0.4954337
 [8,]  0.8257228
 [9,]  1.1560120
[10,]  1.4863011
attr(,"scaled:center")
[1] 5.5
attr(,"scaled:scale")
[1] 3.02765
> (x - mean(x)) / sd(x)
 [1] -1.4863011 -1.1560120 -0.8257228 -0.4954337 -0.1651446
 [6]  0.1651446  0.4954337  0.8257228  1.1560120  1.4863011
> mean(x)
[1] 5.5
> sd(x)
[1] 3.02765

Обратите внимание, что атрибуты в объекте, возвращаемые из scale(), являются средним значением и SD входных данных.

Теперьвы не предоставляете реальный код, чтобы показать, как вы вычислили «V5-mean / st.dev», но если вы сделали это именно так, приоритет оператора мог бы вас поймать.Это, например, не возвращает правильные z-оценки:

> x - mean(x) / sd(x)
 [1] -0.8165902  0.1834098  1.1834098  2.1834098  3.1834098
 [6]  4.1834098  5.1834098  6.1834098  7.1834098  8.1834098
3 голосов
/ 27 мая 2011
mu <- mean(myRow) 

sigma   <- sqrt ( var(myRow)  )

myRow <- (myRow - mu )/ sqrt(sigma)
0 голосов
/ 13 марта 2015

Проще говоря, вы забыли скобки: x - среднее (x) / sd (x)

Правильный код: ( x - среднее (x) ) / sd (x)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...