estimate a truncated normal distribution with only top tail of data of that distribution in r











up vote
0
down vote

favorite












I am trying to fit a truncated normal distribution to a data, however my problem is I only have top tail of the data/distribution (and I wouldn't know what percentile they are because I dont know about the real distribution's mean and variance yet), by which I want to construct back the truncated normal distribution and get it's estimated mean and variance. The package I used was fitdistrplus::fitdistr.



The codes I tried are as following:



dtnorm.trun1 <- function(x, mean, sd, a= 8.414596, b=Inf) 
dnorm(x, mean, sd)/(pnorm(b,mean,sd)-pnorm(a,mean,sd))

ptnorm.trun1 <- function(x, mean, sd, a= 8.414596, b=Inf)
(pnorm(x, mean, sd)-pnorm(a,mean,sd))/(pnorm(b,mean,sd)-pnorm(a,mean, sd))

fit <- fitdistr(data, dtnorm.trun1, method="Nelder-Mead", start=list(mean=-24, sd=21))


I'm doing this practice for replication, so I expect I should be getting fitted mean of -24 and sd of 21, and the real data was truncated at 8.414596. With different starting values and different estimation method, I won't be getting my expected result. I'm really confused about this. Thank you in advance for any suggestion and advise.










share|improve this question




















  • 2




    This is probably a better question for Cross Validated since you seem to be concerned with statistical estimation rather than programming.
    – MrFlick
    Nov 21 at 21:14










  • @MrFlick thank you for editing and the suggestion, I will post the question there too. But I also was wondering is it because I understood this package incorrectly or use it wrong..
    – C.Dm
    Nov 21 at 21:56















up vote
0
down vote

favorite












I am trying to fit a truncated normal distribution to a data, however my problem is I only have top tail of the data/distribution (and I wouldn't know what percentile they are because I dont know about the real distribution's mean and variance yet), by which I want to construct back the truncated normal distribution and get it's estimated mean and variance. The package I used was fitdistrplus::fitdistr.



The codes I tried are as following:



dtnorm.trun1 <- function(x, mean, sd, a= 8.414596, b=Inf) 
dnorm(x, mean, sd)/(pnorm(b,mean,sd)-pnorm(a,mean,sd))

ptnorm.trun1 <- function(x, mean, sd, a= 8.414596, b=Inf)
(pnorm(x, mean, sd)-pnorm(a,mean,sd))/(pnorm(b,mean,sd)-pnorm(a,mean, sd))

fit <- fitdistr(data, dtnorm.trun1, method="Nelder-Mead", start=list(mean=-24, sd=21))


I'm doing this practice for replication, so I expect I should be getting fitted mean of -24 and sd of 21, and the real data was truncated at 8.414596. With different starting values and different estimation method, I won't be getting my expected result. I'm really confused about this. Thank you in advance for any suggestion and advise.










share|improve this question




















  • 2




    This is probably a better question for Cross Validated since you seem to be concerned with statistical estimation rather than programming.
    – MrFlick
    Nov 21 at 21:14










  • @MrFlick thank you for editing and the suggestion, I will post the question there too. But I also was wondering is it because I understood this package incorrectly or use it wrong..
    – C.Dm
    Nov 21 at 21:56













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I am trying to fit a truncated normal distribution to a data, however my problem is I only have top tail of the data/distribution (and I wouldn't know what percentile they are because I dont know about the real distribution's mean and variance yet), by which I want to construct back the truncated normal distribution and get it's estimated mean and variance. The package I used was fitdistrplus::fitdistr.



The codes I tried are as following:



dtnorm.trun1 <- function(x, mean, sd, a= 8.414596, b=Inf) 
dnorm(x, mean, sd)/(pnorm(b,mean,sd)-pnorm(a,mean,sd))

ptnorm.trun1 <- function(x, mean, sd, a= 8.414596, b=Inf)
(pnorm(x, mean, sd)-pnorm(a,mean,sd))/(pnorm(b,mean,sd)-pnorm(a,mean, sd))

fit <- fitdistr(data, dtnorm.trun1, method="Nelder-Mead", start=list(mean=-24, sd=21))


I'm doing this practice for replication, so I expect I should be getting fitted mean of -24 and sd of 21, and the real data was truncated at 8.414596. With different starting values and different estimation method, I won't be getting my expected result. I'm really confused about this. Thank you in advance for any suggestion and advise.










share|improve this question















I am trying to fit a truncated normal distribution to a data, however my problem is I only have top tail of the data/distribution (and I wouldn't know what percentile they are because I dont know about the real distribution's mean and variance yet), by which I want to construct back the truncated normal distribution and get it's estimated mean and variance. The package I used was fitdistrplus::fitdistr.



The codes I tried are as following:



dtnorm.trun1 <- function(x, mean, sd, a= 8.414596, b=Inf) 
dnorm(x, mean, sd)/(pnorm(b,mean,sd)-pnorm(a,mean,sd))

ptnorm.trun1 <- function(x, mean, sd, a= 8.414596, b=Inf)
(pnorm(x, mean, sd)-pnorm(a,mean,sd))/(pnorm(b,mean,sd)-pnorm(a,mean, sd))

fit <- fitdistr(data, dtnorm.trun1, method="Nelder-Mead", start=list(mean=-24, sd=21))


I'm doing this practice for replication, so I expect I should be getting fitted mean of -24 and sd of 21, and the real data was truncated at 8.414596. With different starting values and different estimation method, I won't be getting my expected result. I'm really confused about this. Thank you in advance for any suggestion and advise.







r






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 21 at 22:39

























asked Nov 21 at 21:09









C.Dm

11




11








  • 2




    This is probably a better question for Cross Validated since you seem to be concerned with statistical estimation rather than programming.
    – MrFlick
    Nov 21 at 21:14










  • @MrFlick thank you for editing and the suggestion, I will post the question there too. But I also was wondering is it because I understood this package incorrectly or use it wrong..
    – C.Dm
    Nov 21 at 21:56














  • 2




    This is probably a better question for Cross Validated since you seem to be concerned with statistical estimation rather than programming.
    – MrFlick
    Nov 21 at 21:14










  • @MrFlick thank you for editing and the suggestion, I will post the question there too. But I also was wondering is it because I understood this package incorrectly or use it wrong..
    – C.Dm
    Nov 21 at 21:56








2




2




This is probably a better question for Cross Validated since you seem to be concerned with statistical estimation rather than programming.
– MrFlick
Nov 21 at 21:14




This is probably a better question for Cross Validated since you seem to be concerned with statistical estimation rather than programming.
– MrFlick
Nov 21 at 21:14












@MrFlick thank you for editing and the suggestion, I will post the question there too. But I also was wondering is it because I understood this package incorrectly or use it wrong..
– C.Dm
Nov 21 at 21:56




@MrFlick thank you for editing and the suggestion, I will post the question there too. But I also was wondering is it because I understood this package incorrectly or use it wrong..
– C.Dm
Nov 21 at 21:56

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53420503%2festimate-a-truncated-normal-distribution-with-only-top-tail-of-data-of-that-dist%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53420503%2festimate-a-truncated-normal-distribution-with-only-top-tail-of-data-of-that-dist%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Berounka

Fiat S.p.A.

Type 'String' is not a subtype of type 'int' of 'index'