Ich habe einen Datensatz von Klimadaten in einem dat.frame (Spalten sind Messstationen, und Zeilen zeigen Zeit der Messung), und ich versuche es Finden Sie die richtigen Lambda-Werte in einer Yeo-Johnson-Transformation, um den Einfluss der Schiefe auf eine Hauptkomponentenanalyse zu begrenzen.R Problem: Ausführen von lm und dann ein Boxcox, um einen richtigen Lambda-Wert zu finden
Offensichtlich ist der erste Schritt ist, Wahrscheinlichkeiten zu erhalten melden Sie sich das beste Lambda zu finden: Ich verwende die folgende, wobei i der Index einer Spalte ist:
getYeoJohsnonLambda <- function(myClimateData,cols,lambda_min, lambda_max,eps)
...
lambda <- seq(lambda_min,lambda_max,eps)
for(i in cols)
{
formula <- as.formula(paste("myClimateData$",colnames(myClimateData)[i],"~1"))
currentModel <- lm(formula,myClimateData)
print(currentModel)
myboxCox <- boxCox(currentModel, lambda = lambda ,family="yjPower", plotit = FALSE)
...
}
Wenn ich es versuche, für eine nennen climateData Zeitreihen, die zum Beispiel sein könnte:
`climateData <-data.frame(c(8.2,6.83,5.46,4.1,3.73,3.36,3,3,3,3,3.7),c(0,0.66,1.33,2,2,2,2,2,2,2,1.6))`
ich diesen Fehler: Error in is.data.frame(data) : object 'myClimateData' not found
Das ist seltsam, wie lm es zu finden scheint und zurück ein korr ect fit, und myClimateData sollte gefunden werden, da es eines der Argumente der Funktion ist, oder?
Das Problem besteht darin, wie Sie Ihre Formel formulieren: 'formula <- as.formula (einfügen (" myClimateData $ ", Spaltennamen (myClimateData) [i]," ~ 1 ")). Stattdessen versuchen so etwas wie 'lm (as.formula (Paste (COLNAMES (climateData) [1], "~ 1")), data = myClimateData)' –
Ich habe versucht, zu ändern zu: \t \t 'Current <- lm (as.formula (Paste (COLNAMES (myClimateData) [i] "~ 1")), data = myClimateData) \t \t print (Current) \t \t myboxCox <- boxCox (Current, Lambda = lambda, Familie = "yjPower", plottit = FALSE) ' Aber ich habe immer noch den gleichen Fehler:" Fehler in is.data.frame (x): Objekt 'myClimateData' nicht gefunden "in der BoxCox Zeile. Das ist wirklich seltsam, da "myClimateData" einer der Funktionsargumente ist. – qwartz