Non-analyse de régression linéaire dans R
Je suis un R novice, mais je suis à la recherche d'un moyen de déterminer les trois paramètres A, B et C par la fonction suivante dans R:
y = A * (x1^B) * (x2^C)
Quelqu'un peut-il me donner quelques conseils au sujet de la R méthode(s) qui pourrait m'aider à réaliser un tel montage?
- Qu'est-ce que la distribution de l'erreur que vous pouvez le supposer? est-il normale, log-normale, Cauchy, etc. etc.? Sont les erreurs dans différentes observations en corrélation les uns avec les autres? Alors que
nls
peut s'adapter à votre projet de loi, il peut également vous donner des biaisé et inefficace des estimations. Sans l'erreur de modèle, vous êtes littéralement à tâtons dans l'obscurité.
Vous devez vous connecter pour publier un commentaire.
Une option est le
nls
fonction @SvenHohenstein suggéré. Une autre option est de convertir vos régression non linéaire en une régression linéaire. Dans le cas de cette équation, il suffit de prendre le journal des deux côtés de l'équation et faire un peu d'algèbre et vous aurez une équation linéaire. Vous pouvez exécuter l'analyse de régression en utilisant quelque chose comme:L'ordonnée à l'origine sera
log(A)
donc utiliserexp
pour obtenir la valeur de a, B et C, les paramètres vont être les 2 pentes.La grande différence ici est que
nls
permettra d'adapter le modèle à la normale des erreurs ajoutées à l'équation d'origine et lalm
ajustement avec les journaux suppose que les erreurs dans le modèle d'origine qui sont issues d'une distribution log-normale et sont multipliés au lieu d'être ajoutés au modèle. De nombreux jeux de données donnera des résultats similaires pour les 2 méthodes.offset
de l'inclure avec une valeur B de 1 (ou un autre critère de la valeur).Vous pouvez ajustement non linéaire des moindres carrés de modèle avec la fonction
nls
.?nls
, il ne convergent pas moins qu'il y a du bruit dans les données.y
etx2
) sont insuffisantes pour l'estimation des trois paramètres. Vous souhaitez peut-être envisager d'utiliser un modèle plus simple.Pourquoi ne pas vous utiliser les SVM (Soutien par les Machines à Vecteurs de Régression? il y a un paquet en CRAN nommé
e1071
qui peut gérer avec une régression SVM.Vous pouvez consulter ce tutoriel: http://www.svm-tutorial.com/2014/10/support-vector-regression-r/
J'espère que cela peut vous aider à