2013-05-02 3 views
-1

У меня есть кадр данных, содержащий несколько социально-экономических факторов с соответствующими оберванцами. Я хочу запустить lm-Analysis для всех из них, а затем сформировать новую матрицу (или фрейм данных), которая содержит все значения Pvalues ​​для каждой комбинации переменных.R Показать результаты P-значения lm как матрицы

Мои исходные данные находятся в матрице SFI.Matrix и содержат 7 строк по 12 записей.

Я попытался следующие: 1. ) построить результирующую матрицу 2.) запустить лм для всех различных комбинаций 3.) объединить эти результаты в результате матрицы.

Мой код выглядит следующим образом:

Levene.Tests.Results <- matrix(1, nr=7, nc=7) 
rownames(Levene.Tests) <- colnames(Levene.Tests) <- colnames(SFI.Matrix) 


for(i in 1:7) { 
for(j in 1:7) { 
Levene.Tests <- lm(SFI.Matrix[,i] ~ SFI.Matrix[,j])$p.value }} 

Моя проблема заключается в том, что результат я получаю матрица [п = 7, т = 7] со всеми САМ.

Я буду признателен любой советовать :-)

Кроме того, я не совсем уверен, на самом деле работает ли это потому, что записи данных являются ставки ... Вы можете мне помочь с этим?

+2

Несколько комментариев: (1) это кажется статистически сомнительным. Возможно, вы просто хотите работать с корреляциями между переменными? (см. 'cor',' cor.test'). (2) Если вам нужно общее p-значение для регрессии, как показано в разделе 'stats ::: print.summary.lm()', вам, вероятно, понадобится что-то вроде 'pf (x $ fstatistic [1], x $ fstatistic [2L], x $ fstatistic [3L], lower.tail = FALSE) 'где' x' - сводка вашей модели –

+0

@BenBolker Ваш комментарий был очень полезен! Действительно, казалось, я использовал неправильную функцию. Коррупция отлично работает! Спасибо! – PikkuKatja

+0

Если вы смогли ответить на свой вопрос, лучше всего, если вы можете написать решение и опубликовать его в качестве ответа (разрешено и действительно рекомендуется отвечать на ваши собственные вопросы) –

ответ

1

Благодаря совету @BenBolker я смог решить проблему. Действительно, lm была неправильной функцией. Правильной функцией является test.cor, который приносит очень полезные результаты:

Correlations<- matrix(nrow=7, ncol=7) 
for(i in 1:7) { 
for(j in 1:7) { 
Correlations[i,j] <- cor.test(SFI.Matrix[,i], SFI.Matrix[,j])$p.value 
} 
} 

Еще раз спасибо, Stackoverflow!

Смежные вопросы