Ошибка при использовании mshapiro.test: «U [] не является матрицей с количеством столбцов (размер выборки) от 3 до 5000» - PullRequest
0 голосов
/ 28 июля 2011

Я пытаюсь выполнить многомерный тест на нормальность для некоторых данных плотности с пяти сайтов, используя mshapiro.test из пакета mvnormtest. Каждый сайт представляет собой столбец, а плотность ниже. Это 5 столбцов и 5 строк, с верхней строкой в ​​качестве заголовка (названия сайтов). Вот как я загрузил свои данные:

datafilename="/Users/megsiesiple/Documents/Lisa/lisadensities.csv"
data.nc5=read.csv(datafilename,header=T)
attach(data.nc5)` 

Данные выглядят так:

       B07      B08      B09      B10        M  
1 72571.43 17714.29  3142.86 22571.43  8000.00
2 44571.43 46857.14 49142.86 16857.14  7142.86
3 54571.43 44000.00 26571.43  6571.43 17714.29
4 57714.29 38857.14 32571.43  2000.00  5428.57

Когда я вызываю mshapiro.test () для data.nc5, я получаю это сообщение: Error in mshapiro.test(data.nc5) : U[] is not a matrix with number of columns (sample size) between 3 and 5000

Я знаю, что для выполнения теста Шапиро-Уилка с использованием mshapiro.test() данные должны быть в числовой матрице с числом столбцов от 3 до 5000. Однако даже когда я делаю .csv матрицей с только цифры (т.е. когда я опускаю имена сайтов), я все равно получаю сообщение об ошибке. Нужно ли настраивать матрицу по-другому? У кого-нибудь еще возникла такая проблема? Спасибо!

Ответы [ 2 ]

4 голосов
/ 06 декабря 2018

Вам необходимо переместить данные в матрицу, чтобы ваши переменные были в строках, а наблюдения - в столбцах.Команда будет:

M <- t (data.nc5 [1: 4,1: 5]) </p>

mshapiro.test (M)

Работает длямне так.Метки в первой строке должны распознаваться во время импорта, поэтому данные будут начинаться со строки 1. В противном случае возникнет ошибка «отсутствует значение».

2 голосов
/ 28 июля 2011

Если вы читаете числовую матрицу в R через read.csv(), используя код, подобный тому, который вы показываете, он будет считан как фрейм данных, а это не матрица.

Попробуйте

mat <- data.matrix(data.nc5)
mshapiro.test(mat)

(Не проверено, поскольку вы не приводите воспроизводимый пример, и сейчас в моем часовом поясе поздно; -)

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