2016-08-01 6 views
4

데이터 [2-90]에 약 90 개의 변수가 저장되어 있습니다. 나는 그들 중 4 명이 데이터와 포물선과 같은 상관 관계를 가질 것이라고 생각한다 [1]. 상관 관계가있는 항목을 확인하고 싶습니다. 이 작업을 수행하는 쉽고 빠른 방법이 있습니까? 얻을^2/계수비선형 상관 관계 찾기 R

y <- data$AvgRating 
x <- data$Hamming.distance 
x2 <- x^2 

quadratic.model = lm(y ~ x + x2) 

, 그리고, R 보면 :

난 (I 각 변수 I = 2:90에 대해 루프로 할 수있다)과 같은 모델을 구축하는 시도 상관 관계에 대한 아이디어. 이 작업을 수행하는 더 좋은 방법이 있습니까?

아마도 R은 90 개의 변수로 회귀 모델을 만들 수 있으며 중요한 변수 자체를 선택할 수 있습니까? 그게 가능한가? 선형 회귀 분석을 위해 JMP에서이 작업을 수행 할 수 있지만 모든 변수를 R로 비선형 회귀 연산을 수행 할 수 있는지 확신 할 수 없습니다. 그러므로 나는 어떤 것들이 사전에 상호 연관되어 있는지를 볼 수 있는지 수동으로 시도하고 있었다. 그것을 위해 사용할 함수가 있다면 도움이 될 것입니다.

+0

'데이터'의 구조는 무엇입니까? 벡터 목록입니까? 모든 벡터가 같은 길이입니까? –

+0

그들은 모두 같은 길이입니다. 나는 그들을 data = read.csv ("file", header = TRUE)로 읽었습니다. 머리글과 관련 있다고 생각합니다. 작업 코드를 반영하도록 질문을 변경했습니다. – dorien

+1

'data'가'data.frame'이라면'data [1]'은'data.frame' 열을 제공하고'lm'은 벡터를 기대합니다. 'data [[1]]'를 사용하여 벡터를 얻는다. – snaut

답변

1

또 다른 옵션은 각 변수 쌍 사이의 상호 정보 스코어를 계산하는 것입니다. 예를 들어, infotheo package에서 mutinformation 기능을 사용하여, 당신은 할 수 :

set.seed(1) 

library(infotheo) 

# corrleated vars (x & y correlated, z noise) 
x <- seq(-10,10, by=0.5) 
y <- x^2 
z <- rnorm(length(x)) 

# list of vectors 
raw_dat <- list(x, y, z) 


# convert to a dataframe and discretize for mutual information 
dat <- matrix(unlist(raw_dat), ncol=length(raw_dat)) 
dat <- discretize(dat) 

mutinformation(dat) 

결과 : 기본적으로

| |  V1|  V2|  V3|                        
|:--|---------:|---------:|---------:|                        
|V1 | 1.0980124| 0.4809822| 0.0553146|                        
|V2 | 0.4809822| 1.0943907| 0.0413265|                        
|V3 | 0.0553146| 0.0413265| 1.0980124| 

mutinformation() 두 개 이상의 변수 사이의 분리 실험 상호 정보의 점수를 계산합니다. 연속 데이터로 작업 할 때 데이터를 이산 값으로 변환하려면 함수 discretize()이 필요합니다.

이것은 위에 설명 된 것과 같은 변수 간의 비선형 관계를 찾는 첫 번째 검사로서 유용 할 수 있습니다.

+0

유도하다 임의의 데이터 세트, 즉 반드시 고정적 일 필요는 없습니까? 감사합니다 –

+0

안녕하세요 @ pythonnovice, 전 그 유형의 데이터로 일한 적이 없기 때문에, 나는 정말로 말할 수 없습니다. 아마도 가장 쉬운 방법은 단순한 비 고정 데이터를 시뮬레이션하고 시도하는 것입니다. –

1

일반화 된 첨가제 모델을 적용하면 설명 변수 사이의 관계에서 곡률을 식별하는 데 도움이됩니다. 22 쪽의 예를 읽으십시오. here.

+0

감사합니다. 나는 gam 함수를 사용하여 이것을 시도했습니다. 너무 많은 변수 (예 : 너무 적은 자유도에 대해서는 오류가 발생하므로 어떤 변수가 가장 적합한 지 알아보기 위해 변수 당 먼저이 작업을 수행해야합니다. 그렇지 않으면 gam이 변수를 식별 할 수있는 함수가 누락 되었습니까? – dorien