I am trying to calculate the log likelihood from FIMIX in Excel based on
Hahn, C.; Johnson, M. D.; Herrmann, A.; et al. (2002): „Capturing customer heterogeneity using a finite mixture PLS approach“. In: Schmalenbach Business Review. 54 (3), S. 243–269.
but so far i haven't manage to do the calculation so that I come up with the same results as smartPLS. I based my calculations on the following formulas:
and
In the attached zip-file. Reports for an ordinary pls-run, the fimix run (with 1 segment for simplicity) and my calculation attempts are included. would be nice if someone could have a look and tell me what's wrong with my calculations and/or my data.
At the moment i'm especially wondering what the correct values are for Beta_k and PSI_k.
Thanks in advance for your help!
Jan
PS: The model is very simplistic and the data is fake to make debugging easier.
LnL Calculation in FIMIX
-
- PLS Expert User
- Posts: 116
- Joined: Fri Sep 12, 2014 2:12 pm
- Real name and title: Jan Schreier
LnL Calculation in FIMIX
- Attachments
-
- pls reports.zip
- (164.46 KiB) Downloaded 241 times
-
- SmartPLS Developer
- Posts: 1284
- Joined: Tue Mar 28, 2006 11:09 am
- Real name and title: Dr. Jan-Michael Becker
Re: LnL Calculation in FIMIX
I don't have the time to go deep into your provided material, but there are two things I would like to comment:
1) In the SBR paper by Sarstedt et al. 2011 we have made some clarifications and correction to the original formulas provided by Hahn et al. Yet, I remember that SBR has also not printed these fully correctly. The problem with formula 9 in Hahn is that you are not supposed to take the second part (double Sum zlnp) for the likelihood calculation, but only the first part.
2) Beta and Gamma are submatrices of the segment-specific path coefficient matrix, which you will find in the FIMIX-PLS output. The one collects all coefficients from exogenous constructs and the other between constructs that are endogenous.
Psi is the segment-specific variance matrix. You will also find this in the FIMIX-PLS output.
1) In the SBR paper by Sarstedt et al. 2011 we have made some clarifications and correction to the original formulas provided by Hahn et al. Yet, I remember that SBR has also not printed these fully correctly. The problem with formula 9 in Hahn is that you are not supposed to take the second part (double Sum zlnp) for the likelihood calculation, but only the first part.
2) Beta and Gamma are submatrices of the segment-specific path coefficient matrix, which you will find in the FIMIX-PLS output. The one collects all coefficients from exogenous constructs and the other between constructs that are endogenous.
Psi is the segment-specific variance matrix. You will also find this in the FIMIX-PLS output.
Dr. Jan-Michael Becker, BI Norwegian Business School, SmartPLS Developer
Researchgate: https://www.researchgate.net/profile/Jan_Michael_Becker
GoogleScholar: http://scholar.google.de/citations?user ... AAAJ&hl=de
Researchgate: https://www.researchgate.net/profile/Jan_Michael_Becker
GoogleScholar: http://scholar.google.de/citations?user ... AAAJ&hl=de
-
- PLS Expert User
- Posts: 116
- Joined: Fri Sep 12, 2014 2:12 pm
- Real name and title: Jan Schreier
Re: LnL Calculation in FIMIX
Hi Michael,
thanks for your input. I managed to solve that for my simple model (two exogeneous variables pointing to one endogeneous variable) but now struggle with a slightly more complex model: Service Satisfaction is clearly exogeneous and brand loyalty is endogeneous. From my understanding product satisfaction is also endogeneous per your definition.
But what about Beta and Gamma?
Beta should be a 2x2 matrix and Gamma a 1x2 matrix, if I understand it correctly.
I would expect Gamma to be {0,74; 0}
And Beta to be something like:
0; 0
0,83; 0
But with these values I don’t get anywhere near the expected LNL value. Do you have another hint for me?
Thanks in advance!
Jan
thanks for your input. I managed to solve that for my simple model (two exogeneous variables pointing to one endogeneous variable) but now struggle with a slightly more complex model: Service Satisfaction is clearly exogeneous and brand loyalty is endogeneous. From my understanding product satisfaction is also endogeneous per your definition.
But what about Beta and Gamma?
Beta should be a 2x2 matrix and Gamma a 1x2 matrix, if I understand it correctly.
I would expect Gamma to be {0,74; 0}
And Beta to be something like:
0; 0
0,83; 0
But with these values I don’t get anywhere near the expected LNL value. Do you have another hint for me?
Thanks in advance!
Jan
-
- SmartPLS Developer
- Posts: 1284
- Joined: Tue Mar 28, 2006 11:09 am
- Real name and title: Dr. Jan-Michael Becker
Re: LnL Calculation in FIMIX
Beta in Hahn et al is I - Bs (see the clarification in Sarstedt et al.). Thus, it has ones on the diagonal and negative path coefficients elsewhere. In your case it would be
1 0
-0.83 1
In addition, psi is a 2x2 matrix with the variances on the diagonal. I'm not sure if you account for that correctly.
1 0
-0.83 1
In addition, psi is a 2x2 matrix with the variances on the diagonal. I'm not sure if you account for that correctly.
Dr. Jan-Michael Becker, BI Norwegian Business School, SmartPLS Developer
Researchgate: https://www.researchgate.net/profile/Jan_Michael_Becker
GoogleScholar: http://scholar.google.de/citations?user ... AAAJ&hl=de
Researchgate: https://www.researchgate.net/profile/Jan_Michael_Becker
GoogleScholar: http://scholar.google.de/citations?user ... AAAJ&hl=de
-
- PLS Expert User
- Posts: 116
- Joined: Fri Sep 12, 2014 2:12 pm
- Real name and title: Jan Schreier
Re: LnL Calculation in FIMIX
Hi Michael,
i managed to recalculate the LnL for 1-segment solutions but for two segments I still struggle. I tested my 2 segment solution with a fake solution (all values equal) and I come up with correct LnL-values as I get it, if I calculate values for 1 segment solution in smartPLS. If I insert different values for Psi, Beta and Gamma for both segments my solution just doesn't match smartPLS solution.
Having spend enough time on this no to rule out silly issues I overlooked, I'd really appreciate if you could look into the attached Excel-file or give me another hint on the part of the calculation that covers those parts that are relevant only, if one uses two or more segments. The value given in cell AA14 is smartPLS solution, the value in AA15 is my result.
thanks!
Jan
i managed to recalculate the LnL for 1-segment solutions but for two segments I still struggle. I tested my 2 segment solution with a fake solution (all values equal) and I come up with correct LnL-values as I get it, if I calculate values for 1 segment solution in smartPLS. If I insert different values for Psi, Beta and Gamma for both segments my solution just doesn't match smartPLS solution.
Having spend enough time on this no to rule out silly issues I overlooked, I'd really appreciate if you could look into the attached Excel-file or give me another hint on the part of the calculation that covers those parts that are relevant only, if one uses two or more segments. The value given in cell AA14 is smartPLS solution, the value in AA15 is my result.
thanks!
Jan
- Attachments
-
- lnl 2 segments.zip
- my calculations in excel
- (118.85 KiB) Downloaded 214 times
-
- SmartPLS Developer
- Posts: 1284
- Joined: Tue Mar 28, 2006 11:09 am
- Real name and title: Dr. Jan-Michael Becker
Re: LnL Calculation in FIMIX
There are two simple mistakes and a less obvious mistake in your calculations:
1) You use individual segment assignment instead of simple segment sizes (pk does not have an index i and is thus not individual specific, but only segment-specific).
2) You have a wrong path coefficient in segment 1 in Beta.
After correcting these two mistakes you will get an LnL value close to SmartPLS. However, you will never get the exact value for 2 or more segments with the default SmartPLS results.
There is a simple reason. FIMIX provides standardized path coefficients in its reports, but uses unstandardized coefficients in the calculation of the LnL and segmentation results. Usually, the difference is not big, because FIMIX works on the standardized LV scores. Because of the grouping of LV scores into segments the segment-specific scores are not standardized during the calculations. Thus, in a final step, we standardize the path coefficients to provide comparable results to other PLS reports.
You can circumvent this by choosing unstandardized data in the FIMIX-PLS settings. It does not only use unstandardized LV scores from the IPMA procedure, but also provides the unstandardized path coefficient with which you can replicate the LnL.
1) You use individual segment assignment instead of simple segment sizes (pk does not have an index i and is thus not individual specific, but only segment-specific).
2) You have a wrong path coefficient in segment 1 in Beta.
After correcting these two mistakes you will get an LnL value close to SmartPLS. However, you will never get the exact value for 2 or more segments with the default SmartPLS results.
There is a simple reason. FIMIX provides standardized path coefficients in its reports, but uses unstandardized coefficients in the calculation of the LnL and segmentation results. Usually, the difference is not big, because FIMIX works on the standardized LV scores. Because of the grouping of LV scores into segments the segment-specific scores are not standardized during the calculations. Thus, in a final step, we standardize the path coefficients to provide comparable results to other PLS reports.
You can circumvent this by choosing unstandardized data in the FIMIX-PLS settings. It does not only use unstandardized LV scores from the IPMA procedure, but also provides the unstandardized path coefficient with which you can replicate the LnL.
Dr. Jan-Michael Becker, BI Norwegian Business School, SmartPLS Developer
Researchgate: https://www.researchgate.net/profile/Jan_Michael_Becker
GoogleScholar: http://scholar.google.de/citations?user ... AAAJ&hl=de
Researchgate: https://www.researchgate.net/profile/Jan_Michael_Becker
GoogleScholar: http://scholar.google.de/citations?user ... AAAJ&hl=de