Próbuję zrobić trochę glm wewnątrz pliku data.table, aby uzyskać modelowane wyniki podzielone przez kluczowe czynniki.R - używanie glm wewnątrz danych.tabela
Robiłem to z powodzeniem do:
Wysoki poziom GLM
GLM (modellingDF, formuła = Wynik ~ IntCol + DecCol, rodzina = dwumianowy (link = logarytmicznej))
lunetą GLM z pojedynczej kolumny
modellingDF [wykaz (wynik, wyposażone = GLM (x, o wzorze = Wynik ~ IntCol rodzina = dwumianowego (Li nk = logarytmicznej)) $ wyposażony) przez = zmienna]
lunetą GLM z dwoma kolumnami całkowitą
modellingDF [wykaz (wynik, wyposażone = GLM (x, o wzorze = Wynik ~ IntCol + IntCol2 rodzina = dwumianowy (link = logarytmicznej)) $ zamontowane), przez = zmienna]
Ale gdy próbuję i zrobić GLM wysoki poziom wewnątrz zakresu z moim kolumnie dziesiętnych, produkuje ten błąd
Error in model.frame.default(formula = Outcome ~ IntCol + DecCol, data = x, :
variable lengths differ (found for 'DecCol')
Myślałem, że może to ze względu na zmienne długości partycji, więc testowałem z powtarzalny przykład:
library("data.table")
testing<-data.table(letters=sample(rep(LETTERS,5000),5000),
letters2=sample(rep(LETTERS[1:5],10000),5000),
cont.var=rnorm(5000),
cont.var2=round(rnorm(5000)*1000,0),
outcome=rbinom(5000,1,0.8)
,key="letters")
testing.glm<-testing[,list(outcome,
fitted=glm(x,formula=outcome~cont.var+cont.var2,family=binomial(link=logit))$fitted)
),by=list(letters)]
Ale to nie ma błędu. Myślałem, że może to ze względu na NAS lub czegoś, ale streszczeniem data.table modellingDF nie daje żadnych wskazówek, że nie powinno być żadnych problemów:
DecCol
Min. :0.0416
1st Qu.:0.6122
Median :0.7220
Mean :0.6794
3rd Qu.:0.7840
Max. :0.9495
nrow(modellingDF[is.na(DecCol),]) # results in 0
modellingDF[,list(len=.N,DecCollen=length(DecCol),IntCollen=length
(IntCol),Outcomelen=length(Outcome)),by=Bracket]
Bracket len DecCollen IntCollen Outcomelen
1: 3-6 39184 39184 39184 39184
2: 1-2 19909 19909 19909 19909
3: 0 9912 9912 9912 9912
Może Mam dozy dzień, ale może ktoś sugerują rozwiązanie lub sposób na dalsze zgłębianie tego problemu?
Co? [R Zmienna długość Różni się, gdy budujesz model liniowy dla reszty] (http://stackoverflow.com/questions/14924541/r-variable-length-differ-when-build-linear-model-for-residuals) – zx8754
Rozważałem to, ale 'sapply (modellingDF, function (x) all (is.na (x)))' zwraca FALSE dla każdej kolumny –
Czy możesz utworzyć powtarzalny przykład, który powoduje błąd? Pokazałeś błąd, który jest dobry, ale nie to, co go produkuje, iiuc. –