2017-09-07 2 views
0

배경일부 대조가 한 단계 만있는 교육 데이터의 하위 집합에 대한 설계 행렬을 작성하는 기존 기능이 있습니까?

원래 모델 객체가 너무 크기 때문에 나는 반짝 응용 프로그램 내 GLM 객체의 제거 버전을 사용해야합니다. 따라서 퍼지 된 객체를 통해 예측의 표준 오류를 생성 할 수 없습니다. 대신, 나는 분산 - 공분산 행렬 (원래 모델 객체에서 얻은)을 사용하여 예측 분산/표준 오류를 계산해야합니다. 이 응용 프로그램에서 나는 결과와 그 표준 오류를 예측하고자하는 가상의 관찰을 동적으로 생성합니다.

문제

I는 I가 VAR-COV 행렬 곱 수 대응 모델 행렬을 생성하는 문제가 남아있어. model.matrix()를 사용할 때 가상의 데이터가 항상 요소 변수에 대해 둘 이상의 수준을 갖지 않기 때문에 종종 오류가 발생합니다. 모델 수식에 대한 내 이해를 기반으로 모델 행렬을 간단하게 만들 수있는 논리를 코딩 할 수 있다는 것을 알고 있습니다. 그러나 아마도 이미 해결책이있는 것처럼 보입니다.

나는 내가 말하고있는 오류를 던지는 미니 홍채 같은 데이터 세트를 사용하여 간단한 예를 만들었습니다.

iris2 <- data.frame(Sepal.Length = c(3, 4), Species = c("setosa", "setosa")) 
model.matrix(~ Sepal.Length*Species, iris2) 

답변

0

어쩌면 이것은 어리석은 질문이었을 것입니다. 그러나 사실 홍채 데이터 세트로 홍채 예제를 만들 때 factor.mutrix()는 가상 변수에 하나의 고유 한 값만있는 경우에도 factor 변수에 둘 이상의 레벨이있는 ​​경우 실제로 오류를 발생시키지 않습니다. 견본). factor 변수에 대한 2 진 표시기가 필요하기 때문에 model.matrix()는 미니 예제에 잠재적 인 참조 레벨이 없습니다.

나는, 퍼지 모델의 "xlevels"개체 (모델 $의 xlevels)를 사용하는 수준의 변수를 통해 루프와 같이 그 열을 다시 고려 :

for(i in 1:length(model$xlevels)){ 
newdata[[names(model$xlevels)[i]]] <- factor(newdata[[names(model$xlevels)[i]]], levels = model$xlevels[[i]]) 
} 

주 나는 제거를 사용하려고하는 model.matrix()의 "object"입력에서 model $ terms뿐만 아니라 model 객체도 사용할 수 있지만 아무 소용이 없습니다.

더 좋은 방법이 있다면 응답 해 주셔서 감사합니다. 그렇지 않으면, 나는 이것이 도움이되기를 바랍니다.

관련 문제