2017-01-26 4 views
0

1つのデータセットがExcel/CSV形式にあります。私は、多くの単純な線形回帰/相関(それぞれp値を持つ)を実行したいと考えています。1つのデータセットで多くの線形回帰/相関を実行する方法

私はいくつかの独立変数(x)と1つの従属変数(y)を持っています。 変数はすべての行ではなく、データの列です。各列には、最初のセルのデータ型の名前と下位のセルのすべての数値データがあります。

各テストを手動で実行する代わりにループを作成したいが、私はRのループには慣れていない。誰かが助けることができれば、私は大いに感謝します。ありがとう!

+1

あなたがあなたのデータセットの例を提供しているならば、あなたは幸いです。あなたの提案したアプローチを実行することが可能です。私はシミュレーションを使ってあなたの質問に答えようとすることができます。 –

答えて

0

詳細がわからないのは確かに分かりませんが、dplyrとbroomを使用すると、どこに行く必要があるかもしれません。

例えば、これは、各グループの線形モデルで動作します。詳細については

library(broom) 
library(dplyr) 

mtcars %>% 
    group_by(cyl) %>% 
    do(tidy(lm(mpg ~ wt, data = .))) 

を、私が提案することがあります。ここではhttp://r4ds.had.co.nz/many-models.html

0

は1を証明するためにシミュレートされたデータセットを使用する私の試みです) 2)独立した2つの変数x1(通常分布)とx2(exponentiall)を用いてデータシミュレーションを生成する。 Y))は、分散、及びx1として従属変数y(同じ分布:

set.seed(1) #reproducibility 
## The first column is your DEPENDENT variable 
## The rest are independent variables 
data <- data.frame(y=rnorm(100,0.5,1), x1=rnorm(100,0,1), x2= rexp(100,0.5)) 

"手動" 計算相関:

cor_x1_y <- cor.test(data$x1, data$y) 
cor_x2_y <- cor.test(data$x2, data$y) 

c(cor_x1_y$estimate, cor_x2_y$estimate) #corr. coefficients 

##   cor   cor 
## -0.0009943199 -0.0404557828 

c(cor_x1_y$p.value, cor_x2_y$p.value) #p values 
## [1] 0.9921663 0.6894252 

を反復と呼ばれるマトリクスに相関し、店舗の結果を計算しますresults

results <- NULL # placeholder 
for(i in 2:ncol(data)) { 
    ## Perform i^th test: 
    one_test <- cor.test(data[,i], data$y) 
    test_cor <- one_test$estimate 
    p_value <- one_test$p.value 
    ## Add any other parameters you'd like to include 

    ##update results vector 
    results <- rbind(results, c(test_cor , p_value)) 
} 
colnames(results) <- c("correlation", "p_value") 
results 

##  correlation p_value 
## [1,] -0.0009943199 0.9921663 
## [2,] -0.0404557828 0.6894252 
関連する問題